summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-François Micouleau <jfm@samba.org>2001-02-22 16:09:18 +0000
committerJean-François Micouleau <jfm@samba.org>2001-02-22 16:09:18 +0000
commitffaa923385cf90fb3256cae5cb6885eced94e36c (patch)
treeb5d7b27673ead794e52440a5dba737829f1527d2
parent111231fc6b19c630521006ff0ebdbd0b420ea676 (diff)
downloadsamba-ffaa923385cf90fb3256cae5cb6885eced94e36c.tar.gz
samba-ffaa923385cf90fb3256cae5cb6885eced94e36c.tar.xz
samba-ffaa923385cf90fb3256cae5cb6885eced94e36c.zip
off by one lenght name in samr_querydispinfo and show also the gecos
field. J.F.
-rw-r--r--source/rpc_parse/parse_samr.c9
-rw-r--r--source/rpc_server/srv_samr_nt.c8
2 files changed, 10 insertions, 7 deletions
diff --git a/source/rpc_parse/parse_samr.c b/source/rpc_parse/parse_samr.c
index 56f1c0c5576..c3551c50b5a 100644
--- a/source/rpc_parse/parse_samr.c
+++ b/source/rpc_parse/parse_samr.c
@@ -1446,12 +1446,9 @@ void init_sam_dispinfo_1(SAM_DISPINFO_1 * sam, uint32 *num_entries,
len_sam_name, len_sam_full, len_sam_desc,
pass[i].user_rid, pass[i].acb_info);
- copy_unistr2(&sam->str[i].uni_acct_name,
- &pass[i].uni_user_name);
- copy_unistr2(&sam->str[i].uni_full_name,
- &pass[i].uni_full_name);
- copy_unistr2(&sam->str[i].uni_acct_desc,
- &pass[i].uni_acct_desc);
+ copy_unistr2(&sam->str[i].uni_acct_name, &pass[i].uni_user_name);
+ copy_unistr2(&sam->str[i].uni_full_name, &pass[i].uni_full_name);
+ copy_unistr2(&sam->str[i].uni_acct_desc, &pass[i].uni_acct_desc);
dsize += sizeof(SAM_ENTRY1);
dsize += len_sam_name + len_sam_full + len_sam_desc;
diff --git a/source/rpc_server/srv_samr_nt.c b/source/rpc_server/srv_samr_nt.c
index 99ee1a98a60..80b12f34fa0 100644
--- a/source/rpc_server/srv_samr_nt.c
+++ b/source/rpc_server/srv_samr_nt.c
@@ -126,6 +126,7 @@ static BOOL jf_get_sampwd_entries(SAM_USER_INFO_21 *pw_buf, int start_idx,
while (((pwd = getsam21pwent(vp)) != NULL) && (*num_entries) < max_num_entries) {
int user_name_len;
+ int full_name_len;
if (acb_mask != 0 && !(pwd->acct_ctrl & acb_mask))
continue;
@@ -138,9 +139,14 @@ static BOOL jf_get_sampwd_entries(SAM_USER_INFO_21 *pw_buf, int start_idx,
continue;
}
- user_name_len = strlen(pwd->smb_name)+1;
+ user_name_len = strlen(pwd->smb_name);
init_unistr2(&pw_buf[(*num_entries)].uni_user_name, pwd->smb_name, user_name_len);
init_uni_hdr(&pw_buf[(*num_entries)].hdr_user_name, user_name_len);
+
+ full_name_len = strlen(pwd->full_name);
+ init_unistr2(&pw_buf[(*num_entries)].uni_full_name, pwd->full_name, full_name_len);
+ init_uni_hdr(&pw_buf[(*num_entries)].hdr_full_name, full_name_len);
+
pw_buf[(*num_entries)].user_rid = pwd->user_rid;
memset((char *)pw_buf[(*num_entries)].nt_pwd, '\0', 16);