X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/a1f99493b39610e2ea9deb4bb1c71ba63bce5834..35a388b1415df7aeaa8ba1a06a87ab9256986bc8:/exclude.c diff --git a/exclude.c b/exclude.c index 59b4ef52..a83584ab 100644 --- a/exclude.c +++ b/exclude.c @@ -827,7 +827,8 @@ static const char *parse_rule_tok(const char *p, uint32 mflags, int xflags, len = strlen((char*)s); if (new_mflags & MATCHFLG_CLEAR_LIST) { - if (!(xflags & XFLG_OLD_PREFIXES) && len) { + if (!(mflags & MATCHFLG_NO_PREFIXES) + && !(xflags & XFLG_OLD_PREFIXES) && len) { rprintf(FERROR, "'!' rule has trailing characters: %s\n", p); exit_cleanup(RERR_SYNTAX); @@ -954,7 +955,7 @@ void parse_filter_file(struct filter_list_struct *listp, const char *fname, uint32 mflags, int xflags) { FILE *fp; - char line[MAXPATHLEN+MAX_RULE_PREFIX+1]; /* +1 for trailing slash. */ + char line[BIGPATHBUFLEN]; char *eob = line + sizeof line - 1; int word_split = mflags & MATCHFLG_WORD_SPLIT; @@ -1167,7 +1168,7 @@ void send_filter_list(int f_out) /* This is only called by the server. */ void recv_filter_list(int f_in) { - char line[MAXPATHLEN+MAX_RULE_PREFIX+1]; /* +1 for trailing slash. */ + char line[BIGPATHBUFLEN]; int xflags = protocol_version >= 29 ? 0 : XFLG_OLD_PREFIXES; int receiver_wants_list = delete_mode && (!delete_excluded || protocol_version >= 29);