From f3d684a48c1339a8df4fb5b8e79b194a1752bb7c Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 27 Sep 2006 23:24:36 +0000 Subject: r18965: fixed the bug with RPC-NETLOGON and solaris sparc machines. This bug took a _LONG_ time to find. The problem was that when encoding/decoding password buffers we use the pull/push string functions, which by default align unicode strings. But on solaris sparc the buffer is not aligned always (its a stack variable, an array of uint8_t). That perfectly OK in C, so we just tell the pull/push functions not to auto-align. (This used to be commit bb7835eced00607eb6b1725be6d96a6dcb842049) --- source4/libcli/auth/smbencrypt.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source4/libcli/auth') diff --git a/source4/libcli/auth/smbencrypt.c b/source4/libcli/auth/smbencrypt.c index 9fce590d43..67da795a44 100644 --- a/source4/libcli/auth/smbencrypt.c +++ b/source4/libcli/auth/smbencrypt.c @@ -460,6 +460,9 @@ BOOL encode_pw_buffer(uint8_t buffer[516], const char *password, int string_flag uint8_t new_pw[512]; size_t new_pw_len; + /* the incoming buffer can be any alignment. */ + string_flags |= STR_NOALIGN; + new_pw_len = push_string(new_pw, password, sizeof(new_pw), string_flags); @@ -489,6 +492,9 @@ BOOL decode_pw_buffer(uint8_t in_buffer[516], char *new_pwrd, { int byte_len=0; + /* the incoming buffer can be any alignment. */ + string_flags |= STR_NOALIGN; + /* Warning !!! : This function is called from some rpc call. The password IN the buffer may be a UNICODE string. -- cgit