diff options
Diffstat (limited to 'source/rpc_parse/parse_samr.c')
-rw-r--r-- | source/rpc_parse/parse_samr.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/source/rpc_parse/parse_samr.c b/source/rpc_parse/parse_samr.c index 0ad79b5f953..dabf8d9a8ed 100644 --- a/source/rpc_parse/parse_samr.c +++ b/source/rpc_parse/parse_samr.c @@ -5149,10 +5149,11 @@ static BOOL sam_io_user_info11(char *desc, SAM_USER_INFO_11 * usr, *************************************************************************/ -void init_sam_user_info24(SAM_USER_INFO_24 * usr, char newpass[516]) +void init_sam_user_info24(SAM_USER_INFO_24 * usr, char newpass[516], uint16 pw_len) { DEBUG(10, ("init_sam_user_info24:\n")); memcpy(usr->pass, newpass, sizeof(usr->pass)); + usr->pw_len = pw_len; } /******************************************************************* @@ -5174,6 +5175,10 @@ static BOOL sam_io_user_info24(char *desc, SAM_USER_INFO_24 * usr, if(!prs_uint8s(False, "password", ps, depth, usr->pass, sizeof(usr->pass))) return False; + if (MARSHALLING(ps) && (usr->pw_len != 0)) { + if (!prs_uint16("pw_len", ps, depth, &usr->pw_len)) + return False; + } if(!prs_align(ps)) return False; |