[apparmor] [PATCH] libapparmor: Fix FTBFS when secure_getenv() is not available
Tyler Hicks
tyhicks at canonical.com
Thu Mar 26 16:04:30 UTC 2015
Allow libapparmor to build on older systems where secure_getenv() is
still named __secure_getenv(). This snippet was taken from the glibc
wiki:
https://sourceware.org/glibc/wiki/Tips_and_Tricks/secure_getenv
Signed-off-by: Tyler Hicks <tyhicks at canonical.com>
---
We need to start using a configuration header file (config.h) for things like
this, the recent asprintf() redefine, etc.
https://www.gnu.org/software/autoconf/manual/autoconf-2.65/html_node/Configuration-Headers.html
libraries/libapparmor/configure.ac | 2 +-
libraries/libapparmor/src/private.c | 13 +++++++++++++
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/libraries/libapparmor/configure.ac b/libraries/libapparmor/configure.ac
index fe6971c..479ba6d 100644
--- a/libraries/libapparmor/configure.ac
+++ b/libraries/libapparmor/configure.ac
@@ -81,7 +81,7 @@ AM_CONDITIONAL(HAVE_RUBY, test x$with_ruby = xyes)
AC_HEADER_STDC
AC_CHECK_HEADERS(unistd.h stdint.h syslog.h)
-AC_CHECK_FUNCS(asprintf)
+AC_CHECK_FUNCS([asprintf __secure_getenv secure_getenv])
AM_PROG_CC_C_O
AC_C_CONST
diff --git a/libraries/libapparmor/src/private.c b/libraries/libapparmor/src/private.c
index c99a57d..f078f28 100644
--- a/libraries/libapparmor/src/private.c
+++ b/libraries/libapparmor/src/private.c
@@ -30,6 +30,19 @@
#include "private.h"
+/**
+ * Allow libapparmor to build on older systems where secure_getenv() is still
+ * named __secure_getenv(). This snippet was taken from the glibc wiki
+ * (https://sourceware.org/glibc/wiki/Tips_and_Tricks/secure_getenv).
+ */
+#ifndef HAVE_SECURE_GETENV
+ #ifdef HAVE___SECURE_GETENV
+ #define secure_getenv __secure_getenv
+ #else
+ #error neither secure_getenv nor __secure_getenv is available
+ #endif
+#endif
+
struct ignored_suffix_t {
const char * text;
int len;
--
2.1.4
More information about the AppArmor
mailing list