From dd9752e88e985b1ec7ec4a2cb4f3b276f5d35abb Mon Sep 17 00:00:00 2001 From: Egor Duda Date: Wed, 11 Apr 2001 09:38:55 +0000 Subject: * mkgroup.c (uni2ansi): Use native method to convert from Unicode to multi-byte strings. * mkpasswd.c (uni2ansi): Ditto. (enum_users): Pass buffer size when converting string. (enum_local_groups): Ditto. * mkgroup.c (enum_groups): Ditto. (enum_local_groups): Ditto. --- winsup/utils/mkgroup.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'winsup/utils/mkgroup.c') diff --git a/winsup/utils/mkgroup.c b/winsup/utils/mkgroup.c index e81337511..331788fe6 100644 --- a/winsup/utils/mkgroup.c +++ b/winsup/utils/mkgroup.c @@ -92,11 +92,10 @@ psx_dir (char *in, char *out) } void -uni2ansi (LPWSTR wcs, char *mbs) +uni2ansi (LPWSTR wcs, char *mbs, int size) { if (wcs) - wcstombs (mbs, wcs, (wcslen (wcs) + 1) * sizeof (WCHAR)); - + WideCharToMultiByte (CP_ACP, 0, wcs, -1, mbs, size, NULL, NULL); else *mbs = '\0'; } @@ -141,7 +140,7 @@ enum_local_groups (int print_sids) DWORD sid_length = 1024; DWORD gid; SID_NAME_USE acc_type; - uni2ansi (buffer[i].lgrpi0_name, localgroup_name); + uni2ansi (buffer[i].lgrpi0_name, localgroup_name, sizeof (localgroup_name)); if (!LookupAccountName (NULL, localgroup_name, psid, &sid_length, domain_name, &domname_len, @@ -198,7 +197,7 @@ enum_groups (LPWSTR servername, int print_sids) char ansi_srvname[256]; if (servername) - uni2ansi (servername, ansi_srvname); + uni2ansi (servername, ansi_srvname, sizeof (ansi_srvname)); do { @@ -232,7 +231,7 @@ enum_groups (LPWSTR servername, int print_sids) SID_NAME_USE acc_type; int gid = buffer[i].grpi2_group_id; - uni2ansi (buffer[i].grpi2_name, groupname); + uni2ansi (buffer[i].grpi2_name, groupname, sizeof (groupname)); if (print_sids) { if (!LookupAccountName (servername ? ansi_srvname : NULL, -- cgit v1.2.3