If a protocol change was requested, the target did not handle
it as Suricata, as the target is meant to handle only one
app-layer protocol.
(cherry picked from commit
ca054f726464fcc55242b7c851d75557c96b3d83)
memcpy(isolatedBuffer, albuffer, alnext - albuffer);
(void) AppLayerParserParse(NULL, alp_tctx, f, f->alproto, flags, isolatedBuffer, alnext - albuffer);
free(isolatedBuffer);
+ if (FlowChangeProto(f)) {
+ // exits if a protocol change is requested
+ alsize = 0;
+ break;
+ }
flags &= ~(STREAM_START);
if (f->alparser &&
(((flags & STREAM_TOSERVER) != 0 &&