If rejecting an archive for not matching a mount point, set an error state,
otherwise, PHYSFS_openRead could fail with a null error message.
This commit is contained in:
parent
67776da8cc
commit
38a1c7f559
10
physfs.c
10
physfs.c
|
@ -1241,12 +1241,12 @@ int __PHYSFS_verifySecurity(DirHandle *h, char *fname, int allowMissing)
|
|||
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()? */
|
||||
|
|
Loading…
Reference in New Issue