summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/ntvfs/posix/pvfs_ioctl.c3
-rw-r--r--source4/smb_server/nttrans.c4
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);