diff options
author | Willem de Bruijn <[email protected]> | 2015-03-11 15:43:55 -0400 |
---|---|---|
committer | David S. Miller <[email protected]> | 2015-03-12 00:09:55 -0400 |
commit | 3a8dd9711e0792f64394edafadd66c2d1f1904df (patch) | |
tree | 2b0f3746ed1049a0781d381791df55a24bcd73b6 | |
parent | c29390c6dfeee0944ac6b5610ebbe403944378fc (diff) |
sock: fix possible NULL sk dereference in __skb_tstamp_tx
Test that sk != NULL before reading sk->sk_tsflags.
Fixes: 49ca0d8bfaf3 ("net-timestamp: no-payload option")
Reported-by: One Thousand Gnomes <[email protected]>
Signed-off-by: Willem de Bruijn <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
-rw-r--r-- | net/core/skbuff.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 434e78e5254d..8e4ac97c8477 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -3733,9 +3733,13 @@ void __skb_tstamp_tx(struct sk_buff *orig_skb, struct sock *sk, int tstype) { struct sk_buff *skb; - bool tsonly = sk->sk_tsflags & SOF_TIMESTAMPING_OPT_TSONLY; + bool tsonly; - if (!sk || !skb_may_tx_timestamp(sk, tsonly)) + if (!sk) + return; + + tsonly = sk->sk_tsflags & SOF_TIMESTAMPING_OPT_TSONLY; + if (!skb_may_tx_timestamp(sk, tsonly)) return; if (tsonly) |