@@ -1601,7 +1601,7 @@ static void HTTPsReq_HdrParse (HTTPs_INSTANCE *p_instance,
16011601 p_field_end ,
16021602 & len );
16031603 if (p_val != DEF_NULL ) {
1604- len = p_field_end - p_val ;
1604+ len = p_field_end - p_val ;
16051605 /* Get content type key by comparing field val name. */
16061606 field_key = HTTP_Dict_KeyGet (HTTP_Dict_ContentType ,
16071607 HTTP_Dict_ContentTypeSize ,
@@ -1629,45 +1629,49 @@ static void HTTPsReq_HdrParse (HTTPs_INSTANCE *p_instance,
16291629 (HTTPs_CFG_FORM_MULTIPART_EN == DEF_ENABLED ))
16301630 /* ----------------- STO BOUNDARY VAL ----------------- */
16311631 /* Boundary should be located after content type ... */
1632- /* val (see Note #3b). */
1632+ /* ... val (see Note #3b). */
1633+
1634+ if ((p_cfg -> FormCfgPtr != DEF_NULL ) &&
1635+ (p_conn -> FormBoundaryPtr != DEF_NULL )) {
16331636 /* Find end of content type val. */
1634- p_dictionary = HTTP_Dict_EntryGet (HTTP_Dict_ContentType ,
1635- HTTP_Dict_ContentTypeSize ,
1636- HTTP_CONTENT_TYPE_MULTIPART_FORM );
1637- p_val = p_val + p_dictionary -> StrLen + 1 ;
1638- p_val = HTTP_StrGraphSrchFirst (p_val , len );
1639- len = len - (p_val - p_field );
1637+ p_dictionary = HTTP_Dict_EntryGet (HTTP_Dict_ContentType ,
1638+ HTTP_Dict_ContentTypeSize ,
1639+ HTTP_CONTENT_TYPE_MULTIPART_FORM );
1640+ p_val = p_val + p_dictionary -> StrLen + 1 ;
1641+ p_val = HTTP_StrGraphSrchFirst (p_val , len );
1642+ len = len - (p_val - p_field );
16401643
16411644 /* Find beginning of boundary token. */
1642- p_val = Str_Str_N (p_val ,
1643- HTTP_STR_MULTIPART_BOUNDARY ,
1644- sizeof (HTTP_STR_MULTIPART_BOUNDARY ));
1645+ p_val = Str_Str_N (p_val ,
1646+ HTTP_STR_MULTIPART_BOUNDARY ,
1647+ sizeof (HTTP_STR_MULTIPART_BOUNDARY ));
16451648
1646- if (p_val == DEF_NULL ) {
1647- * p_err = HTTPs_ERR_REQ_FORMAT_INVALID ;
1648- return ;
1649- }
1649+ if (p_val == DEF_NULL ) {
1650+ * p_err = HTTPs_ERR_REQ_FORMAT_INVALID ;
1651+ return ;
1652+ }
16501653
16511654 /* Boundary located after '='. */
1652- p_val = Str_Char_N (p_val , len , ASCII_CHAR_EQUALS_SIGN );
1653- if (p_val == DEF_NULL ) {
1654- * p_err = HTTPs_ERR_REQ_FORMAT_INVALID ;
1655- return ;
1656- }
1655+ p_val = Str_Char_N (p_val , len , ASCII_CHAR_EQUALS_SIGN );
1656+ if (p_val == DEF_NULL ) {
1657+ * p_err = HTTPs_ERR_REQ_FORMAT_INVALID ;
1658+ return ;
1659+ }
16571660
1658- p_val ++ ; /* Remove space before boundary val. */
1659- p_val = HTTP_StrGraphSrchFirst (p_val ,
1660- len );
1661- len = p_field_end - p_val ;
1661+ p_val ++ ; /* Remove space before boundary val. */
1662+ p_val = HTTP_StrGraphSrchFirst (p_val ,
1663+ len );
1664+ len = p_field_end - p_val ;
16621665
16631666 /* Copy boundary val to Conn struct. */
1664- Str_Copy_N (p_conn -> FormBoundaryPtr ,
1665- p_val ,
1666- len );
1667+ Str_Copy_N (p_conn -> FormBoundaryPtr ,
1668+ p_val ,
1669+ len );
16671670 /* Make sure to create a string. */
1668- p_conn -> FormBoundaryPtr [len ] = ASCII_CHAR_NULL ;
1671+ p_conn -> FormBoundaryPtr [len ] = ASCII_CHAR_NULL ;
16691672
1670- p_conn -> FormBoundaryLen = len ;
1673+ p_conn -> FormBoundaryLen = len ;
1674+ }
16711675#endif
16721676 break ;
16731677
0 commit comments