diff --git a/deps/rabbitmq_stomp/src/rabbit_stomp_frame.erl b/deps/rabbitmq_stomp/src/rabbit_stomp_frame.erl index e6436f4d4f..c477a5e340 100644 --- a/deps/rabbitmq_stomp/src/rabbit_stomp_frame.erl +++ b/deps/rabbitmq_stomp/src/rabbit_stomp_frame.erl @@ -96,11 +96,8 @@ parse_header_value_escape(<>, Frame, parse_body(Content, Frame, Chunks, unknown) -> case firstnull(Content) of - -1 -> more(fun(Rest) -> - parse_body(Rest, Frame, - finalize_chunk(Content, Chunks), - unknown) - end); + -1 -> Chunks1 = finalize_chunk(Content, Chunks), + more(fun(Rest) -> parse_body(Rest, Frame, Chunks1, unknown) end); Pos -> <> = Content, Body = lists:reverse(finalize_chunk(Chunk, Chunks)), {ok, Frame#stomp_frame{body_iolist = Body}, Rest} @@ -108,12 +105,9 @@ parse_body(Content, Frame, Chunks, unknown) -> parse_body(Content, Frame, Chunks, Remaining) -> Size = byte_size(Content), case Remaining >= Size of - true -> Left = Remaining - Size, - more(fun(Rest) -> - parse_body(Rest, Frame, - finalize_chunk(Content, Chunks), - Left) - end); + true -> Chunks1 = finalize_chunk(Content, Chunks), + Left = Remaining - Size, + more(fun(Rest) -> parse_body(Rest, Frame, Chunks1, Left) end); false -> <> = Content, Body = lists:reverse(finalize_chunk(Chunk, Chunks)), {ok, Frame#stomp_frame{body_iolist = Body}, Remainder}