| From d86aa4f8ca58898ec6a94c0635da20b948171ed7 Mon Sep 17 00:00:00 2001 |
| From: Johannes Berg <johannes.berg@intel.com> |
| Date: Fri, 11 Oct 2013 15:47:06 +0200 |
| Subject: mac80211: fix crash if bitrate calculation goes wrong |
| |
| From: Johannes Berg <johannes.berg@intel.com> |
| |
| commit d86aa4f8ca58898ec6a94c0635da20b948171ed7 upstream. |
| |
| If a frame's timestamp is calculated, and the bitrate |
| calculation goes wrong and returns zero, the system |
| will attempt to divide by zero and crash. Catch this |
| case and print the rate information that the driver |
| reported when this happens. |
| |
| Reported-by: Thomas Lindroth <thomas.lindroth@gmail.com> |
| Signed-off-by: Johannes Berg <johannes.berg@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| net/mac80211/util.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| --- a/net/mac80211/util.c |
| +++ b/net/mac80211/util.c |
| @@ -2155,6 +2155,10 @@ u64 ieee80211_calculate_rx_timestamp(str |
| } |
| |
| rate = cfg80211_calculate_bitrate(&ri); |
| + if (WARN_ONCE(!rate, |
| + "Invalid bitrate: flags=0x%x, idx=%d, vht_nss=%d\n", |
| + status->flag, status->rate_idx, status->vht_nss)) |
| + return 0; |
| |
| /* rewind from end of MPDU */ |
| if (status->flag & RX_FLAG_MACTIME_END) |