aboutsummaryrefslogtreecommitdiff
path: root/lib/formdata.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/formdata.c')
-rw-r--r--lib/formdata.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/lib/formdata.c b/lib/formdata.c
index 4eb2d94c2..0cdf56889 100644
--- a/lib/formdata.c
+++ b/lib/formdata.c
@@ -318,6 +318,7 @@ static int AddFormData(struct FormData **formp,
newform->line = (char *)malloc(length+1);
memcpy(newform->line, line, length+1);
newform->length = length;
+ newform->line[length]=0; /* zero terminate for easier debugging */
if(*formp) {
(*formp)->next = newform;
@@ -517,12 +518,20 @@ int FormInit(struct Form *form, struct FormData *formdata )
{
if(!formdata)
return 1; /* error */
-
- /* First, make sure that we'll send a nice terminating sequence at the end
+
+#if 0
+ struct FormData *lastnode=formdata;
+
+ /* find the last node in the list */
+ while(lastnode->next) {
+ lastnode = lastnode->next;
+ }
+
+ /* Now, make sure that we'll send a nice terminating sequence at the end
* of the post. We *DONT* add this string to the size of the data since this
* is actually AFTER the data. */
- AddFormDataf(&formdata, "\r\n\r\n");
-
+ AddFormDataf(&lastnode, "\r\n\r\n");
+#endif
form->data = formdata;
form->sent = 0;
@@ -544,7 +553,7 @@ int FormReader(char *buffer,
wantedsize = size * nitems;
if(!form->data)
- return 0; /* nothing, error, empty */
+ return -1; /* nothing, error, empty */
do {