summaryrefslogtreecommitdiff
path: root/pkg/wpa_supplicant/patch/0002-Avoid-statement-expressions-for-get_aligned_le.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/wpa_supplicant/patch/0002-Avoid-statement-expressions-for-get_aligned_le.patch')
-rw-r--r--pkg/wpa_supplicant/patch/0002-Avoid-statement-expressions-for-get_aligned_le.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/pkg/wpa_supplicant/patch/0002-Avoid-statement-expressions-for-get_aligned_le.patch b/pkg/wpa_supplicant/patch/0002-Avoid-statement-expressions-for-get_aligned_le.patch
new file mode 100644
index 00000000..73484e65
--- /dev/null
+++ b/pkg/wpa_supplicant/patch/0002-Avoid-statement-expressions-for-get_aligned_le.patch
@@ -0,0 +1,47 @@
+From 9698f90ccec779f7812a9aa550a6b77feefb52e3 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sun, 11 Aug 2019 03:41:23 +0000
+Subject: [PATCH] Avoid statement expressions for get_aligned_le*
+
+---
+ src/utils/platform.h | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/src/utils/platform.h b/src/utils/platform.h
+index 813987eb6..1aa9dc069 100644
+--- a/src/utils/platform.h
++++ b/src/utils/platform.h
+@@ -4,18 +4,18 @@
+ #include "includes.h"
+ #include "common.h"
+
+-#define le16_to_cpu le_to_host16
+-#define le32_to_cpu le_to_host32
++static inline u16 get_unaligned_le16(void *p)
++{
++ u16 v;
++ memcpy(&v, p, sizeof(v));
++ return le_to_host16(v);
++}
+
+-#define get_unaligned(p) \
+-({ \
+- struct packed_dummy_struct { \
+- typeof(*(p)) __val; \
+- } __attribute__((packed)) *__ptr = (void *) (p); \
+- \
+- __ptr->__val; \
+-})
+-#define get_unaligned_le16(p) le16_to_cpu(get_unaligned((le16 *)(p)))
+-#define get_unaligned_le32(p) le32_to_cpu(get_unaligned((le32 *)(p)))
++static inline u32 get_unaligned_le32(void *p)
++{
++ u32 v;
++ memcpy(&v, p, sizeof(v));
++ return le_to_host32(v);
++}
+
+ #endif /* PLATFORM_H */
+--
+2.22.0
+