Fix for correct cleanup on read error.
This commit is contained in:
parent
8793165653
commit
912ca3266d
|
@ -492,7 +492,7 @@ static PHYSFS_sint64 zip_find_end_of_central_dir(void *in, PHYSFS_sint64 *len)
|
|||
static int ZIP_isArchive(const char *filename, int forWriting)
|
||||
{
|
||||
PHYSFS_uint32 sig;
|
||||
int retval;
|
||||
int retval = 0;
|
||||
void *in;
|
||||
|
||||
in = __PHYSFS_platformOpenRead(filename);
|
||||
|
@ -502,16 +502,18 @@ static int ZIP_isArchive(const char *filename, int forWriting)
|
|||
* The first thing in a zip file might be the signature of the
|
||||
* first local file record, so it makes for a quick determination.
|
||||
*/
|
||||
BAIL_IF_MACRO(!readui32(in, &sig), NULL, 0);
|
||||
retval = (sig == ZIP_LOCAL_FILE_SIG);
|
||||
if (!retval)
|
||||
if (readui32(in, &sig))
|
||||
{
|
||||
/*
|
||||
* No sig...might be a ZIP with data at the start
|
||||
* (a self-extracting executable, etc), so we'll have to do
|
||||
* it the hard way...
|
||||
*/
|
||||
retval = (zip_find_end_of_central_dir(in, NULL) != -1);
|
||||
retval = (sig == ZIP_LOCAL_FILE_SIG);
|
||||
if (!retval)
|
||||
{
|
||||
/*
|
||||
* No sig...might be a ZIP with data at the start
|
||||
* (a self-extracting executable, etc), so we'll have to do
|
||||
* it the hard way...
|
||||
*/
|
||||
retval = (zip_find_end_of_central_dir(in, NULL) != -1);
|
||||
} /* if */
|
||||
} /* if */
|
||||
|
||||
__PHYSFS_platformClose(in);
|
||||
|
|
Loading…
Reference in New Issue