summaryrefslogtreecommitdiff
path: root/render/form.c
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2014-01-04 20:53:43 +0000
committerDaniel Silverstone <dsilvers@digital-scurf.org>2014-01-04 20:53:43 +0000
commit2a18cef82b84037b14f5e470c70ab70e433add5e (patch)
tree92622707296ab7c982332e485572eef2184410fe /render/form.c
parent581d87757601286fbb8250abc8d2bd185dddecb7 (diff)
downloadnetsurf-2a18cef82b84037b14f5e470c70ab70e433add5e.tar.gz
netsurf-2a18cef82b84037b14f5e470c70ab70e433add5e.tar.bz2
Shunt around the file multipart stuff a bit to try and fix the segfault
Diffstat (limited to 'render/form.c')
-rw-r--r--render/form.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/render/form.c b/render/form.c
index a4b882a64..9ac52392e 100644
--- a/render/form.c
+++ b/render/form.c
@@ -590,15 +590,7 @@ bool form_successful_controls(struct form *form,
success_new->value =
ENCODE_ITEM(control->value ?
control->value : "");
- success_new->next = 0;
- last_success->next = success_new;
- last_success = success_new;
- if (!success_new->name ||
- !success_new->value) {
- LOG(("strdup failed"));
- goto no_memory;
- }
-
+ success_new->rawfile = NULL;
/* Retrieve the filename from the DOM annotation */
if (dom_node_get_user_data(
control->node,
@@ -621,6 +613,15 @@ bool form_successful_controls(struct form *form,
goto no_memory;
}
+ success_new->next = 0;
+ last_success->next = success_new;
+ last_success = success_new;
+ if (!success_new->name ||
+ !success_new->value) {
+ LOG(("strdup failed"));
+ goto no_memory;
+ }
+
continue;
break;