From: Chengfeng Ye <hidden> Date: 2021-11-05 13:36:50
skb is already freed by dev_kfree_skb in pn533_fill_fragment_skbs,
but follow error handler branch when pn533_fill_fragment_skbs()
fails, skb is freed again, results in double free issue. Fix this
by not free skb in error path of pn533_fill_fragment_skbs.
Signed-off-by: Chengfeng Ye <redacted>
---
drivers/nfc/pn533/pn533.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
@@ -2353,7 +2353,7 @@ static int pn533_tm_send(struct nfc_dev *nfc_dev, struct sk_buff *skb)/* let's split in multiple chunks if size's too big */if(skb->len>PN533_CMD_DATAEXCH_DATA_MAXLEN){rc=pn533_fill_fragment_skbs(dev,skb);-if(rc<=0)+if(rc<0)gotoerror;/* get the first skb */
From: Dan Carpenter <hidden> Date: 2021-11-05 14:35:02
On Fri, Nov 05, 2021 at 06:36:36AM -0700, Chengfeng Ye wrote:
skb is already freed by dev_kfree_skb in pn533_fill_fragment_skbs,
but follow error handler branch when pn533_fill_fragment_skbs()
fails, skb is freed again, results in double free issue. Fix this
by not free skb in error path of pn533_fill_fragment_skbs.
Signed-off-by: Chengfeng Ye <redacted>
I sort of wish the commit message talked more about the how this changes
the failure return from 0 to -ENOMEM. But the patch is good.
Reviewed-by: Dan Carpenter <redacted>
regards,
dan carpenter
From: Krzysztof Kozlowski <hidden> Date: 2021-11-06 09:42:17
On 05/11/2021 14:36, Chengfeng Ye wrote:
skb is already freed by dev_kfree_skb in pn533_fill_fragment_skbs,
but follow error handler branch when pn533_fill_fragment_skbs()
fails, skb is freed again, results in double free issue. Fix this
by not free skb in error path of pn533_fill_fragment_skbs.
Signed-off-by: Chengfeng Ye <redacted>
---
drivers/nfc/pn533/pn533.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
Looks good, thanks:
Reviewed-by: Krzysztof Kozlowski <redacted>
Please do not forget about fixes tag. Here it is trickier because
pn533_fill_fragment_skbs() usage was introduced in two commits:
Fixes: 963a82e07d4e ("NFC: pn533: Split large Tx frames in chunks")
Fixes: 93ad42020c2d ("NFC: pn533: Target mode Tx fragmentation support")
Cc: <redacted>
Best regards,
Krzysztof
Hello:
This patch was applied to netdev/net.git (master)
by David S. Miller [off-list ref]:
On Fri, 5 Nov 2021 06:36:36 -0700 you wrote:
skb is already freed by dev_kfree_skb in pn533_fill_fragment_skbs,
but follow error handler branch when pn533_fill_fragment_skbs()
fails, skb is freed again, results in double free issue. Fix this
by not free skb in error path of pn533_fill_fragment_skbs.
Signed-off-by: Chengfeng Ye <redacted>
[...]