From: Christoph Hellwig Date: Sat, 14 May 2005 15:29:58 +0000 (+0200) Subject: [PATCH] orinoco: fix setting of 32 character ESSIDs X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=d0e3e87ff4516d1b9d7bc6734a99168838f79635;p=deliverable%2Flinux.git [PATCH] orinoco: fix setting of 32 character ESSIDs Patch from Thomas Schulz Index: linux-2.6/drivers/net/wireless/orinoco.c =================================================================== --- diff --git a/drivers/net/wireless/orinoco.c b/drivers/net/wireless/orinoco.c index d910b89e6482..76875dac9d69 100644 --- a/drivers/net/wireless/orinoco.c +++ b/drivers/net/wireless/orinoco.c @@ -2907,13 +2907,14 @@ static int orinoco_ioctl_setessid(struct net_device *dev, struct iw_point *erq) memset(&essidbuf, 0, sizeof(essidbuf)); if (erq->flags) { - if (erq->length > IW_ESSID_MAX_SIZE) + /* iwconfig includes the NUL in the specified length */ + if (erq->length > IW_ESSID_MAX_SIZE+1) return -E2BIG; if (copy_from_user(&essidbuf, erq->pointer, erq->length)) return -EFAULT; - essidbuf[erq->length] = '\0'; + essidbuf[IW_ESSID_MAX_SIZE] = '\0'; } if (orinoco_lock(priv, &flags) != 0)