iw: upgrade 4.14 -> 5.0.1

(From OE-Core rev: e1bc9b8d25365fbf3e5f7546c8dd2db7bef704b2)

Signed-off-by: Changhyeok Bae <changhyeok.bae@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Changhyeok Bae
2019-04-11 21:26:31 +00:00
committed by Richard Purdie
parent 24667b8246
commit 98143681ef
3 changed files with 19 additions and 207 deletions

View File

@@ -1,194 +0,0 @@
From 2a6be4166fd718be0694fe8a6e3f1013c125dee2 Mon Sep 17 00:00:00 2001
From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date: Tue, 12 Jun 2018 09:01:56 +0300
Subject: [PATCH] connect: fix parsing of WEP keys
The introduction of MFP options added a bug that causes a
segmentation fault when parsing WEP keys.
Fix that.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Upstream-Status: Backport
[https://git.kernel.org/pub/scm/linux/kernel/git/jberg/iw.git/commit/?id=0e39f109c4b8155697a12ef090b59cdb304c8c44]
Signed-off-by: Liu Haitao <haitao.liu@windriver.com>
---
ap.c | 2 +-
connect.c | 7 ++-----
ibss.c | 2 +-
iw.h | 3 ++-
util.c | 36 ++++++++++++++++++------------------
5 files changed, 24 insertions(+), 26 deletions(-)
diff --git a/ap.c b/ap.c
index 4bab5b9..dcce402 100644
--- a/ap.c
+++ b/ap.c
@@ -116,7 +116,7 @@ static int handle_start_ap(struct nl80211_state *state,
argv++;
argc--;
- return parse_keys(msg, argv, argc);
+ return parse_keys(msg, &argv, &argc);
nla_put_failure:
return -ENOSPC;
}
diff --git a/connect.c b/connect.c
index 339fc73..4a847a1 100644
--- a/connect.c
+++ b/connect.c
@@ -54,13 +54,10 @@ static int iw_conn(struct nl80211_state *state,
argv++;
argc--;
- ret = parse_keys(msg, argv, argc);
+ ret = parse_keys(msg, &argv, &argc);
if (ret)
return ret;
- argc -= 4;
- argv += 4;
-
if (!argc)
return 0;
@@ -228,7 +225,7 @@ static int iw_auth(struct nl80211_state *state,
argv++;
argc--;
- return parse_keys(msg, argv, argc);
+ return parse_keys(msg, &argv, &argc);
nla_put_failure:
return -ENOSPC;
}
diff --git a/ibss.c b/ibss.c
index 84f1e95..d77fc92 100644
--- a/ibss.c
+++ b/ibss.c
@@ -115,7 +115,7 @@ static int join_ibss(struct nl80211_state *state,
argv++;
argc--;
- return parse_keys(msg, argv, argc);
+ return parse_keys(msg, &argv, &argc);
nla_put_failure:
return -ENOSPC;
}
diff --git a/iw.h b/iw.h
index ee7ca20..8767ed3 100644
--- a/iw.h
+++ b/iw.h
@@ -180,7 +180,8 @@ int parse_hex_mask(char *hexmask, unsigned char **result, size_t *result_len,
unsigned char **mask);
unsigned char *parse_hex(char *hex, size_t *outlen);
-int parse_keys(struct nl_msg *msg, char **argv, int argc);
+
+int parse_keys(struct nl_msg *msg, char **argv[], int *argc);
int parse_freqchan(struct chandef *chandef, bool chan, int argc, char **argv, int *parsed);
enum nl80211_chan_width str_to_bw(const char *str);
int put_chandef(struct nl_msg *msg, struct chandef *chandef);
diff --git a/util.c b/util.c
index 6e0ddff..122c019 100644
--- a/util.c
+++ b/util.c
@@ -417,23 +417,23 @@ static int parse_cipher_suite(const char *cipher_str)
return -EINVAL;
}
-int parse_keys(struct nl_msg *msg, char **argv, int argc)
+int parse_keys(struct nl_msg *msg, char **argv[], int *argc)
{
struct nlattr *keys;
int i = 0;
bool have_default = false;
- char *arg = *argv;
+ char *arg = **argv;
char keybuf[13];
int pos = 0;
- if (!argc)
+ if (!*argc)
return 1;
if (!memcmp(&arg[pos], "psk", 3)) {
char psk_keybuf[32];
int cipher_suite, akm_suite;
- if (argc < 4)
+ if (*argc < 4)
goto explain;
pos+=3;
@@ -451,9 +451,9 @@ int parse_keys(struct nl_msg *msg, char **argv, int argc)
NLA_PUT(msg, NL80211_ATTR_PMK, 32, psk_keybuf);
NLA_PUT_U32(msg, NL80211_ATTR_AUTH_TYPE, NL80211_AUTHTYPE_OPEN_SYSTEM);
- argv++;
- argc--;
- arg = *argv;
+ *argv += 1;
+ *argc -= 1;
+ arg = **argv;
akm_suite = parse_akm_suite(arg);
if (akm_suite < 0)
@@ -461,9 +461,9 @@ int parse_keys(struct nl_msg *msg, char **argv, int argc)
NLA_PUT_U32(msg, NL80211_ATTR_AKM_SUITES, akm_suite);
- argv++;
- argc--;
- arg = *argv;
+ *argv += 1;
+ *argc -= 1;
+ arg = **argv;
cipher_suite = parse_cipher_suite(arg);
if (cipher_suite < 0)
@@ -471,9 +471,9 @@ int parse_keys(struct nl_msg *msg, char **argv, int argc)
NLA_PUT_U32(msg, NL80211_ATTR_CIPHER_SUITES_PAIRWISE, cipher_suite);
- argv++;
- argc--;
- arg = *argv;
+ *argv += 1;
+ *argc -= 1;
+ arg = **argv;
cipher_suite = parse_cipher_suite(arg);
if (cipher_suite < 0)
@@ -495,7 +495,7 @@ int parse_keys(struct nl_msg *msg, char **argv, int argc)
struct nlattr *key = nla_nest_start(msg, ++i);
char *keydata;
- arg = *argv;
+ arg = **argv;
pos = 0;
if (!key)
@@ -537,15 +537,15 @@ int parse_keys(struct nl_msg *msg, char **argv, int argc)
NLA_PUT(msg, NL80211_KEY_DATA, keylen, keydata);
- argv++;
- argc--;
+ *argv += 1;
+ *argc -= 1;
/* one key should be TX key */
- if (!have_default && !argc)
+ if (!have_default && !*argc)
NLA_PUT_FLAG(msg, NL80211_KEY_DEFAULT);
nla_nest_end(msg, key);
- } while (argc);
+ } while (*argc);
nla_nest_end(msg, keys);
--
2.17.1

View File

@@ -7,29 +7,36 @@ Upstream-Status: Pending
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Maxin B. John <maxin.john@intel.com>
---
diff -Naur iw-4.3-origin/Makefile iw-4.3/Makefile
--- iw-4.3-origin/Makefile 2015-11-20 16:37:58.752077287 +0200
+++ iw-4.3/Makefile 2015-11-20 16:57:15.510615815 +0200
@@ -1,5 +1,7 @@
Makefile | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 33aaf6a..9030796 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,9 @@
MAKEFLAGS += --no-print-directory
-
+SRCDIR ?= $(dir $(lastword $(MAKEFILE_LIST)))
+OBJDIR ?= $(PWD)
+VPATH = $(SRCDIR)
+
PREFIX ?= /usr
SBINDIR ?= $(PREFIX)/sbin
MANDIR ?= $(PREFIX)/share/man
@@ -95,11 +97,11 @@
@@ -103,11 +107,11 @@ VERSION_OBJS := $(filter-out version.o, $(OBJS))
version.c: version.sh $(patsubst %.o,%.c,$(VERSION_OBJS)) nl80211.h iw.h Makefile \
$(wildcard .git/index .git/refs/tags)
@$(NQ) ' GEN ' $@
- $(Q)./version.sh $@
+ $(Q)cd $(SRCDIR) && ./version.sh $(OBJDIR)/$@
%.o: %.c iw.h nl80211.h
@$(NQ) ' CC ' $@
- $(Q)$(CC) $(CFLAGS) -c -o $@ $<
+ $(Q)$(CC) -I$(SRCDIR) $(CFLAGS) -c -o $@ $<
- $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
+ $(Q)$(CC) -I$(SRCDIR) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
ifeq ($(IW_ANDROID_BUILD),)
iw: $(OBJS)
--
2.20.1 (Apple Git-117)

View File

@@ -12,11 +12,10 @@ DEPENDS = "libnl"
SRC_URI = "http://www.kernel.org/pub/software/network/iw/${BP}.tar.gz \
file://0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch \
file://separate-objdir.patch \
file://0001-connect-fix-parsing-of-WEP-keys.patch \
"
SRC_URI[md5sum] = "2067516ca9940fdb8c091ee3250da374"
SRC_URI[sha256sum] = "a0c3aad6ff52234d03a2522ba2eba570e36abb3e60dc29bf0b1ce88dd725d6d4"
SRC_URI[md5sum] = "a0a17ab1b20132c716bba9a4f9974ba6"
SRC_URI[sha256sum] = "36fc7592dde7bec934df83cd53ef1f2c08ceec5cd58d07eb8f71cc6e8464013c"
inherit pkgconfig