summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--file.c1
-rw-r--r--parse-xml.c3
2 files changed, 4 insertions, 0 deletions
diff --git a/file.c b/file.c
index b5fba301a..8deb2fe97 100644
--- a/file.c
+++ b/file.c
@@ -72,6 +72,7 @@ static void zip_read(struct zip_file *file, GError **error, const char *filename
size = read * 3 / 2;
mem = realloc(mem, size);
}
+ mem[read] = 0;
parse_xml_buffer(filename, mem, read, &dive_table, error);
free(mem);
}
diff --git a/parse-xml.c b/parse-xml.c
index b24806bba..2ecd063b2 100644
--- a/parse-xml.c
+++ b/parse-xml.c
@@ -1562,6 +1562,9 @@ void parse_xml_buffer(const char *url, const char *buffer, int size,
target_table = table;
doc = xmlReadMemory(res, strlen(res), url, NULL, 0);
+ if (res != buffer)
+ free((char *)res);
+
if (!doc) {
fprintf(stderr, _("Failed to parse '%s'.\n"), url);
parser_error(error, _("Failed to parse '%s'"), url);