mirror of
https://github.com/ekeeke/Genesis-Plus-GX.git
synced 2026-10-12 02:13:28 +00:00
Merge pull request #666 from acts-1631/validate-zip-output-size
[SDL] Bound ZIP extraction before narrowing its size
This commit is contained in:
+5
-2
@@ -91,11 +91,14 @@ int load_archive(char *filename, unsigned char *buffer, int maxsize, char *exten
|
||||
}
|
||||
|
||||
/* Retrieve uncompressed file size */
|
||||
size = info.uncompressed_size;
|
||||
if(size > maxsize)
|
||||
if(info.uncompressed_size > (uLong)maxsize)
|
||||
{
|
||||
size = maxsize;
|
||||
}
|
||||
else
|
||||
{
|
||||
size = info.uncompressed_size;
|
||||
}
|
||||
|
||||
/* Read (decompress) the file */
|
||||
ret = unzReadCurrentFile(fd, buffer, size);
|
||||
|
||||
+5
-2
@@ -91,11 +91,14 @@ int load_archive(char *filename, unsigned char *buffer, int maxsize, char *exten
|
||||
}
|
||||
|
||||
/* Retrieve uncompressed file size */
|
||||
size = info.uncompressed_size;
|
||||
if(size > maxsize)
|
||||
if(info.uncompressed_size > (uLong)maxsize)
|
||||
{
|
||||
size = maxsize;
|
||||
}
|
||||
else
|
||||
{
|
||||
size = info.uncompressed_size;
|
||||
}
|
||||
|
||||
/* Read (decompress) the file */
|
||||
ret = unzReadCurrentFile(fd, buffer, size);
|
||||
|
||||
+5
-2
@@ -91,11 +91,14 @@ int load_archive(char *filename, unsigned char *buffer, int maxsize, char *exten
|
||||
}
|
||||
|
||||
/* Retrieve uncompressed file size */
|
||||
size = info.uncompressed_size;
|
||||
if(size > maxsize)
|
||||
if(info.uncompressed_size > (uLong)maxsize)
|
||||
{
|
||||
size = maxsize;
|
||||
}
|
||||
else
|
||||
{
|
||||
size = info.uncompressed_size;
|
||||
}
|
||||
|
||||
/* Read (decompress) the file */
|
||||
ret = unzReadCurrentFile(fd, buffer, size);
|
||||
|
||||
Reference in New Issue
Block a user