libuser: Fix build when secure getenv is not there
Fixes build on musl (From OE-Core rev: a0739c37bef360b0268267284b86adf3cc140051) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
ea9dc990a9
commit
22333f01d8
|
@ -0,0 +1,62 @@
|
|||
From d0537cb7f2dc5877700ad78dfd191515379d4edc Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Thu, 7 Jan 2016 02:22:51 +0000
|
||||
Subject: [PATCH 1/2] Check for issetugid()
|
||||
|
||||
If secure version of getenv is not there then we can use
|
||||
issetugid() as aid to call getenv()
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
configure.ac | 1 +
|
||||
lib/config.c | 12 +++++++++++-
|
||||
2 files changed, 12 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 1ded1a2..ee19e1f 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -125,6 +125,7 @@ AC_TYPE_OFF_T
|
||||
AC_TYPE_SIZE_T
|
||||
|
||||
AC_CHECK_FUNCS([__secure_getenv secure_getenv])
|
||||
+AC_CHECK_FUNCS([issetugid])
|
||||
|
||||
# Modify CFLAGS after all tests are run (some of them could fail because
|
||||
# of the -Werror).
|
||||
diff --git a/lib/config.c b/lib/config.c
|
||||
index 29e7120..30f9daf 100644
|
||||
--- a/lib/config.c
|
||||
+++ b/lib/config.c
|
||||
@@ -44,8 +44,10 @@
|
||||
# define safe_getenv(string) secure_getenv(string)
|
||||
#elif defined(HAVE___SECURE_GETENV)
|
||||
# define safe_getenv(string) __secure_getenv(string)
|
||||
+#elif defined(HAVE_ISSETUGID)
|
||||
+# define safe_getenv(string) safe_getenv_issetugid(string)
|
||||
#else
|
||||
-# error Neither secure_getenv not __secure_getenv are available
|
||||
+# error None of secure_getenv, __secure_getenv, or issetugid is available
|
||||
#endif
|
||||
|
||||
struct config_config {
|
||||
@@ -59,6 +61,14 @@ struct config_key {
|
||||
GList *values;
|
||||
};
|
||||
|
||||
+static const char*
|
||||
+safe_getenv_issetugid(const char* name)
|
||||
+{
|
||||
+ if (issetugid ())
|
||||
+ return 0;
|
||||
+ return getenv (name);
|
||||
+}
|
||||
+
|
||||
/* Compare two section names */
|
||||
static int
|
||||
compare_section_names(gconstpointer a, gconstpointer b)
|
||||
--
|
||||
2.7.0
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
From 4b2f81f307ffeac12956e5c16e894e5ebb937ea5 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Thu, 7 Jan 2016 02:26:00 +0000
|
||||
Subject: [PATCH 2/2] remove unused execinfo.h
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
lib/error.c | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/lib/error.c b/lib/error.c
|
||||
index a5ec30a..443e601 100644
|
||||
--- a/lib/error.c
|
||||
+++ b/lib/error.c
|
||||
@@ -18,7 +18,6 @@
|
||||
#include <config.h>
|
||||
#include <sys/types.h>
|
||||
#include <errno.h>
|
||||
-#include <execinfo.h>
|
||||
#include <libintl.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
--
|
||||
2.7.0
|
||||
|
|
@ -12,7 +12,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
|
|||
SECTION = "base"
|
||||
|
||||
SRC_URI = "https://fedorahosted.org/releases/l/i/libuser/libuser-${PV}.tar.xz \
|
||||
"
|
||||
file://0001-Check-for-issetugid.patch \
|
||||
file://0002-remove-unused-execinfo.h.patch \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] = "63e5e5c551e99dc5302b40b80bd6d4f2"
|
||||
SRC_URI[sha256sum] = "a58ff4fabb01a25043b142185a33eeea961109dd60d4b40b6a9df4fa3cace20b"
|
||||
|
|
Loading…
Reference in New Issue