# HG changeset patch # User Ryan C. Gordon # Date 1110747811 0 # Node ID 435510363ae4b0025228304c46fed493dc204e14 # Parent e724adb731dfccfca65353720480b62e6fb2f8f1 If rejecting an archive for not matching a mount point, set an error state, otherwise, PHYSFS_openRead could fail with a null error message. diff -r e724adb731df -r 435510363ae4 physfs.c --- a/physfs.c Sun Mar 13 12:03:05 2005 +0000 +++ b/physfs.c Sun Mar 13 21:03:31 2005 +0000 @@ -1241,12 +1241,12 @@ size_t mntpntlen = strlen(h->mountPoint); assert(mntpntlen > 1); /* root mount points should be NULL. */ size_t len = strlen(fname); - if (len < mntpntlen) - return(0); /* not under the mountpoint, so skip this archive. */ - if (strncmp(h->mountPoint, fname, mntpntlen) != 0) - return(0); /* not under the mountpoint, so skip this archive. */ - + /* not under the mountpoint, so skip this archive. */ + BAIL_IF_MACRO(len < mntpntlen, ERR_NO_SUCH_PATH, 0); + retval = strncmp(h->mountPoint, fname, mntpntlen); + BAIL_IF_MACRO(retval != 0, ERR_NO_SUCH_PATH, 0); fname += mntpntlen; /* move to start of actual archive path. */ + retval = 1; } /* if */ /* !!! FIXME: Can we ditch this malloc()? */