s3: Move the drain_socket on error to reply_write_and_X
[ira/wip.git] / source3 / smbd / reply.c
index 6e6e73f58464bcc3b94ffa79548a795fbd0ba172..e3a3766239abd3dc40767bb199c5fbfdab16b9b0 100644 (file)
@@ -4647,6 +4647,15 @@ void reply_write_and_X(struct smb_request *req)
        return;
 
 out:
+       if (req->unread_bytes) {
+               /* writeX failed. drain socket. */
+               if (drain_socket(req->sconn->sock, req->unread_bytes) !=
+                               req->unread_bytes) {
+                       smb_panic("failed to drain pending bytes");
+               }
+               req->unread_bytes = 0;
+       }
+
        END_PROFILE(SMBwriteX);
        return;
 }