summary refs log tree commit diff
path: root/pkgs/os-specific/linux/broadcom-sta
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2016-08-01 21:00:02 +0200
committeraszlig <aszlig@redmoonstudios.org>2016-08-01 21:05:15 +0200
commitfef4b62657903021f9b60fc6a6cf6fe4bac167ed (patch)
treee9ebd584e1d540597ca86cf73f7274cea7a14ee8 /pkgs/os-specific/linux/broadcom-sta
parent8f08399671911842174056b46aa1cc66c82f2a71 (diff)
downloadnixpkgs-fef4b62657903021f9b60fc6a6cf6fe4bac167ed.tar
nixpkgs-fef4b62657903021f9b60fc6a6cf6fe4bac167ed.tar.gz
nixpkgs-fef4b62657903021f9b60fc6a6cf6fe4bac167ed.tar.bz2
nixpkgs-fef4b62657903021f9b60fc6a6cf6fe4bac167ed.tar.lz
nixpkgs-fef4b62657903021f9b60fc6a6cf6fe4bac167ed.tar.xz
nixpkgs-fef4b62657903021f9b60fc6a6cf6fe4bac167ed.tar.zst
nixpkgs-fef4b62657903021f9b60fc6a6cf6fe4bac167ed.zip
broadcom_sta: Add patch to fix NULL pointer deref
The patch is from the following Gentoo bug:

https://bugs.gentoo.org/show_bug.cgi?id=523326#c24

Built successfully against Linux 3.18.36, 4.4.16 and 4.7.0.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Cc: @phreedom, @vcunat
Diffstat (limited to 'pkgs/os-specific/linux/broadcom-sta')
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/default.nix1
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/null-pointer-fix.patch13
2 files changed, 14 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/broadcom-sta/default.nix b/pkgs/os-specific/linux/broadcom-sta/default.nix
index d193554c4e3..28b23a61ff0 100644
--- a/pkgs/os-specific/linux/broadcom-sta/default.nix
+++ b/pkgs/os-specific/linux/broadcom-sta/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation {
     ./i686-build-failure.patch
     ./license.patch
     ./linux-4.7.patch
+    ./null-pointer-fix.patch
     ./gcc.patch
   ];
 
diff --git a/pkgs/os-specific/linux/broadcom-sta/null-pointer-fix.patch b/pkgs/os-specific/linux/broadcom-sta/null-pointer-fix.patch
new file mode 100644
index 00000000000..76379729430
--- /dev/null
+++ b/pkgs/os-specific/linux/broadcom-sta/null-pointer-fix.patch
@@ -0,0 +1,13 @@
+diff -urN a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
+--- a/src/wl/sys/wl_linux.c	2015-01-06 12:33:42.981659618 +0100
++++ b/src/wl/sys/wl_linux.c	2015-01-06 12:34:05.647395418 +0100
+@@ -2157,8 +2157,8 @@
+ 	wlif = WL_DEV_IF(dev);
+ 	wl = WL_INFO(dev);
+ 
++	skb->prev = NULL;
+ 	if (WL_ALL_PASSIVE_ENAB(wl) || (WL_RTR() && WL_CONFIG_SMP())) {
+-		skb->prev = NULL;
+ 
+ 		TXQ_LOCK(wl);
+