s4-smb: fill in fnum as well for root_fid
authorAndrew Tridgell <tridge@samba.org>
Thu, 15 Oct 2009 09:50:49 +0000 (20:50 +1100)
committerAndrew Tridgell <tridge@samba.org>
Thu, 15 Oct 2009 09:50:49 +0000 (20:50 +1100)
This helps with the CIFS NTVFS backend, but doesn't solve all problems

source4/smb_server/smb/nttrans.c
source4/smb_server/smb/reply.c

index 23eb04ba2eefff360a73df32792990555d45c170..316305aa29a4de73a8a9ec82672441d2e6267c7f 100644 (file)
@@ -119,7 +119,8 @@ static NTSTATUS nttrans_create(struct smbsrv_request *req,
        params = trans->in.params.data;
 
        io->ntcreatex.in.flags            = IVAL(params,  0);
-       io->ntcreatex.in.root_fid.ntvfs   = smbsrv_pull_fnum(req, req->in.vwv, 4);
+       io->ntcreatex.in.root_fid.fnum    = IVAL(params,  4);
+       io->ntcreatex.in.root_fid.ntvfs   = smbsrv_pull_fnum(req, params, 4);
        io->ntcreatex.in.access_mask      = IVAL(params,  8);
        io->ntcreatex.in.alloc_size       = BVAL(params, 12);
        io->ntcreatex.in.file_attr        = IVAL(params, 20);
index 2c99a38575c04eafbc8d932acbf4b031eea7653d..4baea4703af5e3db6c54d3ada068121791c53220 100644 (file)
@@ -2216,6 +2216,7 @@ void smbsrv_reply_ntcreate_and_X(struct smbsrv_request *req)
        /* notice that the word parameters are not word aligned, so we don't use VWV() */
        fname_len =                         SVAL(req->in.vwv, 5);
        io->ntcreatex.in.flags =            IVAL(req->in.vwv, 7);
+       io->ntcreatex.in.root_fid.fnum  =   IVAL(req->in.vwv, 11);
        io->ntcreatex.in.root_fid.ntvfs =   smbsrv_pull_fnum(req, req->in.vwv, 11);
        io->ntcreatex.in.access_mask =      IVAL(req->in.vwv, 15);
        io->ntcreatex.in.alloc_size =       BVAL(req->in.vwv, 19);