Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

NFC: rawsock: Fix a memory leak

In the rawsock data exchange callback, the sk_buff is not freed
on error.

Signed-off-by: Thierry Escande <thierry.escande@linux.intel.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>

authored by

Thierry Escande and committed by
Samuel Ortiz
4cf7e032 e44666b9

+5 -2
+5 -2
net/nfc/rawsock.c
··· 142 142 143 143 err = rawsock_add_header(skb); 144 144 if (err) 145 - goto error; 145 + goto error_skb; 146 146 147 147 err = sock_queue_rcv_skb(sk, skb); 148 148 if (err) 149 - goto error; 149 + goto error_skb; 150 150 151 151 spin_lock_bh(&sk->sk_write_queue.lock); 152 152 if (!skb_queue_empty(&sk->sk_write_queue)) ··· 157 157 158 158 sock_put(sk); 159 159 return; 160 + 161 + error_skb: 162 + kfree_skb(skb); 160 163 161 164 error: 162 165 rawsock_report_error(sk, err);