From 819a47a220dcee309093721ea3c28e20ebfe246a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Wed, 24 Jan 2018 11:44:03 +0100 Subject: Fix sending HTTP/2 bodies as iolists out of order --- src/cowboy_iolists.erl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/cowboy_iolists.erl b/src/cowboy_iolists.erl index d04d0ae..a49e7ed 100644 --- a/src/cowboy_iolists.erl +++ b/src/cowboy_iolists.erl @@ -51,7 +51,7 @@ split(N, [List|Tail], Acc0) -> IolistSize = iolist_size(Before), if IolistSize < N -> - split(N - IolistSize, [After|Tail], Before); + split(N - IolistSize, [After|Tail], lists:reverse(Before)); true -> {ok, Before, [After|Tail]} end; @@ -71,7 +71,8 @@ split_test_() -> {10, <<"Hello!">>, "Hello!", ""}, {10, ["He", [<<"ll">>], $o, [["!"]]], "Hello!", ""}, {10, ["Hel"|<<"lo!">>], "Hello!", ""}, - {10, [[<<>>|<<>>], [], <<"Hello world!">>], "Hello worl", "d!"} + {10, [[<<>>|<<>>], [], <<"Hello world!">>], "Hello worl", "d!"}, + {10, [[<<"He">>|<<"llo">>], [$\s], <<"world!">>], "Hello worl", "d!"} ], [{iolist_to_binary(V), fun() -> {B, A} = split(N, V), -- cgit v1.2.3