s3:libsmb: only align unicode pipe_name (bug #8586)
authorStefan Metzmacher <metze@samba.org>
Fri, 18 Nov 2011 07:40:18 +0000 (08:40 +0100)
committerKarolin Seeger <kseeger@samba.org>
Fri, 25 Nov 2011 19:25:51 +0000 (20:25 +0100)
metze
(cherry picked from commit 48bcb8c846532ccd5489ef705182fb81c5278b04)

source3/libsmb/clitrans.c

index 2f2801ec3f44dcfd6dec1147c622c3f896086517..844ad2b9c2c78872dd7df32c408ca5036bda4950 100644 (file)
@@ -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;