summaryrefslogtreecommitdiffstats
path: root/drivers/staging/brcm80211/brcmfmac
diff options
context:
space:
mode:
authorDan Carpenter <error27@gmail.com>2010-10-09 13:54:06 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2010-10-09 13:49:40 -0700
commitcbf6baac775f2e3fb61f88dcaa71e44fb34b6906 (patch)
tree7566fba3d713c9525fb237b52fd7ea143ab440bf /drivers/staging/brcm80211/brcmfmac
parentcf10700bf8047f0668dd874b607f89516612e6c7 (diff)
downloadop-kernel-dev-cbf6baac775f2e3fb61f88dcaa71e44fb34b6906.zip
op-kernel-dev-cbf6baac775f2e3fb61f88dcaa71e44fb34b6906.tar.gz
Staging: brcm80211: make interface name buffer smaller
In the original code the interface name was IFNAMSIZ + 1, but that caused problems in dhd_ifname2idx() which does: strncmp(dhd->iflist[i]->name, name, IFNAMSIZ) The wl_event_msg_t struct can only store 16 character names as well. And thirdly there is a potential buffer overflow in dhd_op_if() because if->net->name is IFNAMSIZ and we do: strcpy(ifp->net->name, ifp->name); Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/brcm80211/brcmfmac')
-rw-r--r--drivers/staging/brcm80211/brcmfmac/dhd_linux.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/staging/brcm80211/brcmfmac/dhd_linux.c b/drivers/staging/brcm80211/brcmfmac/dhd_linux.c
index 0088d8a..f98049b 100644
--- a/drivers/staging/brcm80211/brcmfmac/dhd_linux.c
+++ b/drivers/staging/brcm80211/brcmfmac/dhd_linux.c
@@ -217,7 +217,7 @@ typedef struct dhd_if {
u8 mac_addr[ETHER_ADDR_LEN]; /* assigned MAC address */
bool attached; /* Delayed attachment when unset */
bool txflowcontrol; /* Per interface flow control indicator */
- char name[IFNAMSIZ + 1]; /* linux interface name */
+ char name[IFNAMSIZ]; /* linux interface name */
} dhd_if_t;
/* Local private structure (extension of pub) */
@@ -1871,8 +1871,7 @@ dhd_add_if(dhd_info_t *dhd, int ifidx, void *handle, char *name,
memset(ifp, 0, sizeof(dhd_if_t));
ifp->info = dhd;
dhd->iflist[ifidx] = ifp;
- strncpy(ifp->name, name, IFNAMSIZ);
- ifp->name[IFNAMSIZ] = '\0';
+ strlcpy(ifp->name, name, IFNAMSIZ);
if (mac_addr != NULL)
memcpy(&ifp->mac_addr, mac_addr, ETHER_ADDR_LEN);
OpenPOWER on IntegriCloud