mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-22 02:40:08 +00:00
[BZ #391]
2004-09-20 Roland McGrath <roland@frob.com> * elf/dl-load.c (__stack_prot): Only use PROT_GROWSUP/PROT_GROWSDOWN in initializer #if defined. 2004-09-18 Paul Eggert <eggert@cs.ucla.edu> [BZ #391] * stdlib/getsubopt.c: Merge fixes from gnulib. (__strchrnul) [!_LIBC]: Define and include "strchrnul.c". (getsubopt): Use prototypes, not K&R style. Fix bug: memcmp(A,B,N) was being invoked on a memory block B whose size might be smaller than N. Use strncmp to avoid the bug.
This commit is contained in:
parent
44828b9d2a
commit
f6f43da73f
14
ChangeLog
14
ChangeLog
@ -1,3 +1,17 @@
|
||||
2004-09-20 Roland McGrath <roland@frob.com>
|
||||
|
||||
* elf/dl-load.c (__stack_prot): Only use PROT_GROWSUP/PROT_GROWSDOWN
|
||||
in initializer #if defined.
|
||||
|
||||
2004-09-18 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
[BZ #391]
|
||||
* stdlib/getsubopt.c: Merge fixes from gnulib.
|
||||
(__strchrnul) [!_LIBC]: Define and include "strchrnul.c".
|
||||
(getsubopt): Use prototypes, not K&R style.
|
||||
Fix bug: memcmp(A,B,N) was being invoked on a memory block B
|
||||
whose size might be smaller than N. Use strncmp to avoid the bug.
|
||||
|
||||
2004-09-20 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* elf/dl-load.c: Define __stack_prot.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Parse comma separate list into words.
|
||||
Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996, 1997, 1999, 2004 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||
|
||||
@ -21,6 +21,14 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#if !_LIBC
|
||||
/* This code is written for inclusion in gnu-libc, and uses names in
|
||||
the namespace reserved for libc. If we're compiling in gnulib,
|
||||
define those names to be the normal ones instead. */
|
||||
# include "strchrnul.h"
|
||||
# undef __strchrnul
|
||||
# define __strchrnul strchrnul
|
||||
#endif
|
||||
|
||||
/* Parse comma separated suboption from *OPTIONP and match against
|
||||
strings in TOKENS. If found return index and set *VALUEP to
|
||||
@ -29,10 +37,7 @@
|
||||
suboption. On exit *OPTIONP is set to the beginning of the next
|
||||
token or at the terminating NUL character. */
|
||||
int
|
||||
getsubopt (optionp, tokens, valuep)
|
||||
char **optionp;
|
||||
char *const *tokens;
|
||||
char **valuep;
|
||||
getsubopt (char **optionp, char *const *tokens, char **valuep)
|
||||
{
|
||||
char *endp, *vstart;
|
||||
int cnt;
|
||||
@ -51,7 +56,7 @@ getsubopt (optionp, tokens, valuep)
|
||||
/* Try to match the characters between *OPTIONP and VSTART against
|
||||
one of the TOKENS. */
|
||||
for (cnt = 0; tokens[cnt] != NULL; ++cnt)
|
||||
if (memcmp (*optionp, tokens[cnt], vstart - *optionp) == 0
|
||||
if (strncmp (*optionp, tokens[cnt], vstart - *optionp) == 0
|
||||
&& tokens[cnt][vstart - *optionp] == '\0')
|
||||
{
|
||||
/* We found the current option in TOKENS. */
|
||||
|
Loading…
Reference in New Issue
Block a user