diff options
author | James Bursa <james@netsurf-browser.org> | 2004-08-08 19:13:40 +0000 |
---|---|---|
committer | James Bursa <james@netsurf-browser.org> | 2004-08-08 19:13:40 +0000 |
commit | 8337acfc7839cde431d4761bbe693f0faa17b741 (patch) | |
tree | bc24ef36dc7136f2c973b907f9650dfb3495009f /desktop | |
parent | 94103b8c962a8782e8a4187ecedf33ec51178833 (diff) | |
download | netsurf-8337acfc7839cde431d4761bbe693f0faa17b741.tar.gz netsurf-8337acfc7839cde431d4761bbe693f0faa17b741.tar.bz2 |
[project @ 2004-08-08 19:13:40 by bursa]
Fix form submitting with an empty file upload. Update form_textarea_value(). Purge xcalloc() etc from form.c and handle memory exhaustion.
svn path=/import/netsurf/; revision=1195
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/browser.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/desktop/browser.c b/desktop/browser.c index ca23c1438..6e797a97e 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -1638,12 +1638,20 @@ void browser_form_submit(struct browser_window *bw, struct form *form, assert(form); assert(bw->current_content->type == CONTENT_HTML); - success = form_successful_controls(form, submit_button); + if (!form_successful_controls(form, submit_button, &success)) { + warn_user("NoMemory", 0); + return; + } base = bw->current_content->data.html.base_url; switch (form->method) { case method_GET: data = form_url_encode(success); + if (!data) { + form_free_successful(success); + warn_user("NoMemory", 0); + return; + } url = xcalloc(1, strlen(form->action) + strlen(data) + 2); if(form->action[strlen(form->action)-1] == '?') { sprintf(url, "%s%s", form->action, data); @@ -1659,6 +1667,11 @@ void browser_form_submit(struct browser_window *bw, struct form *form, case method_POST_URLENC: data = form_url_encode(success); + if (!data) { + form_free_successful(success); + warn_user("NoMemory", 0); + return; + } url = url_join(form->action, base); if (!url) break; |