From: Wayne Davison Date: Tue, 13 Apr 2004 19:07:21 +0000 (+0000) Subject: Fixed a potential problem parsing the "!" token from a word-split string. X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/commitdiff_plain/abca4eba6776164c2a848575ecd03caa5f85e1b3 Fixed a potential problem parsing the "!" token from a word-split string. --- diff --git a/exclude.c b/exclude.c index 9fa83196..16ab02d4 100644 --- a/exclude.c +++ b/exclude.c @@ -236,13 +236,15 @@ int check_exclude(struct exclude_struct **list, char *name, int name_is_dir) static const char *get_exclude_tok(const char *p, int *len_ptr, int *incl_ptr, int xflags) { - const unsigned char *s = (unsigned char *)p; + const unsigned char *s = (const unsigned char *)p; int len; if (xflags & XFLG_WORD_SPLIT) { /* Skip over any initial whitespace. */ while (isspace(*s)) s++; + /* Update for "!" check. */ + p = (const char *)s; } /* Is this a '+' or '-' followed by a space (not whitespace)? */ @@ -262,8 +264,7 @@ static const char *get_exclude_tok(const char *p, int *len_ptr, int *incl_ptr, } else len = strlen(s); - if (*s == '!' && len == 1 && !(xflags & XFLG_NO_PREFIXES) - && (const char *)s == p) + if (*p == '!' && len == 1 && !(xflags & XFLG_NO_PREFIXES)) *incl_ptr = -1; *len_ptr = len;