Permalink
Browse files

VFS: Fix crash when built with minizip

  • Loading branch information...
ccawley2011 authored and endrift committed Feb 7, 2018
1 parent eafd265 commit c8dacbb6456682351c90b8424966ab466a4fb6e9
Showing with 7 additions and 1 deletion.
  1. +7 −1 src/util/vfs/vfs-zip.c
View
@@ -61,6 +61,7 @@ struct VFileZip {
struct VFile d;
unzFile z;
void* buffer;
+ size_t bufferSize;
size_t fileSize;
};
#endif
@@ -451,7 +452,9 @@ static enum VFSType _vdezType(struct VDirEntry* vde) {
bool _vfzClose(struct VFile* vf) {
struct VFileZip* vfz = (struct VFileZip*) vf;
unzCloseCurrentFile(vfz->z);
- free(vfz->buffer);
+ if (vfz->buffer) {
+ mappedMemoryFree(vfz->buffer, vfz->bufferSize);
+ }
free(vfz);
return true;
}
@@ -536,6 +539,8 @@ void* _vfzMap(struct VFile* vf, size_t size, int flags) {
unzOpenCurrentFile(vfz->z);
vf->seek(vf, pos, SEEK_SET);
+ vfz->bufferSize = size;
+
return vfz->buffer;
}
@@ -619,6 +624,7 @@ struct VFile* _vdzOpenFile(struct VDir* vd, const char* path, int mode) {
struct VFileZip* vfz = malloc(sizeof(struct VFileZip));
vfz->z = vdz->z;
vfz->buffer = 0;
+ vfz->bufferSize = 0;
vfz->fileSize = info.uncompressed_size;
vfz->d.close = _vfzClose;

0 comments on commit c8dacbb

Please sign in to comment.