diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-05-07 22:33:59 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-05-07 22:33:59 +0000 |
commit | 74a0513daf4ea71825ffe545982724cfa3741b24 (patch) | |
tree | 15431f4e2157bea8855d62432b224b2067e1c3ad | |
parent | fc08075dc61787269743a1abb8ff8221868c3210 (diff) | |
download | glibc-74a0513daf4ea71825ffe545982724cfa3741b24.tar.gz glibc-74a0513daf4ea71825ffe545982724cfa3741b24.tar.xz glibc-74a0513daf4ea71825ffe545982724cfa3741b24.zip |
Update.
* sysdeps/generic/memccpy.c (__memccpy): Don't use reg_char type for x since promotion in comparison might leads to unexpected results. Reported by Dan Pop <Dan.Pop@cern.ch>.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | sysdeps/generic/memccpy.c | 11 |
2 files changed, 10 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog index 9a63b24172..4eb2e17d58 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2000-05-07 Ulrich Drepper <drepper@redhat.com> + * sysdeps/generic/memccpy.c (__memccpy): Don't use reg_char type + for x since promotion in comparison might leads to unexpected + results. Reported by Dan Pop <Dan.Pop@cern.ch>. + * iconv/Makefile (tests): Add tst-iconv1. * iconv/tst-iconv1.c: New file. * iconv/gconv_simple.c (internal_ucs4_loop): Prefer reporting diff --git a/sysdeps/generic/memccpy.c b/sysdeps/generic/memccpy.c index f7b496de9f..195c3b4399 100644 --- a/sysdeps/generic/memccpy.c +++ b/sysdeps/generic/memccpy.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1995, 1997, 1999 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1995, 1997, 1999, 2000 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -17,7 +17,6 @@ Boston, MA 02111-1307, USA. */ #include <string.h> -#include <memcopy.h> #undef __memccpy #undef memccpy @@ -27,12 +26,14 @@ NULL if C was not found in the first N bytes of SRC. */ void * __memccpy (dest, src, c, n) - void *dest; const void *src; - int c; size_t n; + void *dest; + const void *src; + int c; + size_t n; { register const char *s = src; register char *d = dest; - register const reg_char x = (unsigned char) c; + register const char x = c; register size_t i = n; while (i-- > 0) |