File tree 7 files changed +26
-20
lines changed
httpParserOnStatusCallback
7 files changed +26
-20
lines changed Original file line number Diff line number Diff line change @@ -47,9 +47,8 @@ void findHeaderFieldParserCallback_harness()
47
47
pResponse -> bufferLen > 0 );
48
48
49
49
__CPROVER_assume ( 0 < fieldLen && fieldLen <= MAX_HEADER_FIELD_LENGTH && fieldLen <= pResponse -> bufferLen );
50
- __CPROVER_assume ( fieldOffset < fieldLen );
50
+ __CPROVER_assume ( fieldOffset <= pResponse -> bufferLen - fieldLen );
51
51
pFieldLoc = pResponse -> pBuffer + fieldOffset ;
52
- __CPROVER_assume ( pFieldLoc + fieldLen < pResponse -> pBuffer + pResponse -> bufferLen );
53
52
54
53
__CPROVER_assume ( 0 < fieldContextLen && fieldContextLen < CBMC_MAX_OBJECT_SIZE );
55
54
pFindHeaderContext -> pField = ( char * ) malloc ( fieldContextLen );
Original file line number Diff line number Diff line change @@ -46,12 +46,13 @@ void findHeaderValueParserCallback_harness()
46
46
pResponse -> pBuffer != NULL &&
47
47
pResponse -> bufferLen > 0 );
48
48
49
- __CPROVER_assume ( 0 < valueLen && valueLen <= pResponse -> bufferLen );
50
- __CPROVER_assume ( valueOffset < valueLen );
49
+ __CPROVER_assume ( valueOffset <= pResponse -> bufferLen );
50
+ __CPROVER_assume ( valueLen <= pResponse -> bufferLen - valueOffset );
51
51
pValueLoc = pResponse -> pBuffer + valueOffset ;
52
52
53
- __CPROVER_assume ( 0 < fieldLen && fieldLen <= pResponse -> bufferLen );
54
- __CPROVER_assume ( fieldOffset < fieldLen );
53
+ __CPROVER_assume ( fieldOffset <= pResponse -> bufferLen );
54
+ __CPROVER_assume ( fieldLen > 0 );
55
+ __CPROVER_assume ( fieldLen <= pResponse -> bufferLen - fieldOffset );
55
56
pFindHeaderContext -> pField = pResponse -> pBuffer + fieldOffset ;
56
57
pFindHeaderContext -> fieldLen = fieldLen ;
57
58
pFindHeaderContext -> pValueLen = & valueLen ;
Original file line number Diff line number Diff line change @@ -45,8 +45,8 @@ void httpParserOnBodyCallback_harness()
45
45
__CPROVER_assume ( length < pResponse -> bufferLen );
46
46
pLoc = pResponse -> pBuffer + length ;
47
47
48
- __CPROVER_assume ( pLoc + length <
49
- ( pResponse -> pBuffer + pResponse -> bufferLen ) );
48
+ __CPROVER_assume ( pLoc <
49
+ ( pResponse -> pBuffer + pResponse -> bufferLen - length ) );
50
50
51
51
__CPROVER_file_local_core_http_client_c_httpParserOnBodyCallback ( pHttpParser , pLoc , length );
52
52
}
Original file line number Diff line number Diff line change @@ -47,8 +47,8 @@ void httpParserOnHeaderFieldCallback_harness()
47
47
pResponse = pParsingContext -> pResponse ;
48
48
pResponse -> pHeaderParsingCallback = & headerParserCallback ;
49
49
50
- __CPROVER_assume ( length <= pResponse -> bufferLen );
51
- __CPROVER_assume ( locOffset < length );
50
+ __CPROVER_assume ( locOffset <= pResponse -> bufferLen );
51
+ __CPROVER_assume ( length <= pResponse -> bufferLen - locOffset );
52
52
pLoc = pResponse -> pBuffer + locOffset ;
53
53
54
54
/* This assumption suppresses an overflow error when incrementing pResponse->headerCount. */
Original file line number Diff line number Diff line change @@ -43,8 +43,8 @@ void httpParserOnHeaderValueCallback_harness()
43
43
__CPROVER_assume ( pParsingContext -> pLastHeaderField != NULL );
44
44
45
45
pResponse = pParsingContext -> pResponse ;
46
- __CPROVER_assume ( length <= pResponse -> bufferLen );
47
- __CPROVER_assume ( locOffset < length );
46
+ __CPROVER_assume ( locOffset <= pResponse -> bufferLen );
47
+ __CPROVER_assume ( length <= pResponse -> bufferLen - locOffset );
48
48
pLoc = pResponse -> pBuffer + locOffset ;
49
49
50
50
__CPROVER_file_local_core_http_client_c_httpParserOnHeaderValueCallback ( pHttpParser , pLoc , length );
Original file line number Diff line number Diff line change @@ -42,8 +42,8 @@ void httpParserOnStatusCallback_harness()
42
42
pParsingContext = ( HTTPParsingContext_t * ) pHttpParser -> data ;
43
43
44
44
pResponse = pParsingContext -> pResponse ;
45
- __CPROVER_assume ( length <= pResponse -> bufferLen );
46
- __CPROVER_assume ( locOffset < length );
45
+ __CPROVER_assume ( locOffset <= pResponse -> bufferLen );
46
+ __CPROVER_assume ( length <= pResponse -> bufferLen - locOffset );
47
47
pLoc = pResponse -> pBuffer + locOffset ;
48
48
49
49
__CPROVER_file_local_core_http_client_c_httpParserOnStatusCallback ( pHttpParser , pLoc , length );
Original file line number Diff line number Diff line change @@ -116,10 +116,13 @@ HTTPResponse_t * allocateHttpResponse( HTTPResponse_t * pResponse )
116
116
117
117
__CPROVER_assume ( headerOffset <= pResponse -> bufferLen );
118
118
119
- /* It is possible to have no headers in the response so set to NULL or
120
- * an offset in the response buffer. */
121
- pResponse -> pHeaders = nondet_bool () ? NULL :
122
- pResponse -> pBuffer + headerOffset ;
119
+ if ( pResponse -> pBuffer != NULL )
120
+ {
121
+ /* It is possible to have no headers in the response so set to NULL or
122
+ * an offset in the response buffer. */
123
+ pResponse -> pHeaders = nondet_bool () ? NULL :
124
+ pResponse -> pBuffer + headerOffset ;
125
+ }
123
126
124
127
if ( pResponse -> pHeaders != NULL )
125
128
{
@@ -137,8 +140,11 @@ HTTPResponse_t * allocateHttpResponse( HTTPResponse_t * pResponse )
137
140
__CPROVER_assume ( bodyOffset <= pResponse -> bufferLen );
138
141
}
139
142
140
- pResponse -> pBody = nondet_bool () ? NULL :
141
- pResponse -> pBuffer + bodyOffset ;
143
+ if ( pResponse -> pBuffer != NULL )
144
+ {
145
+ pResponse -> pBody = nondet_bool () ? NULL :
146
+ pResponse -> pBuffer + bodyOffset ;
147
+ }
142
148
143
149
/* The length of the body MUST be between the start of body and the end
144
150
* of the buffer. */
You can’t perform that action at this time.
0 commit comments