diff --git a/configure.ac b/configure.ac index 5ae1401c..2d373a47 100644 --- a/configure.ac +++ b/configure.ac @@ -128,6 +128,7 @@ AC_DEFINE_UNQUOTED(WIRED_STORAGEDIR, "${wired_storagedir}", [Directory for Ethernet daemon storage files]) AC_CHECK_FUNCS(explicit_bzero) +AC_CHECK_FUNCS(rawmemchr) AC_CHECK_HEADERS(linux/types.h linux/if_alg.h) diff --git a/src/missing.h b/src/missing.h index 2bb210ae..2cc80aee 100644 --- a/src/missing.h +++ b/src/missing.h @@ -27,3 +27,13 @@ static inline void explicit_bzero(void *s, size_t n) __asm__ __volatile__ ("" : : "r"(s) : "memory"); } #endif + +#ifndef HAVE_RAWMEMCHR +static inline void *rawmemchr(const void *s, int c) +{ +_Pragma("GCC diagnostic push") +_Pragma("GCC diagnostic ignored \"-Wstringop-overflow=\"") + return memchr(s, c, (size_t) -1); +_Pragma("GCC diagnostic pop") +} +#endif diff --git a/src/wiphy.c b/src/wiphy.c index 1da479db..511bb27f 100644 --- a/src/wiphy.c +++ b/src/wiphy.c @@ -37,6 +37,7 @@ #include "linux/nl80211.h" +#include "src/missing.h" #include "src/iwd.h" #include "src/module.h" #include "src/ie.h"