summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn-Mark Bell <jmb@netsurf-browser.org>2022-05-22 02:29:21 +0100
committerJohn-Mark Bell <jmb@netsurf-browser.org>2022-05-22 02:29:21 +0100
commit8cd266be4e1e610573fd81a875a7479cebb2edfe (patch)
treeebc83f9bac9e9d87a03e2142d5572658b923b170
parentb07f310d495a680de336122d7be6bb9059981a3d (diff)
downloadlibrufl-8cd266be4e1e610573fd81a875a7479cebb2edfe.tar.gz
librufl-8cd266be4e1e610573fd81a875a7479cebb2edfe.tar.bz2
Squash leaks in non-UCS FM case
-rw-r--r--src/rufl_init.c1
-rw-r--r--src/rufl_quit.c7
2 files changed, 8 insertions, 0 deletions
diff --git a/src/rufl_init.c b/src/rufl_init.c
index bbaf611..13b9509 100644
--- a/src/rufl_init.c
+++ b/src/rufl_init.c
@@ -911,6 +911,7 @@ rufl_code rufl_init_scan_font_old(unsigned int font_index)
memcmp(a->map, b->map,
sizeof a->map) == 0) {
/* Found identical map; discard */
+ free(b->encoding);
num_umaps--;
break;
}
diff --git a/src/rufl_quit.c b/src/rufl_quit.c
index ed03128..e2daa8c 100644
--- a/src/rufl_quit.c
+++ b/src/rufl_quit.c
@@ -24,6 +24,13 @@ void rufl_quit(void)
for (i = 0; i != rufl_font_list_entries; i++) {
free(rufl_font_list[i].identifier);
free(rufl_font_list[i].charset);
+ if (rufl_font_list[i].umap != NULL) {
+ size_t j;
+ for (j = 0; j != rufl_font_list[i].num_umaps; j++) {
+ free((rufl_font_list[i].umap + j)->encoding);
+ }
+ free(rufl_font_list[i].umap);
+ }
}
free(rufl_font_list);
rufl_font_list = 0;