|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
From f232545c215022de5be5e0b37e0c7130962cc5d0 Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
From: Tobias Klauser <tklauser@distanz.ch>
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
Date: Fri, 12 May 2017 18:13:31 +0200
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
Subject: [PATCH] built_in: don't redefine memcpy/memset
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
Redefining memset/memcpy causes problems when building with fortified
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
headers on Alpine Linux. Instead of uncoditionally defining these,
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
explicitely use fmemcpy/fmemset in performance critical paths and
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
otherwise let the compiler decide about optimizations.
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
Fixes #173
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
---
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
built_in.h | 6 ------
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
csum.h | 6 +++---
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
link.c | 1 +
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
3 files changed, 4 insertions(+), 9 deletions(-)
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
diff --git a/built_in.h b/built_in.h
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
index bb247461..da04dbd3 100644
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
--- a/built_in.h
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
+++ b/built_in.h
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
@@ -322,12 +322,6 @@ static inline u64 cpu_to_le64(u64 val)
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
#define be32_to_cpu cpu_to_be32
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
#define be16_to_cpu cpu_to_be16
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
-#undef memset
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
-#undef memcpy
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
-
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
-#define memset fmemset
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
-#define memcpy fmemcpy
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
-
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
#if defined(__amd64__) || defined(__x86_64__) || defined(__AMD64__) || \
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
defined(_M_X64) || defined(__amd64)
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
# define CO_IN_CACHE_SHIFT 7
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
diff --git a/csum.h b/csum.h
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
index de76755e..96211c5e 100644
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
--- a/csum.h
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
+++ b/csum.h
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
@@ -182,10 +182,10 @@ static inline uint16_t p6_csum(const struct ip6_hdr *ip6, const uint8_t *data,
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
uint8_t proto;
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
} __packed ph;
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
- memcpy(&ph.src, ip6->ip6_src.s6_addr, sizeof(ph.src));
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
- memcpy(&ph.dst, ip6->ip6_dst.s6_addr, sizeof(ph.dst));
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
+ fmemcpy(&ph.src, ip6->ip6_src.s6_addr, sizeof(ph.src));
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
+ fmemcpy(&ph.dst, ip6->ip6_dst.s6_addr, sizeof(ph.dst));
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
ph.len = htons(len);
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
- memset(&ph.mbz, 0, sizeof(ph.mbz));
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
+ fmemset(&ph.mbz, 0, sizeof(ph.mbz));
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
ph.proto = next_proto;
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
vec[0].ptr = (const uint8_t *) (void *) &ph;
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
diff --git a/link.c b/link.c
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
index 56b839b4..72f513f7 100644
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
--- a/link.c
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
+++ b/link.c
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
@@ -1,6 +1,7 @@
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
#include <sys/types.h>
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
#include <sys/ioctl.h>
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
#include <linux/sockios.h>
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
+#include <string.h>
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
#include <unistd.h>
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
#include <errno.h>
|
|
![](https://seccdn.libravatar.org/avatar/1fd6a6dfddf24bd26e126f65144baf02c9ee908e4b74a78db3835cbfbb5888c5?s=16&d=retro) |
4a85fdb |
|