phonet: properly unshare skbs in phonet_rcv()

Ivaylo Dimitrov reported a regression caused by commit 7866a621043f
("dev: add per net_device packet type chains").

skb->dev becomes NULL and we crash in __netif_receive_skb_core().

Before above commit, different kind of bugs or corruptions could happen
without major crash.

But the root cause is that phonet_rcv() can queue skb without checking
if skb is shared or not.

Many thanks to Ivaylo Dimitrov for his help, diagnosis and tests.

Reported-by: Ivaylo Dimitrov <[email protected]>
Tested-by: Ivaylo Dimitrov <[email protected]>
Signed-off-by: Eric Dumazet <[email protected]>
Cc: Remi Denis-Courmont <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
1 file changed