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:
Roland McGrath 2004-09-20 20:56:19 +00:00
parent 44828b9d2a
commit f6f43da73f
2 changed files with 25 additions and 6 deletions

View File

@ -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> 2004-09-20 Ulrich Drepper <drepper@redhat.com>
* elf/dl-load.c: Define __stack_prot. * elf/dl-load.c: Define __stack_prot.

View File

@ -1,5 +1,5 @@
/* Parse comma separate list into words. /* 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. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@ -21,6 +21,14 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.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 /* Parse comma separated suboption from *OPTIONP and match against
strings in TOKENS. If found return index and set *VALUEP to 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 suboption. On exit *OPTIONP is set to the beginning of the next
token or at the terminating NUL character. */ token or at the terminating NUL character. */
int int
getsubopt (optionp, tokens, valuep) getsubopt (char **optionp, char *const *tokens, char **valuep)
char **optionp;
char *const *tokens;
char **valuep;
{ {
char *endp, *vstart; char *endp, *vstart;
int cnt; int cnt;
@ -51,7 +56,7 @@ getsubopt (optionp, tokens, valuep)
/* Try to match the characters between *OPTIONP and VSTART against /* Try to match the characters between *OPTIONP and VSTART against
one of the TOKENS. */ one of the TOKENS. */
for (cnt = 0; tokens[cnt] != NULL; ++cnt) 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') && tokens[cnt][vstart - *optionp] == '\0')
{ {
/* We found the current option in TOKENS. */ /* We found the current option in TOKENS. */