mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-12-23 10:09:43 +01:00
Set length to 0 if PHYSFS_fileLength() is negative
PHYSFS_fileLength() returns -1 if the file size can't be determined. I'm going to set it to 0 instead, because it seems like that's more well-behaved with consumers. Take lodepng_decode24() or lodepng_decode32(), for example - from a quick glance at the source, it only takes in a size_t (an unsigned integer) for the filesize, and one of the first things it does is malloc with the given filesize. If the -1 turns into SIZE_MAX and LodePNG attempts to allocate that many bytes... well, I don't know of any systems that have 18 exabytes of memory. So that seems pretty bad.
This commit is contained in:
parent
888844cd3a
commit
5af570e75b
1 changed files with 4 additions and 0 deletions
|
@ -363,6 +363,10 @@ void FILESYSTEM_loadFileToMemory(
|
||||||
PHYSFS_sint64 length = PHYSFS_fileLength(handle);
|
PHYSFS_sint64 length = PHYSFS_fileLength(handle);
|
||||||
if (len != NULL)
|
if (len != NULL)
|
||||||
{
|
{
|
||||||
|
if (length < 0)
|
||||||
|
{
|
||||||
|
length = 0;
|
||||||
|
}
|
||||||
*len = length;
|
*len = length;
|
||||||
}
|
}
|
||||||
if (addnull)
|
if (addnull)
|
||||||
|
|
Loading…
Reference in a new issue