aboutsummaryrefslogtreecommitdiff
path: root/devtools/create_kyradat
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/create_kyradat')
-rw-r--r--devtools/create_kyradat/create_kyradat.cpp7
-rw-r--r--devtools/create_kyradat/pak.cpp2
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);