summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2013-10-23 12:34:48 +0100
committerMichael Drake <tlsa@netsurf-browser.org>2013-10-23 12:34:48 +0100
commit3e08819db94ae86f995e1e14650258c6428a9f84 (patch)
tree6f4f95b6669608f5ec3f6349ced7148c7665a5ca
parent479fcefd9adb9f234346b1e87bd0e128738c0446 (diff)
downloadnetsurf-3e08819db94ae86f995e1e14650258c6428a9f84.tar.gz
netsurf-3e08819db94ae86f995e1e14650258c6428a9f84.tar.bz2
Fix leaks in form_successful_controls. 'charset' was always leaked, value was leaked in particular OOM case.
-rw-r--r--render/form.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/render/form.c b/render/form.c
index 684e1c845..ebe9b6f28 100644
--- a/render/form.c
+++ b/render/form.c
@@ -611,6 +611,7 @@ bool form_successful_controls(struct form *form,
success_new = malloc(sizeof(*success_new));
if (!success_new) {
LOG(("malloc failed"));
+ free(value);
goto no_memory;
}
success_new->file = false;
@@ -626,11 +627,14 @@ bool form_successful_controls(struct form *form,
}
}
+ free(charset);
+
*successful_controls = sentinel.next;
return true;
no_memory:
warn_user("NoMemory", 0);
+ free(charset);
fetch_multipart_data_destroy(sentinel.next);
return false;