| From db9d8b29d19d2801793e4419f4c6272bf8951c62 Mon Sep 17 00:00:00 2001 |
| From: Richard Cochran <richardcochran@gmail.com> |
| Date: Fri, 23 Jun 2017 17:51:31 +0200 |
| Subject: net: dp83640: Avoid NULL pointer dereference. |
| |
| From: Richard Cochran <richardcochran@gmail.com> |
| |
| commit db9d8b29d19d2801793e4419f4c6272bf8951c62 upstream. |
| |
| The function, skb_complete_tx_timestamp(), used to allow passing in a |
| NULL pointer for the time stamps, but that was changed in commit |
| 62bccb8cdb69051b95a55ab0c489e3cab261c8ef ("net-timestamp: Make the |
| clone operation stand-alone from phy timestamping"), and the existing |
| call sites, all of which are in the dp83640 driver, were fixed up. |
| |
| Even though the kernel-doc was subsequently updated in commit |
| 7a76a021cd5a292be875fbc616daf03eab1e6996 ("net-timestamp: Update |
| skb_complete_tx_timestamp comment"), still a bug fix from Manfred |
| Rudigier came into the driver using the old semantics. Probably |
| Manfred derived that patch from an older kernel version. |
| |
| This fix should be applied to the stable trees as well. |
| |
| Fixes: 81e8f2e930fe ("net: dp83640: Fix tx timestamp overflow handling.") |
| Signed-off-by: Richard Cochran <richardcochran@gmail.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/net/phy/dp83640.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/net/phy/dp83640.c |
| +++ b/drivers/net/phy/dp83640.c |
| @@ -907,7 +907,7 @@ static void decode_txts(struct dp83640_p |
| if (overflow) { |
| pr_debug("tx timestamp queue overflow, count %d\n", overflow); |
| while (skb) { |
| - skb_complete_tx_timestamp(skb, NULL); |
| + kfree_skb(skb); |
| skb = skb_dequeue(&dp83640->tx_queue); |
| } |
| return; |