diff options
author | Andrew Morton <akpm@osdl.org> | 2005-10-29 00:14:51 +0200 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-10-29 01:06:44 +0200 |
commit | 63f57fb69b017230c77c40f1713e40885ae6d159 (patch) | |
tree | d30d9f0c237b000b171e9e5918d0337268cf0f8b /drivers/net/wireless/orinoco.c | |
parent | [PATCH] e1000: use vmalloc_node() (diff) | |
download | linux-63f57fb69b017230c77c40f1713e40885ae6d159.tar.xz linux-63f57fb69b017230c77c40f1713e40885ae6d159.zip |
[PATCH] revert "orinoco: Information leakage due to incorrect padding"
Cc: Alan Cox <alan@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'drivers/net/wireless/orinoco.c')
-rw-r--r-- | drivers/net/wireless/orinoco.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/wireless/orinoco.c b/drivers/net/wireless/orinoco.c index d3d4ec9e242e..70a3477a2061 100644 --- a/drivers/net/wireless/orinoco.c +++ b/drivers/net/wireless/orinoco.c @@ -490,7 +490,8 @@ static int orinoco_xmit(struct sk_buff *skb, struct net_device *dev) return 0; } - /* Check packet length, pad short packets, round up odd length */ + /* Length of the packet body */ + /* FIXME: what if the skb is smaller than this? */ len = max_t(int, ALIGN(skb->len, 2), ETH_ZLEN); skb = skb_padto(skb, len); if (skb == NULL) @@ -547,7 +548,8 @@ static int orinoco_xmit(struct sk_buff *skb, struct net_device *dev) p = skb->data; } - err = hermes_bap_pwrite(hw, USER_BAP, p, data_len, + /* Round up for odd length packets */ + err = hermes_bap_pwrite(hw, USER_BAP, p, ALIGN(data_len, 2), txfid, data_off); if (err) { printk(KERN_ERR "%s: Error %d writing packet to BAP\n", |