diff --git a/lib/roles/http/client/client-http.c b/lib/roles/http/client/client-http.c index 6651e3716..cf6ffa8ee 100644 --- a/lib/roles/http/client/client-http.c +++ b/lib/roles/http/client/client-http.c @@ -1027,7 +1027,7 @@ lws_http_multipart_headers(struct lws *wsi, uint8_t *p) wsi->http.multipart_boundary, sizeof(wsi->http.multipart_boundary)); - n = lws_snprintf(arg, sizeof(arg), "multipart/form-data; boundary=%s", + n = lws_snprintf(arg, sizeof(arg), "multipart/form-data; boundary=\"%s\"", wsi->http.multipart_boundary); if (lws_add_http_header_by_token(wsi, WSI_TOKEN_HTTP_CONTENT_TYPE, diff --git a/lib/roles/http/server/lws-spa.c b/lib/roles/http/server/lws-spa.c index 1bbf77a63..fdf146dee 100644 --- a/lib/roles/http/server/lws-spa.c +++ b/lib/roles/http/server/lws-spa.c @@ -138,8 +138,10 @@ lws_urldecode_s_create(struct lws_spa *spa, struct lws *wsi, char *out, s->mime_boundary[m++] = '\x0a'; s->mime_boundary[m++] = '-'; s->mime_boundary[m++] = '-'; + if (*p == '\"') + p++; while (m < (int)sizeof(s->mime_boundary) - 1 && - *p && *p != ' ' && *p != ';') + *p && *p != ' ' && *p != ';' && *p != '\"') s->mime_boundary[m++] = *p++; s->mime_boundary[m] = '\0';