Skip to content
Permalink
Browse files
Fixed dereference of free()'d memory.
Thanks to Evgeny Podjachev for the fix!
  • Loading branch information
icculus committed Mar 13, 2012
1 parent c57bd94 commit a42ada1380518231af3a2b9acd6a3815491edd17
Showing with 6 additions and 5 deletions.
  1. +6 −5 src/archiver_dir.c
@@ -64,20 +64,21 @@ static PHYSFS_Io *doOpen(dvoid *opaque, const char *name,
if (fileExists == NULL)
fileExists = &existtmp;

*fileExists = 0;

BAIL_IF_MACRO(f == NULL, NULL, NULL);

io = __PHYSFS_createNativeIo(f, mode);
allocator.Free(f);
if (io == NULL)
{
PHYSFS_Stat statbuf; /* !!! FIXME: this changes the error message. */
__PHYSFS_platformStat(f, fileExists, &statbuf);
return NULL;
} /* if */
else
{
*fileExists = 1;
} /* else */

allocator.Free(f);

*fileExists = 1;
return io;
} /* doOpen */

0 comments on commit a42ada1

Please sign in to comment.