mirror of https://github.com/google/oss-fuzz.git
45 lines
1.3 KiB
Diff
45 lines
1.3 KiB
Diff
diff --git a/server/apreq_parser_header.c b/server/apreq_parser_header.c
|
|
index 19588be..7067e58 100644
|
|
--- a/server/apreq_parser_header.c
|
|
+++ b/server/apreq_parser_header.c
|
|
@@ -89,7 +89,7 @@ static apr_status_t split_header_line(apreq_param_t **p,
|
|
if (s != APR_SUCCESS)
|
|
return s;
|
|
|
|
- assert(nlen >= len);
|
|
+ if (!(nlen >= len)) { return APR_EBADARG; } assert(nlen >= len);
|
|
end->iov_len = len;
|
|
nlen -= len;
|
|
|
|
@@ -103,13 +103,13 @@ static apr_status_t split_header_line(apreq_param_t **p,
|
|
if (s != APR_SUCCESS)
|
|
return s;
|
|
|
|
- assert(glen >= dlen);
|
|
+ if (!(glen >= dlen)) { return APR_EBADARG; } assert(glen >= dlen);
|
|
glen -= dlen;
|
|
e = APR_BUCKET_NEXT(e);
|
|
}
|
|
|
|
/* copy value */
|
|
- assert(vlen > 0);
|
|
+ if (!(vlen > 0)) { return APR_EBADARG; } assert(vlen > 0);
|
|
dest = v->data;
|
|
while (vlen > 0) {
|
|
|
|
@@ -119,12 +119,12 @@ static apr_status_t split_header_line(apreq_param_t **p,
|
|
|
|
memcpy(dest, data, dlen);
|
|
dest += dlen;
|
|
- assert(vlen >= dlen);
|
|
+ if (!(vlen >= dlen)) { return APR_EBADARG; } assert(vlen >= dlen);
|
|
vlen -= dlen;
|
|
e = APR_BUCKET_NEXT(e);
|
|
}
|
|
|
|
- assert(dest[-1] == '\n');
|
|
+ if (!(dest[-1] == '\n')) { return APR_EBADARG; } assert(dest[-1] == '\n');
|
|
|
|
if (dest[-2] == '\r')
|
|
--dest;
|