Commit 53077944 authored by Jean Tourrilhes's avatar Jean Tourrilhes Committed by John W. Linville

[PATCH] wireless: More WE-21 potential overflows...

After the Orinoco issue, I did an audit of other drivers for the same
issue.  Three drivers were NULL terminating the ESSID, which could cause an
overflow in WE-21 when the ESSID has maximum size.
Signed-off-by: default avatarJean Tourrilhes <jt@hpl.hp.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 683f8c9e
...@@ -5970,7 +5970,6 @@ static int airo_get_essid(struct net_device *dev, ...@@ -5970,7 +5970,6 @@ static int airo_get_essid(struct net_device *dev,
/* Get the current SSID */ /* Get the current SSID */
memcpy(extra, status_rid.SSID, status_rid.SSIDlen); memcpy(extra, status_rid.SSID, status_rid.SSIDlen);
extra[status_rid.SSIDlen] = '\0';
/* If none, we may want to get the one that was set */ /* If none, we may want to get the one that was set */
/* Push it out ! */ /* Push it out ! */
......
...@@ -1678,11 +1678,9 @@ static int atmel_get_essid(struct net_device *dev, ...@@ -1678,11 +1678,9 @@ static int atmel_get_essid(struct net_device *dev,
/* Get the current SSID */ /* Get the current SSID */
if (priv->new_SSID_size != 0) { if (priv->new_SSID_size != 0) {
memcpy(extra, priv->new_SSID, priv->new_SSID_size); memcpy(extra, priv->new_SSID, priv->new_SSID_size);
extra[priv->new_SSID_size] = '\0';
dwrq->length = priv->new_SSID_size; dwrq->length = priv->new_SSID_size;
} else { } else {
memcpy(extra, priv->SSID, priv->SSID_size); memcpy(extra, priv->SSID, priv->SSID_size);
extra[priv->SSID_size] = '\0';
dwrq->length = priv->SSID_size; dwrq->length = priv->SSID_size;
} }
......
...@@ -1198,7 +1198,6 @@ static int ray_get_essid(struct net_device *dev, ...@@ -1198,7 +1198,6 @@ static int ray_get_essid(struct net_device *dev,
/* Get the essid that was set */ /* Get the essid that was set */
memcpy(extra, local->sparm.b5.a_current_ess_id, IW_ESSID_MAX_SIZE); memcpy(extra, local->sparm.b5.a_current_ess_id, IW_ESSID_MAX_SIZE);
extra[IW_ESSID_MAX_SIZE] = '\0';
/* Push it out ! */ /* Push it out ! */
dwrq->length = strlen(extra); dwrq->length = strlen(extra);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment