Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Fix for correct cleanup on read error.
  • Loading branch information
icculus committed Jul 31, 2002
1 parent 8793165 commit 912ca32
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions archivers/zip.c
Expand Up @@ -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);
Expand All @@ -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);
Expand Down

0 comments on commit 912ca32

Please sign in to comment.