summaryrefslogtreecommitdiffstats
path: root/target/linux/s3c24xx/patches-2.6.24/1289-ar6k-essid-one-and-32.patch.patch
diff options
context:
space:
mode:
authormirko <mirko@3c298f89-4303-0410-b956-a3cf2f4a3e73>2008-12-12 11:58:53 +0000
committermirko <mirko@3c298f89-4303-0410-b956-a3cf2f4a3e73>2008-12-12 11:58:53 +0000
commitfc54b9bf158eea9cae647ce2c58f7d9989af173a (patch)
tree54644c1229434d7ee13c5872bda4129e34337fc0 /target/linux/s3c24xx/patches-2.6.24/1289-ar6k-essid-one-and-32.patch.patch
parentd9f49b62b28ebd245587854efa484974d90debbf (diff)
changed Makefile and profiles, added patches for kernel 2.6.24
(stable-branch of Openmoko) git-svn-id: svn://svn.openwrt.org/openwrt/trunk@13613 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/s3c24xx/patches-2.6.24/1289-ar6k-essid-one-and-32.patch.patch')
-rw-r--r--target/linux/s3c24xx/patches-2.6.24/1289-ar6k-essid-one-and-32.patch.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.24/1289-ar6k-essid-one-and-32.patch.patch b/target/linux/s3c24xx/patches-2.6.24/1289-ar6k-essid-one-and-32.patch.patch
new file mode 100644
index 000000000..38fde19c2
--- /dev/null
+++ b/target/linux/s3c24xx/patches-2.6.24/1289-ar6k-essid-one-and-32.patch.patch
@@ -0,0 +1,44 @@
+From 89e2c1f006e4d5936a8e0edec74d64b71063e3c1 Mon Sep 17 00:00:00 2001
+From: Werner Almesberger <werner@openmoko.org>
+Date: Tue, 16 Sep 2008 08:54:07 +0100
+Subject: [PATCH] ar6k-essid-one-and-32.patch
+
+This patch allows ESSID with length 1, which were rejected because the
+stack assumed iwconfig used a different format in the ioctl's payload.
+
+It also refuses ESSIDs longer than 31 bytes, because there is some
+buffer overrun issue buried somewhere else in the stack. In principle,
+32 bytes should be fine.
+
+Open issue:
+- where is the 32 bytes overrun ?
+
+Signed-off-by: Werner Almesberger <werner@openmoko.org>
+---
+ .../function/wlan/ar6000/ar6000/wireless_ext.c | 9 ++++-----
+ 1 files changed, 4 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/sdio/function/wlan/ar6000/ar6000/wireless_ext.c b/drivers/sdio/function/wlan/ar6000/ar6000/wireless_ext.c
+index ede8e62..56ceb2e 100644
+--- a/drivers/sdio/function/wlan/ar6000/ar6000/wireless_ext.c
++++ b/drivers/sdio/function/wlan/ar6000/ar6000/wireless_ext.c
+@@ -264,12 +264,11 @@ ar6000_ioctl_siwessid(struct net_device *dev,
+ }
+
+ /*
+- * iwconfig passes a null terminated string with length including this
+- * so we need to account for this
++ * iwconfig passes a string with length excluding any trailing NUL.
++ * FIXME: we should be able to set an ESSID of 32 bytes, yet things fall
++ * over badly if we do. So we limit the ESSID to 31 bytes.
+ */
+- if (data->flags && (!data->length || (data->length == 1) ||
+- ((data->length - 1) > sizeof(ar->arSsid))))
+- {
++ if (data->flags && (!data->length || data->length >= sizeof(ar->arSsid))) {
+ /*
+ * ssid is invalid
+ */
+--
+1.5.6.5
+