OSDN Git Service

net: qrtr: Fix passing invalid reference to qrtr_local_enqueue()
authorManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Tue, 19 May 2020 18:14:16 +0000 (23:44 +0530)
committerDavid S. Miller <davem@davemloft.net>
Fri, 22 May 2020 00:04:53 +0000 (17:04 -0700)
Once the traversal of the list is completed with list_for_each_entry(),
the iterator (node) will point to an invalid object. So passing this to
qrtr_local_enqueue() which is outside of the iterator block is erroneous
eventhough the object is not used.

So fix this by passing NULL to qrtr_local_enqueue().

Fixes: bdabad3e363d ("net: Add Qualcomm IPC router")
Reported-by: kbuild test robot <lkp@intel.com>
Reported-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/qrtr/qrtr.c

index 7ed31b5..2d8d613 100644 (file)
@@ -854,7 +854,7 @@ static int qrtr_bcast_enqueue(struct qrtr_node *node, struct sk_buff *skb,
        }
        mutex_unlock(&qrtr_node_lock);
 
-       qrtr_local_enqueue(node, skb, type, from, to);
+       qrtr_local_enqueue(NULL, skb, type, from, to);
 
        return 0;
 }