X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/eca2adb4b3a4ca095116f54e9e0a6df19f0bd149..a6d8c3f336deebfff152e1d3f6d646ba1dc59eea:/flist.c diff --git a/flist.c b/flist.c index 5fde5b60..1dee24cd 100644 --- a/flist.c +++ b/flist.c @@ -538,7 +538,7 @@ static void receive_file_entry(struct file_struct **fptr, (flags & SAME_GID) ? last_gid : (gid_t) read_int(f); if (preserve_devices && IS_DEVICE(file->mode)) file->rdev = - (flags & SAME_RDEV) ? last_rdev : (dev_t) read_int(f); + (flags & SAME_RDEV) ? last_rdev : (DEV64_T) read_int(f); if (preserve_links && S_ISLNK(file->mode)) { int l = read_int(f); @@ -867,11 +867,11 @@ static void send_directory(int f, struct file_list *flist, char *dir) } -/* +/** * - * I *think* f==-1 means that the list should just be built in memory - * and not transmitted. But who can tell? -- mbp - */ + * I think f==-1 means that the list should just be built in + * memory and not transmitted. But who can tell? -- mbp + **/ struct file_list *send_file_list(int f, int argc, char *argv[]) { int i, l; @@ -1151,7 +1151,9 @@ int flist_find(struct file_list *flist, struct file_struct *f) { int low = 0, high = flist->count - 1; - if (flist->count <= 0) + while (high >= 0 && !flist->files[high]->basename) high--; + + if (high < 0) return -1; while (low != high) {