From ca23c51aeb44b01a1e049d6147dbe769edd9f543 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Sat, 27 Jul 2002 18:01:21 +0000 Subject: [PATCH] - Fixed a crash in flist_find() when the last item in the flist has been removed as a duplicate. - Got rid of a compiler warning about mixed signed/unsigned types in a conditional expression. --- flist.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/flist.c b/flist.c index 77f2995c..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); @@ -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) { -- 2.34.1