Просмотр исходного кода

Fix sending HTTP/2 bodies as iolists out of order

Loïc Hoguin 7 лет назад
Родитель
Сommit
819a47a220
1 измененных файлов с 3 добавлено и 2 удалено
  1. 3 2
      src/cowboy_iolists.erl

+ 3 - 2
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),