X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/f89e890b87f1283a10069f2970820bbbe5ccfd5f..9fdb334e8518d80914aa33282d718d9ee6809b30:/flist.c diff --git a/flist.c b/flist.c index 077e42c7..bd7ad16f 100644 --- a/flist.c +++ b/flist.c @@ -211,6 +211,8 @@ int link_stat(const char *path, STRUCT_STAT * buffer) */ static int check_exclude_file(char *fname, int is_dir, int exclude_level) { + int rc; + #if 0 /* This currently never happens, so avoid a useless compare. */ if (exclude_level == NO_EXCLUDES) return 0; @@ -227,14 +229,15 @@ static int check_exclude_file(char *fname, int is_dir, int exclude_level) } } if (server_exclude_list.head - && check_exclude(&server_exclude_list, fname, is_dir)) + && check_exclude(&server_exclude_list, fname, is_dir) < 0) return 1; if (exclude_level != ALL_EXCLUDES) return 0; - if (exclude_list.head && check_exclude(&exclude_list, fname, is_dir)) - return 1; + if (exclude_list.head + && (rc = check_exclude(&exclude_list, fname, is_dir)) != 0) + return rc < 0; if (local_exclude_list.head - && check_exclude(&local_exclude_list, fname, is_dir)) + && check_exclude(&local_exclude_list, fname, is_dir) < 0) return 1; return 0; }