From e4c237306daab08ea50e896da3800b6c1e21771d Mon Sep 17 00:00:00 2001
From: cfconrad <>
Date: Mar 10 2021 07:55:03 +0000
Subject: Update wpa_supplicant to version 2.9 / rev 86 via SR 875681


https://build.opensuse.org/request/show/875681
by user cfconrad + dimstar_suse

---

diff --git a/.files b/.files
index 8d8f0ed..33752c0 100644
Binary files a/.files and b/.files differ
diff --git a/.rev b/.rev
index c5dbde0..6d9a541 100644
--- a/.rev
+++ b/.rev
@@ -696,4 +696,12 @@
     <comment></comment>
     <requestid>869590</requestid>
   </revision>
+  <revision rev="86" vrev="11">
+    <srcmd5>8eef387cf2d34598507e9bdaf9bf45b1</srcmd5>
+    <version>2.9</version>
+    <time>1615362486</time>
+    <user>dimstar_suse</user>
+    <comment></comment>
+    <requestid>875681</requestid>
+  </revision>
 </revisionlist>
diff --git a/CVE-2021-27803.patch b/CVE-2021-27803.patch
new file mode 100644
index 0000000..1942bb3
--- /dev/null
+++ b/CVE-2021-27803.patch
@@ -0,0 +1,50 @@
+From 8460e3230988ef2ec13ce6b69b687e941f6cdb32 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <jouni@codeaurora.org>
+Date: Tue, 8 Dec 2020 23:52:50 +0200
+Subject: [PATCH] P2P: Fix a corner case in peer addition based on PD Request
+
+p2p_add_device() may remove the oldest entry if there is no room in the
+peer table for a new peer. This would result in any pointer to that
+removed entry becoming stale. A corner case with an invalid PD Request
+frame could result in such a case ending up using (read+write) freed
+memory. This could only by triggered when the peer table has reached its
+maximum size and the PD Request frame is received from the P2P Device
+Address of the oldest remaining entry and the frame has incorrect P2P
+Device Address in the payload.
+
+Fix this by fetching the dev pointer again after having called
+p2p_add_device() so that the stale pointer cannot be used.
+
+Fixes: 17bef1e97a50 ("P2P: Add peer entry based on Provision Discovery Request")
+Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
+---
+ src/p2p/p2p_pd.c | 12 +++++-------
+ 1 file changed, 5 insertions(+), 7 deletions(-)
+
+diff --git a/src/p2p/p2p_pd.c b/src/p2p/p2p_pd.c
+index 3994ec03f86b..05fd593494ef 100644
+--- a/src/p2p/p2p_pd.c
++++ b/src/p2p/p2p_pd.c
+@@ -595,14 +595,12 @@ void p2p_process_prov_disc_req(struct p2p_data *p2p, const u8 *sa,
+ 			goto out;
+ 		}
+ 
++		dev = p2p_get_device(p2p, sa);
+ 		if (!dev) {
+-			dev = p2p_get_device(p2p, sa);
+-			if (!dev) {
+-				p2p_dbg(p2p,
+-					"Provision Discovery device not found "
+-					MACSTR, MAC2STR(sa));
+-				goto out;
+-			}
++			p2p_dbg(p2p,
++				"Provision Discovery device not found "
++				MACSTR, MAC2STR(sa));
++			goto out;
+ 		}
+ 	} else if (msg.wfd_subelems) {
+ 		wpabuf_free(dev->info.wfd_subelems);
+-- 
+2.25.1
+
diff --git a/wpa_supplicant.changes b/wpa_supplicant.changes
index b777679..a2a3a70 100644
--- a/wpa_supplicant.changes
+++ b/wpa_supplicant.changes
@@ -1,4 +1,10 @@
 -------------------------------------------------------------------
+Sat Feb 27 23:14:13 UTC 2021 - Clemens Famulla-Conrad <cfamullaconrad@suse.com>
+
+- Add CVE-2021-27803.patch -- P2P provision discovery processing vulnerability
+  (bsc#1182805)
+
+-------------------------------------------------------------------
 Thu Feb  4 12:27:02 UTC 2021 - Clemens Famulla-Conrad <cfamullaconrad@suse.com>
 
 - Add CVE-2021-0326.patch -- P2P group information processing vulnerability 
diff --git a/wpa_supplicant.spec b/wpa_supplicant.spec
index c93bf5a..077c451 100644
--- a/wpa_supplicant.spec
+++ b/wpa_supplicant.spec
@@ -43,6 +43,7 @@ Patch6:         restore-old-dbus-interface.patch
 Patch7:         CVE-2019-16275.patch
 Patch8:         wpa_supplicant-p2p_iname_size.diff
 Patch9:         CVE-2021-0326.patch
+Patch10:        CVE-2021-27803.patch
 BuildRequires:  pkgconfig
 BuildRequires:  readline-devel
 BuildRequires:  systemd-rpm-macros