r17220: If we're going to fail a write with an errno, make
authorJeremy Allison <jra@samba.org>
Tue, 25 Jul 2006 00:16:45 +0000 (00:16 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 16:38:19 +0000 (11:38 -0500)
sure we return -1.
Jeremy.

source/smbd/fileio.c
source/smbd/reply.c

index 375bfbe7cf3a381a14acdcbaf261e81694f5b6d3..e0945be8893e220031b13ce91899929ecf478aff 100644 (file)
@@ -214,7 +214,7 @@ ssize_t write_file(files_struct *fsp, const char *data, SMB_OFF_T pos, size_t n)
 
        if (!fsp->can_write) {
                errno = EPERM;
-               return(0);
+               return -1;
        }
 
        if (!fsp->modified) {
index edaf5d8062c120010d6e68c5ce2fc46bce5f15cd..e38edadee48612da6a4b2b74acb5aa41a3c7aae6 100644 (file)
@@ -2807,6 +2807,10 @@ int reply_writebraw(connection_struct *conn, char *inbuf,char *outbuf, int size,
                }
 
                nwritten = write_file(fsp,inbuf+4,startpos+nwritten,numtowrite);
+               if (nwritten == -1) {
+                       END_PROFILE(SMBwritebraw);
+                       return(UNIXERROR(ERRHRD,ERRdiskfull));
+               }
 
                if (nwritten < (ssize_t)numtowrite) {
                        SCVAL(outbuf,smb_rcls,ERRHRD);