From f8b89cdbfc3f3dee830b6f1e73e573e7ecb05759 Mon Sep 17 00:00:00 2001 From: benoitc Date: Wed, 11 Oct 2023 02:20:52 +0200 Subject: [PATCH] handle case where Length is undefined --- src/hackney_response.erl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/hackney_response.erl b/src/hackney_response.erl index 7a42c1a1..fde11bc0 100644 --- a/src/hackney_response.erl +++ b/src/hackney_response.erl @@ -232,7 +232,7 @@ multipart_data(Client, Length, {mp_mixed, Cont}) -> multipart_data(Client, Length, {mp_mixed_eof, Cont}) -> {mp_mixed_eof, Client#client{multipart={Length, Cont}}}; multipart_data(Client, Length, eof) - when Length =:= 0 orelse Length =:= nil -> + when Length =:= 0 orelse Length =:= nil orelse Length =:= undefined -> Client2 = end_stream_body(<<>>, Client), {eof, Client2#client{body_state=done, multipart=nil}}; multipart_data(Client, _, eof) -> @@ -240,9 +240,11 @@ multipart_data(Client, _, eof) -> {skip, Client2} = skip_body(Client), {eof, Client2#client{multipart=nil}}; multipart_data(Client, Length, {more, Parser}) - when Length > 0 orelse Length =:= nil-> + when Length > 0 orelse Length =:= nil orelse Length =:= undefined -> case stream_body(Client) of - {ok, Data, Client2} when Length =:= nil -> + {ok, Data, Client2} when Length =:= nil -> + multipart_data(Client2, Length, Parser(Data)); + {ok, Data, Client2} when Length =:= undefined -> multipart_data(Client2, Length, Parser(Data)); {ok, << Data:Length/binary, Buffer/binary >>, Client2} -> multipart_data(Client2#client{buffer=Buffer}, 0,