From: Stanislaw Gruszka <sgruszka@redhat.com>
To: linux-wireless@vger.kernel.org
Cc: stable@kernel.org, "John W. Linville" <linville@tuxdriver.com>,
Chris Siebenmann <cks-rhbugzilla@cs.toronto.edu>,
Dan Williams <dcbw@redhat.com>,
Stanislaw Gruszka <sgruszka@redhat.com>
Subject: [PATCH] airo: fix setting zero length WEP key
Date: Tue, 2 Feb 2010 15:34:50 +0100 [thread overview]
Message-ID: <1265121290-2969-1-git-send-email-sgruszka@redhat.com> (raw)
Patch prevents call set_wep_key() with zero key length. That fix long
standing regression since commit c0380693520b1a1e4f756799a0edc379378b462a
"airo: clean up WEP key operations". Additionally print call trace when
someone will try to use improper parameters, and remove key.len = 0
assignment, because it is in not possible code path.
Reported-and-bisected-by: Chris Siebenmann <cks-rhbugzilla@cs.toronto.edu>
Cc: Dan Williams <dcbw@redhat.com>
Cc: <stable@kernel.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/airo.c | 34 ++++++++++++++++++----------------
1 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
index 4331d67..2a9f029 100644
--- a/drivers/net/wireless/airo.c
+++ b/drivers/net/wireless/airo.c
@@ -5254,11 +5254,7 @@ static int set_wep_key(struct airo_info *ai, u16 index, const char *key,
WepKeyRid wkr;
int rc;
- if (keylen == 0) {
- airo_print_err(ai->dev->name, "%s: key length to set was zero",
- __func__);
- return -1;
- }
+ WARN_ON(keylen == 0);
memset(&wkr, 0, sizeof(wkr));
wkr.len = cpu_to_le16(sizeof(wkr));
@@ -6405,11 +6401,7 @@ static int airo_set_encode(struct net_device *dev,
if (dwrq->length > MIN_KEY_SIZE)
key.len = MAX_KEY_SIZE;
else
- if (dwrq->length > 0)
- key.len = MIN_KEY_SIZE;
- else
- /* Disable the key */
- key.len = 0;
+ key.len = MIN_KEY_SIZE;
/* Check if the key is not marked as invalid */
if(!(dwrq->flags & IW_ENCODE_NOKEY)) {
/* Cleanup */
@@ -6590,12 +6582,22 @@ static int airo_set_encodeext(struct net_device *dev,
default:
return -EINVAL;
}
- /* Send the key to the card */
- rc = set_wep_key(local, idx, key.key, key.len, perm, 1);
- if (rc < 0) {
- airo_print_err(local->dev->name, "failed to set WEP key"
- " at index %d: %d.", idx, rc);
- return rc;
+ if (key.len == 0) {
+ rc = set_wep_tx_idx(local, idx, perm, 1);
+ if (rc < 0) {
+ airo_print_err(local->dev->name,
+ "failed to set WEP transmit index to %d: %d.",
+ idx, rc);
+ return rc;
+ }
+ } else {
+ rc = set_wep_key(local, idx, key.key, key.len, perm, 1);
+ if (rc < 0) {
+ airo_print_err(local->dev->name,
+ "failed to set WEP key at index %d: %d.",
+ idx, rc);
+ return rc;
+ }
}
}
--
1.6.2.5
next reply other threads:[~2010-02-02 14:37 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-02 14:34 Stanislaw Gruszka [this message]
2010-02-02 18:32 ` [PATCH] airo: fix setting zero length WEP key Chris Siebenmann
2010-02-03 20:43 ` Dan Williams
2010-02-03 21:31 ` Chris Siebenmann
2010-02-04 21:44 ` Dan Williams
2010-02-04 22:10 ` Chris Siebenmann
2010-02-04 22:18 ` Dan Williams
2010-02-04 22:26 ` Chris Siebenmann
2010-02-04 22:39 ` Dan Williams
2010-02-04 22:42 ` Chris Siebenmann
2010-02-04 23:00 ` Dan Williams
2010-02-04 23:03 ` Chris Siebenmann
2010-02-04 23:26 ` Dan Williams
2010-02-04 23:30 ` Dan Williams
2010-02-04 23:36 ` Chris Siebenmann
2010-02-05 6:57 ` Dan Williams
2010-02-04 12:04 ` Stanislaw Gruszka
2010-02-04 12:07 ` [PATCH v2] " Stanislaw Gruszka
2010-02-04 16:41 ` Chris Siebenmann
2010-02-04 23:56 ` Dan Williams
2010-02-05 9:11 ` Stanislaw Gruszka
2010-02-05 6:59 ` Dan Williams
2010-02-05 7:06 ` [PATCH] airo: fix WEP key clearing after c0380693520b1a1e4f756799a0edc379378b462a Dan Williams
2010-02-05 16:26 ` Chris Siebenmann
2010-02-05 19:20 ` Dan Williams
2010-02-05 23:12 ` Chris Siebenmann
2010-02-08 23:47 ` Dan Williams
2010-02-09 16:25 ` Chris Siebenmann
2010-02-09 17:17 ` Chris Siebenmann
2010-02-08 20:55 ` [PATCH v2] airo: fix setting zero length WEP key John W. Linville
2010-02-08 23:44 ` Dan Williams
2010-02-08 20:53 ` John W. Linville
2010-02-09 8:27 ` [PATCH] airo: return from set_wep_key() when key length is zero Stanislaw Gruszka
2010-02-26 14:10 ` [PATCH resend] " Stanislaw Gruszka
2010-02-26 23:09 ` Dan Williams
2010-02-27 1:26 ` John W. Linville
2010-03-01 7:47 ` Stanislaw Gruszka
2010-02-26 23:09 ` [PATCH v2] airo: fix setting zero length WEP key Dan Williams
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1265121290-2969-1-git-send-email-sgruszka@redhat.com \
--to=sgruszka@redhat.com \
--cc=cks-rhbugzilla@cs.toronto.edu \
--cc=dcbw@redhat.com \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=stable@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).