Skip to content

Commit 6ceade4

Browse files
authored
fix: only process vsn parameter when it is a binary (#6662)
1 parent e7b8081 commit 6ceade4

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

lib/phoenix/socket.ex

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -595,7 +595,7 @@ defmodule Phoenix.Socket do
595595
:ok
596596
end
597597

598-
defp negotiate_serializer(serializers, vsn) when is_list(serializers) do
598+
defp negotiate_serializer(serializers, vsn) when is_list(serializers) and is_binary(vsn) do
599599
case Version.parse(vsn) do
600600
{:ok, vsn} ->
601601
serializers
@@ -619,6 +619,11 @@ defmodule Phoenix.Socket do
619619
end
620620
end
621621

622+
defp negotiate_serializer(_serializer, vsn) do
623+
Logger.warning("Client sent invalid transport version \"#{vsn}\"")
624+
:error
625+
end
626+
622627
defp user_connect(handler, endpoint, transport, serializer, params, connect_info) do
623628
# The information in the Phoenix.Socket goes to userland and channels.
624629
socket = %Socket{

0 commit comments

Comments
 (0)