Fix flush of 0xFFFF - found by Samba4 tester.
authorJeremy Allison <jra@samba.org>
Tue, 19 Aug 2003 01:26:43 +0000 (01:26 +0000)
committerJeremy Allison <jra@samba.org>
Tue, 19 Aug 2003 01:26:43 +0000 (01:26 +0000)
Jeremy.

source/smbd/reply.c

index 32b9c39aed900a6ce164a11414b068782505485f..9577375475d8074852a636e8310c317362bda633 100644 (file)
@@ -2367,10 +2367,12 @@ int reply_lseek(connection_struct *conn, char *inbuf,char *outbuf, int size, int
 int reply_flush(connection_struct *conn, char *inbuf,char *outbuf, int size, int dum_buffsize)
 {
        int outsize = set_message(outbuf,0,0,True);
+       uint16 fnum = SVAL(inbuf,smb_vwv0);
        files_struct *fsp = file_fsp(inbuf,smb_vwv0);
        START_PROFILE(SMBflush);
 
-       CHECK_FSP(fsp,conn);
+       if (fnum != 0xFFFF)
+               CHECK_FSP(fsp,conn);
        
        if (!fsp) {
                file_sync_all(conn);
@@ -2737,7 +2739,7 @@ int reply_printclose(connection_struct *conn,
 
        if (!CAN_PRINT(conn)) {
                END_PROFILE(SMBsplclose);
-               return ERROR_DOS(ERRDOS,ERRnoaccess);
+               return ERROR_NT(NT_STATUS_UNSUCCESSFUL);
        }
   
        DEBUG(3,("printclose fd=%d fnum=%d\n",