From 0c7751485deb144e55f20077a5c4fbe4582c7cc1 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Wed, 11 Sep 2019 13:25:47 -0500 Subject: [PATCH] ie: Always include RSN Capabilities bytes --- src/ie.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/ie.c b/src/ie.c index 589079c0..e90b5cfa 100644 --- a/src/ie.c +++ b/src/ie.c @@ -1078,10 +1078,16 @@ static int build_ciphers_common(const struct ie_rsn_info *info, uint8_t *to, /* Short hand the generated RSNE if possible */ if (info->num_pmkids == 0 && !force_group_mgmt_cipher) { /* No Group Management Cipher Suite */ - if (to[pos - 2] == 0 && to[pos - 1] == 0) { - pos -= 2; + if (to[pos - 2] == 0 && to[pos - 1] == 0) + /* + * The RSN Capabilities bytes are in theory optional, + * but some APs don't seem to like us not including + * them in the RSN element. Also wireshark has a + * bug and complains of a malformed element if these + * bytes are not included. + */ goto done; - } else if (!info->mfpc) + else if (!info->mfpc) goto done; else if (info->group_management_cipher == IE_RSN_CIPHER_SUITE_BIP)