diff options
Diffstat (limited to 'net/dccp/ipv4.c')
-rw-r--r-- | net/dccp/ipv4.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/dccp/ipv4.c b/net/dccp/ipv4.c index 882c5c4de69e..b623f6b25482 100644 --- a/net/dccp/ipv4.c +++ b/net/dccp/ipv4.c | |||
@@ -545,6 +545,7 @@ out: | |||
545 | 545 | ||
546 | static void dccp_v4_reqsk_destructor(struct request_sock *req) | 546 | static void dccp_v4_reqsk_destructor(struct request_sock *req) |
547 | { | 547 | { |
548 | dccp_feat_list_purge(&dccp_rsk(req)->dreq_featneg); | ||
548 | kfree(inet_rsk(req)->opt); | 549 | kfree(inet_rsk(req)->opt); |
549 | } | 550 | } |
550 | 551 | ||
@@ -595,7 +596,8 @@ int dccp_v4_conn_request(struct sock *sk, struct sk_buff *skb) | |||
595 | if (req == NULL) | 596 | if (req == NULL) |
596 | goto drop; | 597 | goto drop; |
597 | 598 | ||
598 | dccp_reqsk_init(req, skb); | 599 | if (dccp_reqsk_init(req, dccp_sk(sk), skb)) |
600 | goto drop_and_free; | ||
599 | 601 | ||
600 | dreq = dccp_rsk(req); | 602 | dreq = dccp_rsk(req); |
601 | if (dccp_parse_options(sk, dreq, skb)) | 603 | if (dccp_parse_options(sk, dreq, skb)) |