When make_file() gets a stat() error on a file, the check-for-
[rsync/rsync.git] / flist.c
diff --git a/flist.c b/flist.c
index 55a6499..9a493af 100644 (file)
--- a/flist.c
+++ b/flist.c
@@ -752,7 +752,8 @@ struct file_struct *make_file(char *fname, struct file_list *flist,
                int save_errno = errno;
                /* See if file is excluded before reporting an error. */
                if (filter_level != NO_FILTERS
-                   && is_excluded(thisname, 0, filter_level))
+                && (is_excluded(thisname, 0, filter_level)
+                 || is_excluded(thisname, 1, filter_level)))
                        return NULL;
                if (save_errno == ENOENT) {
 #ifdef SUPPORT_LINKS
@@ -1228,11 +1229,8 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
                        }
                }
 
-               if (fn != fbuf) {
-                       if (len >= MAXPATHLEN)
-                               overflow_exit("send_file_list");
+               if (fn != fbuf)
                        memmove(fbuf, fn, len + 1);
-               }
 
                if (implied_dirs && (p=strrchr(fbuf,'/')) && p != fbuf) {
                        /* Send the implied directories at the start of the