* Patch "hostap: avoid uninitialized variable use in hfa384x_get_rid" has been added to the 3.18-stable tree
@ 2017-04-27 14:28 gregkh
0 siblings, 0 replies; only message in thread
From: gregkh @ 2017-04-27 14:28 UTC (permalink / raw)
To: arnd, gregkh, kvalo; +Cc: stable, stable-commits
This is a note to let you know that I've just added the patch titled
hostap: avoid uninitialized variable use in hfa384x_get_rid
to the 3.18-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
hostap-avoid-uninitialized-variable-use-in-hfa384x_get_rid.patch
and it can be found in the queue-3.18 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.
>From 48dc5fb3ba53b20418de8514700f63d88c5de3a3 Mon Sep 17 00:00:00 2001
From: Arnd Bergmann <arnd@arndb.de>
Date: Thu, 28 Jan 2016 22:58:28 +0100
Subject: hostap: avoid uninitialized variable use in hfa384x_get_rid
From: Arnd Bergmann <arnd@arndb.de>
commit 48dc5fb3ba53b20418de8514700f63d88c5de3a3 upstream.
The driver reads a value from hfa384x_from_bap(), which may fail,
and then assigns the value to a local variable. gcc detects that
in in the failure case, the 'rlen' variable now contains
uninitialized data:
In file included from ../drivers/net/wireless/intersil/hostap/hostap_pci.c:220:0:
drivers/net/wireless/intersil/hostap/hostap_hw.c: In function 'hfa384x_get_rid':
drivers/net/wireless/intersil/hostap/hostap_hw.c:842:5: warning: 'rec' may be used uninitialized in this function [-Wmaybe-uninitialized]
if (le16_to_cpu(rec.len) == 0) {
This restructures the function as suggested by Russell King, to
make it more readable and get more reliable error handling, by
handling each failure mode using a goto.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/wireless/hostap/hostap_hw.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
--- a/drivers/net/wireless/hostap/hostap_hw.c
+++ b/drivers/net/wireless/hostap/hostap_hw.c
@@ -836,25 +836,30 @@ static int hfa384x_get_rid(struct net_de
spin_lock_bh(&local->baplock);
res = hfa384x_setup_bap(dev, BAP0, rid, 0);
- if (!res)
- res = hfa384x_from_bap(dev, BAP0, &rec, sizeof(rec));
+ if (res)
+ goto unlock;
+
+ res = hfa384x_from_bap(dev, BAP0, &rec, sizeof(rec));
+ if (res)
+ goto unlock;
if (le16_to_cpu(rec.len) == 0) {
/* RID not available */
res = -ENODATA;
+ goto unlock;
}
rlen = (le16_to_cpu(rec.len) - 1) * 2;
- if (!res && exact_len && rlen != len) {
+ if (exact_len && rlen != len) {
printk(KERN_DEBUG "%s: hfa384x_get_rid - RID len mismatch: "
"rid=0x%04x, len=%d (expected %d)\n",
dev->name, rid, rlen, len);
res = -ENODATA;
}
- if (!res)
- res = hfa384x_from_bap(dev, BAP0, buf, len);
+ res = hfa384x_from_bap(dev, BAP0, buf, len);
+unlock:
spin_unlock_bh(&local->baplock);
mutex_unlock(&local->rid_bap_mtx);
Patches currently in stable-queue which might be from arnd@arndb.de are
queue-3.18/net-vxge-avoid-unused-function-warnings.patch
queue-3.18/tty-nozomi-avoid-a-harmless-gcc-warning.patch
queue-3.18/perf-avoid-horrible-stack-usage.patch
queue-3.18/btrfs-fix-state-private-cast-on-32-bit-machines.patch
queue-3.18/mm-init-fix-zone-boundary-creation.patch
queue-3.18/iommu-vt-d-remove-unused-variable.patch
queue-3.18/mips-msp71xx-remove-odd-locking-in-pci-config-space-access-code.patch
queue-3.18/net-tulip-turn-compile-time-warning-into-dev_warn.patch
queue-3.18/nfsd-work-around-a-gcc-5.1-warning.patch
queue-3.18/fs-nfs-fix-new-compiler-warning-about-boolean-in-switch.patch
queue-3.18/aic94xx-skip-reading-user-settings-if-flash-is-not-found.patch
queue-3.18/mmc-sunxi-avoid-invalid-pointer-calculation.patch
queue-3.18/acpi-power-avoid-maybe-uninitialized-warning.patch
queue-3.18/gfs2-avoid-uninitialized-variable-warning.patch
queue-3.18/gadgetfs-fix-uninitialized-variable-in-error-handling.patch
queue-3.18/arm-8296-1-cache-l2x0-clean-up-aurora-cache-handling.patch
queue-3.18/brcmfmac-avoid-gcc-5.1-warning.patch
queue-3.18/kconfig-tinyconfig-provide-whole-choice-blocks-to-avoid-warnings.patch
queue-3.18/net-ti-cpmac-fix-compiler-warning-due-to-type-confusion.patch
queue-3.18/clk-at91-usb-fix-determine_rate-prototype-again.patch
queue-3.18/mips-ralink-cosmetic-change-to-prom_init.patch
queue-3.18/mips-fix-the-build-on-jz4740-after-removing-the-custom-gpio.h.patch
queue-3.18/mips-asm-compiler-add-new-macros-to-set-isa-and-arch-asm-annotations.patch
queue-3.18/misc-ioc4-simplify-wave-period-measurement-in-clock_calibrate.patch
queue-3.18/hostap-avoid-uninitialized-variable-use-in-hfa384x_get_rid.patch
queue-3.18/dm-bufio-hide-bogus-warning.patch
queue-3.18/fix-signed-unsigned-pointer-warning.patch
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2017-04-27 14:49 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-27 14:28 Patch "hostap: avoid uninitialized variable use in hfa384x_get_rid" has been added to the 3.18-stable tree gregkh
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).