--- lib/zip_name_locate.c 2010-01-31 22:00:30.000000000 +0000 +++ lib/zip_name_locate.c.oden 2011-05-24 06:06:13.000000000 +0000 @@ -59,6 +59,10 @@ _zip_name_locate(struct zip *za, const c _zip_error_set(error, ZIP_ER_INVAL, 0); return -1; } + + if((flags & ZIP_FL_UNCHANGED) && !za->cdir) { + return -1; + } cmp = (flags & ZIP_FL_NOCASE) ? strcasecmp : strcmp;