From 02d3ca7edcfc7adb5688f46e48c8671792a80eab Mon Sep 17 00:00:00 2001 From: Jonathan Xu Date: Wed, 10 Feb 2021 10:45:34 +0800 Subject: [PATCH] Fix detection of upload boundary. Sometime a boundary can be splitted and received in two read operations. --- server/upload-file.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/upload-file.c b/server/upload-file.c index a20d8c9..3bd6ac7 100755 --- a/server/upload-file.c +++ b/server/upload-file.c @@ -1982,7 +1982,7 @@ recv_form_field (RecvFSM *fsm, gboolean *no_line) free (line); } else { size_t size = evbuffer_get_length (fsm->line); - if (size > 0) { + if (size >= strlen(fsm->boundary)) { char *buf = g_new (char, size); evbuffer_remove (fsm->line, buf, size); if (strstr(buf, fsm->boundary) != NULL) { @@ -2043,7 +2043,7 @@ recv_file_data (RecvFSM *fsm, gboolean *no_line) if (!line) { // handle boundary size_t size = evbuffer_get_length (fsm->line); - if (size > 0) { + if (size >= strlen(fsm->boundary)) { char *buf = g_new (char, size); evbuffer_remove (fsm->line, buf, size); if (strstr(buf, fsm->boundary) != NULL) {