diff options
Diffstat (limited to 'devtools/create_kyradat')
-rw-r--r-- | devtools/create_kyradat/create_kyradat.cpp | 7 | ||||
-rw-r--r-- | devtools/create_kyradat/pak.cpp | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/devtools/create_kyradat/create_kyradat.cpp b/devtools/create_kyradat/create_kyradat.cpp index ca809e0aac..01cde620e7 100644 --- a/devtools/create_kyradat/create_kyradat.cpp +++ b/devtools/create_kyradat/create_kyradat.cpp @@ -2350,8 +2350,10 @@ bool createIDMap(PAKFile &out, const ExtractInformation *eI, const int *needList for (const int *id = needList; *id != -1; ++id) { WRITE_BE_UINT16(dst, *id); dst += 2; const ExtractFilename *fDesc = getFilenameDesc(*id); - if (!fDesc) + if (!fDesc) { + delete[] map; return false; + } *dst++ = getTypeID(fDesc->type); WRITE_BE_UINT32(dst, getFilename(eI, *id)); dst += 4; } @@ -2359,15 +2361,18 @@ bool createIDMap(PAKFile &out, const ExtractInformation *eI, const int *needList char filename[12]; if (!getFilename(filename, eI, 0)) { fprintf(stderr, "ERROR: Could not create ID map for game\n"); + delete[] map; return false; } out.removeFile(filename); if (!out.addFile(filename, map, mapSize)) { fprintf(stderr, "ERROR: Could not add ID map \"%s\" to kyra.dat\n", filename); + delete[] map; return false; } + delete[] map; return true; } diff --git a/devtools/create_kyradat/pak.cpp b/devtools/create_kyradat/pak.cpp index 0203285a8f..0d085f563c 100644 --- a/devtools/create_kyradat/pak.cpp +++ b/devtools/create_kyradat/pak.cpp @@ -142,6 +142,7 @@ bool PAKFile::outputAllFiles() { printf("OK\n"); } else { printf("FAILED\n"); + fclose(file); return false; } fclose(file); @@ -168,6 +169,7 @@ bool PAKFile::outputFileAs(const char *f, const char *fn) { printf("OK\n"); } else { printf("FAILED\n"); + fclose(file); return false; } fclose(file); |