mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-22 10:50:07 +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>
|
2004-09-20 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* elf/dl-load.c: Define __stack_prot.
|
* elf/dl-load.c: Define __stack_prot.
|
||||||
|
@ -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. */
|
||||||
|
Loading…
Reference in New Issue
Block a user