aboutsummaryrefslogtreecommitdiff
path: root/src/testcurl/test_toolarge.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/testcurl/test_toolarge.c')
-rw-r--r--src/testcurl/test_toolarge.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/testcurl/test_toolarge.c b/src/testcurl/test_toolarge.c
index e6c291e2..05e497a7 100644
--- a/src/testcurl/test_toolarge.c
+++ b/src/testcurl/test_toolarge.c
@@ -273,12 +273,17 @@ lcurl_hdr_callback (char *buffer, size_t size, size_t nitems,
273 check_res->num_n1_headers++; 273 check_res->num_n1_headers++;
274 else if ((5 <= data_size) && ('0' == buffer[0])) 274 else if ((5 <= data_size) && ('0' == buffer[0]))
275 { 275 {
276 const char *const col_ptr = strstr (buffer, ": "); 276 const char *const col_ptr = memchr (buffer, ':', data_size);
277 if (0 != check_res->large_header_value_size) 277 if (0 != check_res->large_header_value_size)
278 mhdErrorExitDesc ("Expected only one large header, " \ 278 mhdErrorExitDesc ("Expected only one large header, " \
279 "but found two large headers in the reply"); 279 "but found two large headers in the reply");
280 check_res->large_header_valid = 0; 280 if (NULL == col_ptr)
281 if (NULL != col_ptr) 281 check_res->large_header_valid = 0;
282 else if ((size_t) (col_ptr - buffer) >= data_size - 2)
283 check_res->large_header_valid = 0;
284 else if (*(col_ptr + 1) != ' ')
285 check_res->large_header_valid = 0;
286 else
282 { 287 {
283 const char *const name = buffer; 288 const char *const name = buffer;
284 const size_t name_len = (size_t) (col_ptr - buffer); 289 const size_t name_len = (size_t) (col_ptr - buffer);