summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2011-11-18 08:40:18 +0100
committerKarolin Seeger <kseeger@samba.org>2011-11-25 20:25:51 +0100
commit10f45157037edc528926ae7dc4a40909566c6480 (patch)
tree90a7f4604972db974fcaef39ebeb2d6b9eefcb58
parenta64f88f4e97f0f9c006fe6f0cefc0a61efc1ca98 (diff)
downloadsamba-10f45157037edc528926ae7dc4a40909566c6480.tar.gz
samba-10f45157037edc528926ae7dc4a40909566c6480.tar.xz
samba-10f45157037edc528926ae7dc4a40909566c6480.zip
s3:libsmb: only align unicode pipe_name (bug #8586)
metze (cherry picked from commit 48bcb8c846532ccd5489ef705182fb81c5278b04)
-rw-r--r--source3/libsmb/clitrans.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/source3/libsmb/clitrans.c b/source3/libsmb/clitrans.c
index 2f2801ec3f4..844ad2b9c2c 100644
--- a/source3/libsmb/clitrans.c
+++ b/source3/libsmb/clitrans.c
@@ -208,14 +208,18 @@ static void cli_trans_format(struct cli_trans_state *state, uint8_t *pwct,
switch (cmd) {
case SMBtrans:
- pad[0] = 0;
- iov[0].iov_base = (void *)pad;
- iov[0].iov_len = 1;
- iov[1].iov_base = (void *)state->pipe_name_conv;
- iov[1].iov_len = state->pipe_name_conv_len;
+ if (cli_ucs2(state->cli)) {
+ pad[0] = 0;
+ iov[0].iov_base = (void *)pad;
+ iov[0].iov_len = 1;
+ param_offset += 1;
+ iov += 1;
+ }
+ iov[0].iov_base = (void *)state->pipe_name_conv;
+ iov[0].iov_len = state->pipe_name_conv_len;
wct = 14 + state->num_setup;
- param_offset += iov[0].iov_len + iov[1].iov_len;
- iov += 2;
+ param_offset += iov[0].iov_len;
+ iov += 1;
break;
case SMBtrans2:
pad[0] = 0;