From 0295d2666c248045942f7ed753b2d8f8cea0996f Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 29 Jan 2002 03:56:50 +0000 Subject: Update. 2002-01-23 Richard Henderson * sysdeps/alpha/Makefile (pic-ccflag): New variable. 2002-01-28 Ulrich Drepper * string/strxfrm.c: Allocate one more byte for rulearr and clear this element [PR libc/2855]. * string/strcoll.c: Handle zero-length arguments specially [PR libc/2856]. 2002-01-23 Jakub Jelinek * string/bits/string2.h (__mempcpy): For gcc 3.0+, don't use __mempcpy_small but instead use __builtin_memcpy ( , , n) + n for short lengths and constant src. (strcpy): Don't optimize for gcc 3.0+. (__stpcpy): For gcc 3.0+, don't use __stpcpy_small but instead use __builtin_strcpy (, src) + strlen (src) for short string literal src. 2002-01-23 Jeroen Dobbelaere * sysdeps/unix/sysv/linux/configure.in (libc_cv_gcc_unwind_find_fde): Set for arm, too. 2001-01-22 Paul Eggert * manual/llio.texi (Linked Channels, Cleaning Streams): Make it clearer that a just-opened input stream might need cleaning. 2002-01-21 H.J. Lu * sysdeps/mips/dl-machine.h (ELF_MACHINE_BEFORE_RTLD_RELOC): Don't use label at end of compound statement. --- string/strxfrm.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'string/strxfrm.c') diff --git a/string/strxfrm.c b/string/strxfrm.c index 257ce495db..c53dad5555 100644 --- a/string/strxfrm.c +++ b/string/strxfrm.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-1999,2000,2001 Free Software Foundation, Inc. +/* Copyright (C) 1995-1999,2000,2001,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Ulrich Drepper , 1995. @@ -177,7 +177,7 @@ STRXFRM (STRING_TYPE *dest, const STRING_TYPE *src, size_t n, __locale_t l) very conservative here. */ if (srclen >= 16384) { - idxarr = (int32_t *) malloc (srclen * (sizeof (int32_t) + 1)); + idxarr = (int32_t *) malloc ((srclen + 1) * (sizeof (int32_t) + 1)); rulearr = (unsigned char *) &idxarr[srclen]; if (idxarr == NULL) @@ -194,8 +194,11 @@ STRXFRM (STRING_TYPE *dest, const STRING_TYPE *src, size_t n, __locale_t l) { try_stack: idxarr = (int32_t *) alloca (srclen * sizeof (int32_t)); - rulearr = (unsigned char *) alloca (srclen); + rulearr = (unsigned char *) alloca (srclen + 1); } + /* This element is only read, the value never used but to determine + another value which then is ignored. */ + rulearr[srclen] = '\0'; idxmax = 0; do -- cgit v1.2.3