app-layer: move app_progress forward on errors as well

In case of APP_LAYER_ERROR still move the app_progress forward.
This helps validation of frame offsets and should be harmless
otherwise.
pull/6805/head
Victor Julien 4 years ago
parent 1556e86c7d
commit a27ee49c73

@ -460,10 +460,11 @@ static int TCPProtoDetect(ThreadVars *tv,
int r = AppLayerParserParse(tv, app_tctx->alp_tctx, f, f->alproto,
flags, data, data_len);
PACKET_PROFILING_APP_END(app_tctx, f->alproto);
if (r != 1) {
StreamTcpUpdateAppLayerProgress(ssn, direction, data_len);
}
if (r < 0) {
SCReturnInt(-1);
} else if (r == 0) {
StreamTcpUpdateAppLayerProgress(ssn, direction, data_len);
}
} else {
/* if the ssn is midstream, we may end up with a case where the
@ -533,7 +534,7 @@ static int TCPProtoDetect(ThreadVars *tv,
f->alproto, flags,
data, data_len);
PACKET_PROFILING_APP_END(app_tctx, f->alproto);
if (r == 0) {
if (r != 1) {
StreamTcpUpdateAppLayerProgress(ssn, direction, data_len);
}
@ -710,7 +711,7 @@ int AppLayerHandleTCPData(ThreadVars *tv, TcpReassemblyThreadCtx *ra_ctx,
r = AppLayerParserParse(tv, app_tctx->alp_tctx, f, f->alproto,
flags, data, data_len);
PACKET_PROFILING_APP_END(app_tctx, f->alproto);
if (r == 0) {
if (r != 1) {
StreamTcpUpdateAppLayerProgress(ssn, direction, data_len);
}
}

Loading…
Cancel
Save