summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHannes Frederic Sowa <hannes@stressinduktion.org>2017-03-13 00:01:30 +0100
committerDavid S. Miller <davem@davemloft.net>2017-03-13 22:00:42 -0700
commit72ef9c4125c7b257e3a714d62d778ab46583d6a3 (patch)
tree0e9a25509b018b30792815f4a988e2c695dbf64b
parentb20e2d54789c6acbf6bd0efdbec2cf5fa4d90ef1 (diff)
downloadlinux-72ef9c4125c7b257e3a714d62d778ab46583d6a3.tar.gz
linux-72ef9c4125c7b257e3a714d62d778ab46583d6a3.tar.bz2
linux-72ef9c4125c7b257e3a714d62d778ab46583d6a3.zip
dccp: fix memory leak during tear-down of unsuccessful connection request
This patch fixes a memory leak, which happens if the connection request is not fulfilled between parsing the DCCP options and handling the SYN (because e.g. the backlog is full), because we forgot to free the list of ack vectors. Reported-by: Jianwen Ji <jiji@redhat.com> Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/dccp/ccids/ccid2.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/dccp/ccids/ccid2.c b/net/dccp/ccids/ccid2.c
index f053198e730c..5e3a7302f774 100644
--- a/net/dccp/ccids/ccid2.c
+++ b/net/dccp/ccids/ccid2.c
@@ -749,6 +749,7 @@ static void ccid2_hc_tx_exit(struct sock *sk)
for (i = 0; i < hc->tx_seqbufc; i++)
kfree(hc->tx_seqbuf[i]);
hc->tx_seqbufc = 0;
+ dccp_ackvec_parsed_cleanup(&hc->tx_av_chunks);
}
static void ccid2_hc_rx_packet_recv(struct sock *sk, struct sk_buff *skb)