diff options
Diffstat (limited to 'src/lib/libc/stdlib/getenv.c')
| -rw-r--r-- | src/lib/libc/stdlib/getenv.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/lib/libc/stdlib/getenv.c b/src/lib/libc/stdlib/getenv.c index 5aff11c61a..fd8482e9e3 100644 --- a/src/lib/libc/stdlib/getenv.c +++ b/src/lib/libc/stdlib/getenv.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: getenv.c,v 1.9 2009/06/03 15:52:16 millert Exp $ */ | 1 | /* $OpenBSD: getenv.c,v 1.10 2010/08/23 22:31:50 millert Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 1987, 1993 | 3 | * Copyright (c) 1987, 1993 |
| 4 | * The Regents of the University of California. All rights reserved. | 4 | * The Regents of the University of California. All rights reserved. |
| @@ -36,8 +36,9 @@ char *__findenv(const char *name, int len, int *offset); | |||
| 36 | /* | 36 | /* |
| 37 | * __findenv -- | 37 | * __findenv -- |
| 38 | * Returns pointer to value associated with name, if any, else NULL. | 38 | * Returns pointer to value associated with name, if any, else NULL. |
| 39 | * Starts searching within the environmental array at offset. | ||
| 39 | * Sets offset to be the offset of the name/value combination in the | 40 | * Sets offset to be the offset of the name/value combination in the |
| 40 | * environmental array, for use by setenv(3) and unsetenv(3). | 41 | * environmental array, for use by putenv(3), setenv(3) and unsetenv(3). |
| 41 | * Explicitly removes '=' in argument name. | 42 | * Explicitly removes '=' in argument name. |
| 42 | * | 43 | * |
| 43 | * This routine *should* be a static; don't use it. | 44 | * This routine *should* be a static; don't use it. |
| @@ -52,7 +53,7 @@ __findenv(const char *name, int len, int *offset) | |||
| 52 | 53 | ||
| 53 | if (name == NULL || environ == NULL) | 54 | if (name == NULL || environ == NULL) |
| 54 | return (NULL); | 55 | return (NULL); |
| 55 | for (p = environ; (cp = *p) != NULL; ++p) { | 56 | for (p = environ + *offset; (cp = *p) != NULL; ++p) { |
| 56 | for (np = name, i = len; i && *cp; i--) | 57 | for (np = name, i = len; i && *cp; i--) |
| 57 | if (*cp++ != *np++) | 58 | if (*cp++ != *np++) |
| 58 | break; | 59 | break; |
| @@ -71,7 +72,7 @@ __findenv(const char *name, int len, int *offset) | |||
| 71 | char * | 72 | char * |
| 72 | getenv(const char *name) | 73 | getenv(const char *name) |
| 73 | { | 74 | { |
| 74 | int offset; | 75 | int offset = 0; |
| 75 | const char *np; | 76 | const char *np; |
| 76 | 77 | ||
| 77 | for (np = name; *np && *np != '='; ++np) | 78 | for (np = name; *np && *np != '='; ++np) |
