net: qrtr: Fix hello packet drop memory leak
If a node_enqueue is called on a node that has not finished the hello packet negotiation, the packet to be enqueued will be dropped. Make sure to free this dropped packet. Change-Id: I52a6f5d6b07fff272e3912d85221e7f6540cfa33 Signed-off-by: Chris Lew <clew@codeaurora.org>
This commit is contained in:
parent
7bba100902
commit
f35e7bc3f3
1 changed files with 4 additions and 2 deletions
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2015, Sony Mobile Communications Inc.
|
* Copyright (c) 2015, Sony Mobile Communications Inc.
|
||||||
* Copyright (c) 2013, 2018 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2013, 2018-2019 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License version 2 and
|
* it under the terms of the GNU General Public License version 2 and
|
||||||
|
@ -505,8 +505,10 @@ static int qrtr_node_enqueue(struct qrtr_node *node, struct sk_buff *skb,
|
||||||
size_t len = skb->len;
|
size_t len = skb->len;
|
||||||
int rc = -ENODEV;
|
int rc = -ENODEV;
|
||||||
|
|
||||||
if (!atomic_read(&node->hello_sent) && type != QRTR_TYPE_HELLO)
|
if (!atomic_read(&node->hello_sent) && type != QRTR_TYPE_HELLO) {
|
||||||
|
kfree_skb(skb);
|
||||||
return rc;
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
/* If sk is null, this is a forwarded packet and should not wait */
|
/* If sk is null, this is a forwarded packet and should not wait */
|
||||||
if (!skb->sk) {
|
if (!skb->sk) {
|
||||||
|
|
Loading…
Reference in a new issue