Message ID | 20200519181416.4235-1-manivannan.sadhasivam@linaro.org (mailing list archive) |
---|---|
State | Accepted |
Commit | d28ea1fbbf437054ef339afec241019f2c4e2bb6 |
Headers | show |
Series | net: qrtr: Fix passing invalid reference to qrtr_local_enqueue() | expand |
On Tue 19 May 11:14 PDT 2020, Manivannan Sadhasivam wrote: > 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> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> Regards, Bjorn > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> > --- > net/qrtr/qrtr.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/qrtr/qrtr.c b/net/qrtr/qrtr.c > index 7ed31b5e77e4..2d8d6131bc5f 100644 > --- a/net/qrtr/qrtr.c > +++ b/net/qrtr/qrtr.c > @@ -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; > } > -- > 2.17.1 >
From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Date: Tue, 19 May 2020 23:44:16 +0530 > 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> Applied and queued up for -stable, thanks.
diff --git a/net/qrtr/qrtr.c b/net/qrtr/qrtr.c index 7ed31b5e77e4..2d8d6131bc5f 100644 --- a/net/qrtr/qrtr.c +++ b/net/qrtr/qrtr.c @@ -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; }
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> --- net/qrtr/qrtr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)