staging: wlags49_h2: Stop playing with length in GIWESSID handler
authorDavid Kilroy <kilroyd@googlemail.com>
Sun, 25 Sep 2011 07:30:19 +0000 (08:30 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 27 Sep 2011 00:46:32 +0000 (17:46 -0700)
WE21 clarified that ESSID should not be NULL terminated.
The existing code didn't NULL terminate, but did play with length
and then reset it again. Just stop it.

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/wlags49_h2/wl_wext.c

index 80bd938bfc0f25b75d090919f34e9dce2a68a97e..1f6b4dce438092ebf7efca60398ca2fd526528d0 100644 (file)
@@ -1042,9 +1042,6 @@ static int wireless_get_essid(struct net_device *dev, struct iw_request_info *in
                /* Copy the information into the user buffer */
                data->length = pName->length;
 
-               /* NOTE: Null terminating is necessary for proper display of the SSID in
-                  the wireless tools */
-               data->length = pName->length + 1;
                if( pName->length < HCF_MAX_NAME_LEN ) {
                        pName->name[pName->length] = '\0';
                }
@@ -1070,11 +1067,7 @@ static int wireless_get_essid(struct net_device *dev, struct iw_request_info *in
                                pName->length = CNV_LITTLE_TO_INT( pName->length );
 
                                /* Copy the information into the user buffer */
-                               data->length = pName->length + 1;
-                               if( pName->length < HCF_MAX_NAME_LEN ) {
-                                       pName->name[pName->length] = '\0';
-                               }
-
+                               data->length = pName->length;
                                data->flags = 1;
                        } else {
                                ret = -EFAULT;
@@ -1084,8 +1077,6 @@ static int wireless_get_essid(struct net_device *dev, struct iw_request_info *in
 
 #endif // HCF_STA
 
-               data->length--;
-
                if (pName->length > IW_ESSID_MAX_SIZE) {
                        ret = -EFAULT;
                        goto out_unlock;