diff options
-rw-r--r-- | source4/ntvfs/posix/pvfs_ioctl.c | 3 | ||||
-rw-r--r-- | source4/smb_server/nttrans.c | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/source4/ntvfs/posix/pvfs_ioctl.c b/source4/ntvfs/posix/pvfs_ioctl.c index 4feca8979f..3eb016c5b4 100644 --- a/source4/ntvfs/posix/pvfs_ioctl.c +++ b/source4/ntvfs/posix/pvfs_ioctl.c @@ -50,6 +50,7 @@ static NTSTATUS pvfs_ntioctl(struct ntvfs_module_context *ntvfs, case FSCTL_SET_SPARSE: /* maybe some posix systems have a way of marking a file non-sparse? */ + io->ntioctl.out.blob = data_blob(NULL, 0); return NT_STATUS_OK; } @@ -62,7 +63,7 @@ static NTSTATUS pvfs_ntioctl(struct ntvfs_module_context *ntvfs, NTSTATUS pvfs_ioctl(struct ntvfs_module_context *ntvfs, struct smbsrv_request *req, union smb_ioctl *io) { - NTSTATUS status; + NTSTATUS status = NT_STATUS_UNSUCCESSFUL; switch (io->generic.level) { case RAW_IOCTL_IOCTL: diff --git a/source4/smb_server/nttrans.c b/source4/smb_server/nttrans.c index 9e2b16c30e..5a5d9f77e3 100644 --- a/source4/smb_server/nttrans.c +++ b/source4/smb_server/nttrans.c @@ -221,6 +221,8 @@ void reply_nttrans(struct smbsrv_request *req) req_grow_data(req, this_param + this_data + (align1 + align2)); + SSVAL(req->out.vwv, 0, 0); /* reserved */ + SCVAL(req->out.vwv, 2, 0); /* reserved */ SIVAL(req->out.vwv, 3, trans.out.params.length); SIVAL(req->out.vwv, 7, trans.out.data.length); @@ -235,7 +237,7 @@ void reply_nttrans(struct smbsrv_request *req) SCVAL(req->out.vwv, 35, trans.out.setup_count); for (i=0;i<trans.out.setup_count;i++) { - SSVAL(req->out.vwv, VWV(18+i)+1, trans.out.setup[i]); + SSVAL(req->out.vwv, VWV(18+i), trans.out.setup[i]); } memset(req->out.data, 0, align1); |