@@ -592,6 +592,30 @@ void test_Http_InitializeRequestHeaders_Insufficient_Memory()
592592 HTTP_TEST_REQUEST_LINE_LEN ) != 0 );
593593}
594594
595+ void test_Http_InitializeRequestHeaders_NullByteInPath ()
596+ {
597+ HTTPStatus_t httpStatus = HTTPSuccess ;
598+ HTTPRequestHeaders_t requestHeaders = { 0 };
599+ HTTPRequestInfo_t requestInfo = { 0 };
600+ const char * const pathWithNullByte = "/AB\0CDEF/" ;
601+
602+ expectedHeaders .dataLen = HTTP_TEST_PREFIX_HEADER_LEN -
603+ HTTP_TEST_REQUEST_PATH_LEN +
604+ HTTP_EMPTY_PATH_LEN ;
605+
606+ setupRequestInfo ( & requestInfo );
607+ setupBuffer ( & requestHeaders );
608+
609+ requestInfo .pPath = pathWithNullByte ;
610+ requestInfo .pathLen = ( sizeof ( pathWithNullByte ) - 1 );
611+ requestInfo .reqFlags = 0U ;
612+
613+ requestHeaders .pBuffer = testBuffer ;
614+ requestHeaders .bufferLen = expectedHeaders .dataLen ;
615+ httpStatus = HTTPClient_InitializeRequestHeaders ( & requestHeaders , & requestInfo );
616+ TEST_ASSERT_EQUAL ( HTTPInvalidParameter , httpStatus );
617+ }
618+
595619/* ===================== Testing HTTPClient_AddHeader ======================= */
596620
597621/**
@@ -827,6 +851,7 @@ void test_Http_AddHeader_Invalid_Fields()
827851 const char * colonInField = "head:er-field" ;
828852 const char * linefeedInField = "head\ner-field" ;
829853 const char * carriageReturnInField = "head\rer-field" ;
854+ const char * nullInField = "head\0er-field" ;
830855
831856 setupBuffer ( & requestHeaders );
832857
@@ -851,6 +876,11 @@ void test_Http_AddHeader_Invalid_Fields()
851876 carriageReturnInField , strlen ( carriageReturnInField ),
852877 HTTP_TEST_HEADER_VALUE , HTTP_TEST_HEADER_VALUE_LEN );
853878 TEST_ASSERT_EQUAL ( HTTPSecurityAlertInvalidCharacter , httpStatus );
879+
880+ httpStatus = HTTPClient_AddHeader ( & requestHeaders ,
881+ nullInField , sizeof ( nullInField ),
882+ HTTP_TEST_HEADER_VALUE , HTTP_TEST_HEADER_VALUE_LEN );
883+ TEST_ASSERT_EQUAL ( HTTPSecurityAlertInvalidCharacter , httpStatus );
854884}
855885
856886/**
@@ -865,6 +895,7 @@ void test_Http_AddHeader_Invalid_Values()
865895 const char * colonInValue = "head:er-value" ;
866896 const char * linefeedInValue = "head\ner-Value" ;
867897 const char * carriageReturnInValue = "head\rer-Value" ;
898+ const char * nullInValue = "head\0er-Value" ;
868899
869900 setupBuffer ( & requestHeaders );
870901
@@ -909,6 +940,11 @@ void test_Http_AddHeader_Invalid_Values()
909940 HTTP_TEST_HEADER_FIELD , HTTP_TEST_HEADER_FIELD_LEN ,
910941 carriageReturnInValue , strlen ( carriageReturnInValue ) );
911942 TEST_ASSERT_EQUAL ( HTTPSecurityAlertInvalidCharacter , httpStatus );
943+
944+ httpStatus = HTTPClient_AddHeader ( & requestHeaders ,
945+ HTTP_TEST_HEADER_FIELD , HTTP_TEST_HEADER_FIELD_LEN ,
946+ carriageReturnInValue , sizeof ( nullInValue ) - 1 );
947+ TEST_ASSERT_EQUAL ( HTTPSecurityAlertInvalidCharacter , httpStatus );
912948}
913949
914950/* ============== Testing HTTPClient_AddRangeHeader ================== */
@@ -996,6 +1032,7 @@ void test_Http_AddRangeHeader_Insufficient_Memory( void )
9961032 & expectedHeaders ,
9971033 PREEXISTING_HEADER_DATA );
9981034 size_t preHeadersLen = testHeaders .headersLen ;
1035+
9991036 testRangeStart = 5 ;
10001037 testRangeEnd = 10 ;
10011038
0 commit comments