From: Yann Ylavic Date: Sun, 14 Nov 2021 11:22:07 +0000 (+0000) Subject: Sync r1895020 and r1895021 from libapreq. X-Git-Tag: 2.5.0-alpha2-ci-test-only~695 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6b1247e8a6ce5708d57187cb33db5f6da96f86dc;p=thirdparty%2Fapache%2Fhttpd.git Sync r1895020 and r1895021 from libapreq. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1895023 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/server/apreq_parser_multipart.c b/server/apreq_parser_multipart.c index e4c4d71b91e..a6c0151367a 100644 --- a/server/apreq_parser_multipart.c +++ b/server/apreq_parser_multipart.c @@ -240,6 +240,8 @@ struct mfd_ctx * create_multipart_context(const char *content_type, (const char **)&ctx->bdry, &blen); if (s != APR_SUCCESS) return NULL; /* missing boundary */ + if (!ctx->bdry || !*ctx->bdry) + return NULL; /* boundary with no or empty value */ ctx->bdry[blen] = 0; diff --git a/server/apreq_util.c b/server/apreq_util.c index eba8b8b3f69..11b66f9a147 100644 --- a/server/apreq_util.c +++ b/server/apreq_util.c @@ -868,7 +868,7 @@ APREQ_DECLARE(apr_status_t) case '=': case ';': case ',': - v = hde + 1; + v = hde; hde -= tail; break; case ' ': @@ -891,12 +891,13 @@ APREQ_DECLARE(apr_status_t) } /* Parse the value => (*val, *vlen) */ - if (v[-1] == '=') { + if (*v == '=') { if (hde == hdr) { /* The name can't be empty */ return APREQ_ERROR_BADATTR; } + ++v; while (IS_SPACE_CHAR(*v)) ++v;