Skip to content

Commit

Permalink
get_response should not crash the connection (#142)
Browse files Browse the repository at this point in the history
* get_response should not crash the connection

`lists:keyfind` might return false if the id does not exist. For
instance through multiple calls to `h2_connection:get_response`.

* Use get_from_subset instead
  • Loading branch information
sebastiw authored Aug 13, 2020
1 parent d26a63f commit 560f2c7
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/h2_stream_set.erl
Original file line number Diff line number Diff line change
Expand Up @@ -374,7 +374,7 @@ upsert_peer_subset(
PeerSubset)
when Id >= PeerSubset#peer_subset.lowest_stream_id,
Id < PeerSubset#peer_subset.next_available_stream_id ->
OldStream = lists:keyfind(Id, 2, PeerSubset#peer_subset.active),
OldStream = get_from_subset(Id, PeerSubset),
OldType = type(OldStream),
ActiveDiff =
case OldType of
Expand All @@ -393,7 +393,7 @@ upsert_peer_subset(
lowest_stream_id=PeerSubset#peer_subset.next_available_stream_id,
active_count=0,
active=[]
};
};
[NewLowestStream|_] ->
NewLowest = stream_id(NewLowestStream),
PeerSubset#peer_subset{
Expand All @@ -411,7 +411,7 @@ upsert_peer_subset(
PeerSubset)
when Id >= PeerSubset#peer_subset.lowest_stream_id,
Id < PeerSubset#peer_subset.next_available_stream_id ->
OldStream = lists:keyfind(Id, 2, PeerSubset#peer_subset.active),
OldStream = get_from_subset(Id, PeerSubset),
OldType = type(OldStream),
ActiveDiff =
case OldType of
Expand Down

0 comments on commit 560f2c7

Please sign in to comment.