diff options
author | Ivo van Doorn <ivdoorn@gmail.com> | 2007-10-06 08:18:22 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-10-10 19:55:17 -0400 |
commit | c22eb87b5723b3d66665ca2ffa87428e0e489b16 (patch) | |
tree | 38d3ed78780f6022b434409f1f1139cfb1d0d49e | |
parent | 37894473fb0d07e1e015781f7ae1b9b1762d49be (diff) |
[PATCH] rt2x00: Allways memset memory obtained from skb_push()
When skb_push() is used we should memset the memory before
usage. This will prevent bugs which could occur when the
data is treated as TX descriptor.
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2500usb.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt61pci.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt73usb.c | 2 |
3 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c index 45f8f744a12d..7cdc80a122bb 100644 --- a/drivers/net/wireless/rt2x00/rt2500usb.c +++ b/drivers/net/wireless/rt2x00/rt2500usb.c | |||
@@ -1665,6 +1665,8 @@ static int rt2500usb_beacon_update(struct ieee80211_hw *hw, | |||
1665 | * First we create the beacon. | 1665 | * First we create the beacon. |
1666 | */ | 1666 | */ |
1667 | skb_push(skb, ring->desc_size); | 1667 | skb_push(skb, ring->desc_size); |
1668 | memset(skb->data, 0, ring->desc_size); | ||
1669 | |||
1668 | rt2x00lib_write_tx_desc(rt2x00dev, (struct data_desc *)skb->data, | 1670 | rt2x00lib_write_tx_desc(rt2x00dev, (struct data_desc *)skb->data, |
1669 | (struct ieee80211_hdr *)(skb->data + | 1671 | (struct ieee80211_hdr *)(skb->data + |
1670 | ring->desc_size), | 1672 | ring->desc_size), |
diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c index 1a869a5cbe91..01dbef19d651 100644 --- a/drivers/net/wireless/rt2x00/rt61pci.c +++ b/drivers/net/wireless/rt2x00/rt61pci.c | |||
@@ -2437,6 +2437,8 @@ static int rt61pci_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb, | |||
2437 | * First we create the beacon. | 2437 | * First we create the beacon. |
2438 | */ | 2438 | */ |
2439 | skb_push(skb, TXD_DESC_SIZE); | 2439 | skb_push(skb, TXD_DESC_SIZE); |
2440 | memset(skb->data, 0, TXD_DESC_SIZE); | ||
2441 | |||
2440 | rt2x00lib_write_tx_desc(rt2x00dev, (struct data_desc *)skb->data, | 2442 | rt2x00lib_write_tx_desc(rt2x00dev, (struct data_desc *)skb->data, |
2441 | (struct ieee80211_hdr *)(skb->data + | 2443 | (struct ieee80211_hdr *)(skb->data + |
2442 | TXD_DESC_SIZE), | 2444 | TXD_DESC_SIZE), |
diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c index 67a1e3750d4d..3e42759473c3 100644 --- a/drivers/net/wireless/rt2x00/rt73usb.c +++ b/drivers/net/wireless/rt2x00/rt73usb.c | |||
@@ -1939,6 +1939,8 @@ static int rt73usb_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb, | |||
1939 | * First we create the beacon. | 1939 | * First we create the beacon. |
1940 | */ | 1940 | */ |
1941 | skb_push(skb, TXD_DESC_SIZE); | 1941 | skb_push(skb, TXD_DESC_SIZE); |
1942 | memset(skb->data, 0, TXD_DESC_SIZE); | ||
1943 | |||
1942 | rt2x00lib_write_tx_desc(rt2x00dev, (struct data_desc *)skb->data, | 1944 | rt2x00lib_write_tx_desc(rt2x00dev, (struct data_desc *)skb->data, |
1943 | (struct ieee80211_hdr *)(skb->data + | 1945 | (struct ieee80211_hdr *)(skb->data + |
1944 | TXD_DESC_SIZE), | 1946 | TXD_DESC_SIZE), |