Index: mkgroup.c =================================================================== RCS file: /cvs/src/src/winsup/utils/mkgroup.c,v retrieving revision 1.4 diff -u -p -2 -r1.4 mkgroup.c --- mkgroup.c 2000/11/08 15:00:02 1.4 +++ mkgroup.c 2001/04/09 18:01:00 @@ -93,9 +93,8 @@ 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'; @@ -142,5 +141,5 @@ enum_local_groups (int print_sids) 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, @@ -199,5 +198,5 @@ enum_groups (LPWSTR servername, int prin if (servername) - uni2ansi (servername, ansi_srvname); + uni2ansi (servername, ansi_srvname, sizeof (ansi_srvname)); do @@ -233,5 +232,5 @@ enum_groups (LPWSTR servername, int prin int gid = buffer[i].grpi2_group_id; - uni2ansi (buffer[i].grpi2_name, groupname); + uni2ansi (buffer[i].grpi2_name, groupname, sizeof (groupname)); if (print_sids) { Index: mkpasswd.c =================================================================== RCS file: /cvs/src/src/winsup/utils/mkpasswd.c,v retrieving revision 1.7 diff -u -p -2 -r1.7 mkpasswd.c --- mkpasswd.c 2000/12/07 10:31:01 1.7 +++ mkpasswd.c 2001/04/09 18:01:00 @@ -93,9 +93,8 @@ 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'; @@ -114,5 +113,5 @@ enum_users (LPWSTR servername, int print if (servername) - uni2ansi (servername, ansi_srvname); + uni2ansi (servername, ansi_srvname, sizeof (ansi_srvname)); do @@ -153,8 +152,8 @@ enum_users (LPWSTR servername, int print int uid = buffer[i].usri3_user_id; int gid = buffer[i].usri3_primary_group_id; - uni2ansi (buffer[i].usri3_name, username); - uni2ansi (buffer[i].usri3_full_name, fullname); + uni2ansi (buffer[i].usri3_name, username, sizeof (username)); + uni2ansi (buffer[i].usri3_full_name, fullname, sizeof (fullname)); homedir_w32[0] = homedir_psx[0] = '\0'; - uni2ansi (buffer[i].usri3_home_dir, homedir_w32); + uni2ansi (buffer[i].usri3_home_dir, homedir_w32, sizeof (homedir_w32)); if (print_cygpath) cygwin_conv_to_posix_path (homedir_w32, homedir_psx); @@ -265,5 +264,5 @@ enum_local_groups (int print_sids) 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,