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,7 +502,8 @@ 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);
|
||||
if (readui32(in, &sig))
|
||||
{
|
||||
retval = (sig == ZIP_LOCAL_FILE_SIG);
|
||||
if (!retval)
|
||||
{
|
||||
|
@ -513,6 +514,7 @@ static int ZIP_isArchive(const char *filename, int forWriting)
|
|||
*/
|
||||
retval = (zip_find_end_of_central_dir(in, NULL) != -1);
|
||||
} /* if */
|
||||
} /* if */
|
||||
|
||||
__PHYSFS_platformClose(in);
|
||||
return(retval);
|
||||
|
|
Loading…
Reference in New Issue