[PATCH][BZ #431] Fix manual of strncat/wcsncat.
Carlos O'Donell
carlos@redhat.com
Thu Oct 3 08:52:00 GMT 2013
On 10/03/2013 04:36 AM, OndÅej BÃlka wrote:
> Hi, this is quite old bug that implementation of strncat in manual is
> wrong. This replaces it with correct one
>
> * manual/string.texi: Fix strncat and wcsncat.
Looks good to me.
> ---
> manual/string.texi | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/manual/string.texi b/manual/string.texi
> index 3329761..1e45d9d 100644
> --- a/manual/string.texi
> +++ b/manual/string.texi
> @@ -955,8 +955,8 @@ The @code{strncat} function could be implemented like this:
> char *
> strncat (char *to, const char *from, size_t size)
> @{
> - to[strlen (to) + size] = '\0';
> - strncpy (to + strlen (to), from, size);
> + memcpy (to + strlen (to), from, strnlen (from, size));
> + to[strlen (to) + strnlen (from, size)] = '\0';
> return to;
> @}
> @end group
> @@ -982,8 +982,8 @@ wchar_t *
> wcsncat (wchar_t *restrict wto, const wchar_t *restrict wfrom,
> size_t size)
> @{
> - wto[wcslen (to) + size] = L'\0';
> - wcsncpy (wto + wcslen (wto), wfrom, size);
> + memcpy (wto + wcslen (wto), wfrom, wcsnlen (wfrom, size) * sizeof (wchar_t));
> + wto[wcslen (to) + wcsnlen (wfrom, size)] = '\0';
> return wto;
> @}
> @end group
>
Cheers,
Carlos.
More information about the Libc-alpha
mailing list