summaryrefslogtreecommitdiff
path: root/source4/libcli/raw
diff options
context:
space:
mode:
Diffstat (limited to 'source4/libcli/raw')
-rw-r--r--source4/libcli/raw/interfaces.h6
-rw-r--r--source4/libcli/raw/rawioctl.c2
-rw-r--r--source4/libcli/raw/rawnotify.c2
-rw-r--r--source4/libcli/raw/rawtrans.c9
4 files changed, 9 insertions, 10 deletions
diff --git a/source4/libcli/raw/interfaces.h b/source4/libcli/raw/interfaces.h
index c2f0c3530b..60cefe6931 100644
--- a/source4/libcli/raw/interfaces.h
+++ b/source4/libcli/raw/interfaces.h
@@ -2115,14 +2115,14 @@ struct smb_nttrans {
uint32_t max_data;
uint32_t setup_count;
uint16_t function;
- uint16_t *setup;
+ uint8_t *setup;
DATA_BLOB params;
DATA_BLOB data;
} in;
struct {
- uint8_t setup_count;
- uint16_t *setup;
+ uint8_t setup_count; /* in units of 16 bit words */
+ uint8_t *setup;
DATA_BLOB params;
DATA_BLOB data;
} out;
diff --git a/source4/libcli/raw/rawioctl.c b/source4/libcli/raw/rawioctl.c
index a9812022ea..9477af4eb2 100644
--- a/source4/libcli/raw/rawioctl.c
+++ b/source4/libcli/raw/rawioctl.c
@@ -79,7 +79,7 @@ static struct smbcli_request *smb_raw_ntioctl_send(struct smbcli_tree *tree,
nt.in.max_param = 0;
nt.in.max_data = parms->ntioctl.in.max_data;
nt.in.setup_count = 4;
- nt.in.setup = (uint16_t *)setup;
+ nt.in.setup = setup;
SIVAL(setup, 0, parms->ntioctl.in.function);
SSVAL(setup, 4, parms->ntioctl.in.file.fnum);
SCVAL(setup, 6, parms->ntioctl.in.fsctl);
diff --git a/source4/libcli/raw/rawnotify.c b/source4/libcli/raw/rawnotify.c
index 5f3fa0f50e..e847368f73 100644
--- a/source4/libcli/raw/rawnotify.c
+++ b/source4/libcli/raw/rawnotify.c
@@ -28,7 +28,7 @@ change notify (async send)
struct smbcli_request *smb_raw_changenotify_send(struct smbcli_tree *tree, union smb_notify *parms)
{
struct smb_nttrans nt;
- uint16_t setup[4];
+ uint8_t setup[8];
if (parms->nttrans.level != RAW_NOTIFY_NTTRANS) {
return NULL;
diff --git a/source4/libcli/raw/rawtrans.c b/source4/libcli/raw/rawtrans.c
index 08d7483a87..164354c701 100644
--- a/source4/libcli/raw/rawtrans.c
+++ b/source4/libcli/raw/rawtrans.c
@@ -449,15 +449,14 @@ NTSTATUS smb_raw_nttrans_recv(struct smbcli_request *req,
SMBCLI_CHECK_WCT(req, 18 + parms->out.setup_count);
if (parms->out.setup_count > 0) {
- int i;
- parms->out.setup = talloc_array(mem_ctx, uint16_t, parms->out.setup_count);
+ parms->out.setup = talloc_array(mem_ctx, uint8_t,
+ parms->out.setup_count*2);
if (!parms->out.setup) {
req->status = NT_STATUS_NO_MEMORY;
return smbcli_request_destroy(req);
}
- for (i=0;i<parms->out.setup_count;i++) {
- parms->out.setup[i] = SVAL(req->in.vwv, VWV(18+i));
- }
+ memcpy(parms->out.setup, VWV(18) + (uint8_t *)req->out.vwv,
+ sizeof(uint16_t) * parms->out.setup_count);
}
while (recvd_data < total_data ||