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

Merge branch 'spdy-zero-length-header-names' of git://github.com/bgentry/cowboy

Loïc Hoguin 12 лет назад
Родитель
Сommit
be0f7a214c
1 измененных файлов с 5 добавлено и 0 удалено
  1. 5 0
      src/cowboy_spdy.erl

+ 5 - 0
src/cowboy_spdy.erl

@@ -258,6 +258,9 @@ control_frame(State=#state{middlewares=Middlewares, env=Env,
 			loop(State#state{last_streamid=StreamID,
 				children=[#child{streamid=StreamID, pid=Pid,
 					input=IsFin, output=nofin}|Children]});
+		{error, badname} ->
+			rst_stream(State, StreamID, protocol_error),
+			loop(State#state{last_streamid=StreamID});
 		{error, special} ->
 			rst_stream(State, StreamID, protocol_error),
 			loop(State#state{last_streamid=StreamID})
@@ -355,6 +358,8 @@ syn_stream_headers(<<>>, 0, Acc, Special=#special_headers{
 		true ->
 			{ok, lists:reverse(Acc), Special}
 	end;
+syn_stream_headers(<< 0:32, _Rest/bits >>, _NbHeaders, _Acc, _Special) ->
+	{error, badname};
 syn_stream_headers(<< NameLen:32, Rest/bits >>, NbHeaders, Acc, Special) ->
 	<< Name:NameLen/binary, ValueLen:32, Rest2/bits >> = Rest,
 	<< Value:ValueLen/binary, Rest3/bits >> = Rest2,