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;
 |