diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | posix/wordexp.c | 12 |
2 files changed, 10 insertions, 8 deletions
@@ -1,3 +1,9 @@ +2006-05-10 Ulrich Drepper <drepper@redhat.com> + + * posix/wordexp.c (parse_glob): No need to check ifs for NULL, the + caller makes sure this is not the case. + (wordexp): Simplify ifs_white creation. [Coverity CID 231] + 2006-05-09 Ulrich Drepper <drepper@redhat.com> * posix/wordexp.c: Remove numerous NULL pointer tests before FREE diff --git a/posix/wordexp.c b/posix/wordexp.c index 188e710..adece95 100644 --- a/posix/wordexp.c +++ b/posix/wordexp.c @@ -453,8 +453,7 @@ parse_glob (char **word, size_t *word_length, size_t *max_length, glob_list.we_offs = 0; for (; words[*offset] != '\0'; ++*offset) { - if ((ifs && strchr (ifs, words[*offset])) || - (!ifs && strchr (" \t\n", words[*offset]))) + if (strchr (ifs, words[*offset]) != NULL) /* Reached IFS */ break; @@ -2265,7 +2264,7 @@ wordexp (const char *words, wordexp_t *pwordexp, int flags) */ ifs = getenv ("IFS"); - if (!ifs) + if (ifs == NULL) /* IFS unset - use <space><tab><newline>. */ ifs = strcpy (ifs_white, " \t\n"); else @@ -2273,18 +2272,15 @@ wordexp (const char *words, wordexp_t *pwordexp, int flags) char *ifsch = ifs; char *whch = ifs_white; - /* Start off with no whitespace IFS characters */ - ifs_white[0] = '\0'; - while (*ifsch != '\0') { - if ((*ifsch == ' ') || (*ifsch == '\t') || (*ifsch == '\n')) + if (*ifsch == ' ' || *ifsch == '\t' || *ifsch == '\n') { /* Whitespace IFS. See first whether it is already in our collection. */ char *runp = ifs_white; - while (runp < whch && *runp != '\0' && *runp != *ifsch) + while (runp < whch && *runp != *ifsch) ++runp; if (runp == whch) |