summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlishu <[email protected]>2020-07-30 14:00:59 +0800
committerlishu <[email protected]>2020-07-30 14:00:59 +0800
commit8ae3c156899dbbbf07bdf4820605814f40536ada (patch)
treea83d7521e0a4899231435f6f1c86dcc4abe178f7
parent003706e4f1ca4aa974c980b7c648310c3bc595f8 (diff)
http range invalid read
-rw-r--r--src/HTTP_Analyze.c5
-rw-r--r--src/HTTP_Message_Header.c2
-rw-r--r--src/HTTP_Message_Region.c1
3 files changed, 5 insertions, 3 deletions
diff --git a/src/HTTP_Analyze.c b/src/HTTP_Analyze.c
index 4ac7c20..7bf6941 100644
--- a/src/HTTP_Analyze.c
+++ b/src/HTTP_Analyze.c
@@ -25,7 +25,7 @@
http_prog_runtime_parameter_t g_http_prog_para;
int G_HTTP_H_VERSION_4_20191205 = 0;
-int G_HTTP_VERSION_4_20200612 = 0;
+int G_HTTP_VERSION_4_20200722 = 0;
void history()
{
//2014-12-09 V3.0 new documentAnalyze lib ; http.h add and delete ;
@@ -105,6 +105,7 @@ void history()
//2019-12-05 V4.0 //����http_line2value����
//2020-01-08 V4.0 //add mesa_proto
//2020-06-12 V4.0 //set pbuf=null when resethttpstream
+ //2020-07-22 V4.0 //range Invalid
}
@@ -870,7 +871,7 @@ uchar http_procLost(http_stream* a_http_stream, struct streaminfo* a_tcp, int th
}
else
{
- //a_http_stream->http_session_num = -1;
+ a_http_stream->http_session_num = -1;
http_resetHttpStream(&a_http_stream, a_tcp, thread_seq, a_packet);
}
a_http_stream->res_req = res_req_temp;
diff --git a/src/HTTP_Message_Header.c b/src/HTTP_Message_Header.c
index c9ca375..8d1630d 100644
--- a/src/HTTP_Message_Header.c
+++ b/src/HTTP_Message_Header.c
@@ -138,7 +138,7 @@ void http_initHttpCommonInfor( http_parser_t *a_http, int thread_seq)
/*http proxy and switch protocol, not change http_infor*/
if(HTTP_DATA_END==prev_http_node->parser.http_state || a_http_stream->res_req != a_tcp->curdir)
- {
+ {
/*20150601 20150917*/
if(a_tcp->curdir==DIR_C2S)
{
diff --git a/src/HTTP_Message_Region.c b/src/HTTP_Message_Region.c
index 57c0440..f90bf35 100644
--- a/src/HTTP_Message_Region.c
+++ b/src/HTTP_Message_Region.c
@@ -266,6 +266,7 @@ uchar http_doWithContentRange(http_parser_t* a_http, http_stream *a_http_stream,
if( *(value+i)>='0' && *(value+i)<='9' || *(value+i)=='-')
{
digit = value+i;
+ valuelen -= i;
break;
}
}