1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-28 00:21:52 +03:00

* stdlib/bits/stdlib.h (mbstowcs): Divide __bos (__dst) by

sizeof (wchar_t) rather than multiplying __len by sizeof (wchar_t).
	Pass __bos (__dst) / sizeof (wchar_t) to the *_chk routine.
	* wcsmbs/bits/wchar2.h (mbsrtowcs, mbsnrtowcs): Likewise.
	* debug/mbsnrtowcs_chk.c (__mbsnrtowcs_chk): Don't multiply
	len by sizeof (wchar_t).
	* debug/mbsrtowcs_chk.c (__mbsrtowcs_chk): Likewise.
	* debug/mbstowcs_chk.c (__mbstowcs_chk): Likewise.
	Fix type of SRC argument.  Pass &SRC rather than SRC to
	__mbsrtowcs.
	* debug/wcstombs_chk.c (__wcstombs_chk): Pass &SRC rather than SRC
	to __wcsrtombs.
	* debug/tst-chk1.c: Include assert.h.
	(do_test): Change enough array from VLA into a fixed size array.
	Assert that MB_CUR_MAX is <= sizeof (enough).  Use FAIL () macro
	instead of print error details.  Add several new tests.
	Kill some unused variable warnings.
This commit is contained in:
Ulrich Drepper
2005-08-22 15:13:39 +00:00
parent e2a99d8e1f
commit f9a906e786
8 changed files with 115 additions and 100 deletions

View File

@ -89,8 +89,9 @@ __NTH (mbstowcs (wchar_t *__restrict __dst, __const char *__restrict __src,
{
if (__bos (__dst) != (size_t) -1
&& (!__builtin_constant_p (__len)
|| __len * sizeof (wchar_t) > __bos (__dst)))
return __mbstowcs_chk (__dst, __src, __len, __bos (__dst));
|| __len > __bos (__dst) / sizeof (wchar_t)))
return __mbstowcs_chk (__dst, __src, __len,
__bos (__dst) / sizeof (wchar_t));
return __mbstowcs_alias (__dst, __src, __len);
}