summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TODO2
-rw-r--r--configure.ac1
-rw-r--r--src/core/dbus.c7
-rw-r--r--src/libudev/libudev.c3
-rw-r--r--src/shared/dbus-common.c3
-rw-r--r--src/shared/log.c9
-rw-r--r--src/shared/missing.h10
7 files changed, 24 insertions, 11 deletions
diff --git a/TODO b/TODO
index fdeb45c4fb..b3c335ee35 100644
--- a/TODO
+++ b/TODO
@@ -538,7 +538,7 @@ Regularly:
* set_put(), hashmap_put() return values check. i.e. == 0 doesn't free()!
-* use __secure_getenv() instead of getenv() where appropriate
+* use secure_getenv() instead of getenv() where appropriate
Scheduled for removal (or fixing):
diff --git a/configure.ac b/configure.ac
index da550212eb..b9891369a1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -173,6 +173,7 @@ LIBS="$save_LIBS"
AC_SUBST(CAP_LIBS)
AC_CHECK_FUNCS([fanotify_init fanotify_mark name_to_handle_at])
+AC_CHECK_FUNCS([__secure_getenv secure_getenv])
AC_CHECK_DECLS([gettid, pivot_root], [], [], [[#include <sys/types.h>
#include <unistd.h>
#include <sys/mount.h>]])
diff --git a/src/core/dbus.c b/src/core/dbus.c
index 75773aaa49..f05f610718 100644
--- a/src/core/dbus.c
+++ b/src/core/dbus.c
@@ -30,6 +30,7 @@
#include "strv.h"
#include "cgroup.h"
#include "mkdir.h"
+#include "missing.h"
#include "dbus-unit.h"
#include "dbus-job.h"
#include "dbus-manager.h"
@@ -955,12 +956,12 @@ static DBusConnection* manager_bus_connect_private(Manager *m, DBusBusType type)
switch (type) {
case DBUS_BUS_SYSTEM:
- address = __secure_getenv("DBUS_SYSTEM_BUS_ADDRESS");
+ address = secure_getenv("DBUS_SYSTEM_BUS_ADDRESS");
if (!address || !address[0])
address = DBUS_SYSTEM_BUS_DEFAULT_ADDRESS;
break;
case DBUS_BUS_SESSION:
- address = __secure_getenv("DBUS_SESSION_BUS_ADDRESS");
+ address = secure_getenv("DBUS_SESSION_BUS_ADDRESS");
if (!address || !address[0])
address = DBUS_SESSION_BUS_DEFAULT_ADDRESS;
break;
@@ -1077,7 +1078,7 @@ static int bus_init_private(Manager *m) {
const char *e;
char *p;
- e = __secure_getenv("XDG_RUNTIME_DIR");
+ e = secure_getenv("XDG_RUNTIME_DIR");
if (!e)
return 0;
diff --git a/src/libudev/libudev.c b/src/libudev/libudev.c
index 1a74808411..af36cc4452 100644
--- a/src/libudev/libudev.c
+++ b/src/libudev/libudev.c
@@ -21,6 +21,7 @@
#include "libudev.h"
#include "libudev-private.h"
+#include "missing.h"
/**
* SECTION:libudev
@@ -191,7 +192,7 @@ _public_ struct udev *udev_new(void)
}
/* environment overrides config */
- env = __secure_getenv("UDEV_LOG");
+ env = secure_getenv("UDEV_LOG");
if (env != NULL)
udev_set_log_priority(udev, util_log_priority(env));
diff --git a/src/shared/dbus-common.c b/src/shared/dbus-common.c
index b8229bd663..0c73d6c6a8 100644
--- a/src/shared/dbus-common.c
+++ b/src/shared/dbus-common.c
@@ -32,6 +32,7 @@
#include "log.h"
#include "dbus-common.h"
#include "util.h"
+#include "missing.h"
#include "def.h"
#include "strv.h"
@@ -121,7 +122,7 @@ int bus_connect(DBusBusType t, DBusConnection **_bus, bool *_private, DBusError
* try via XDG_RUNTIME_DIR first, then
* fallback to normal bus access */
- e = __secure_getenv("XDG_RUNTIME_DIR");
+ e = secure_getenv("XDG_RUNTIME_DIR");
if (e) {
char *p;
diff --git a/src/shared/log.c b/src/shared/log.c
index 847202d7d3..96634645bc 100644
--- a/src/shared/log.c
+++ b/src/shared/log.c
@@ -30,6 +30,7 @@
#include "log.h"
#include "util.h"
+#include "missing.h"
#include "macro.h"
#include "socket-util.h"
@@ -804,19 +805,19 @@ int log_set_max_level_from_string(const char *e) {
void log_parse_environment(void) {
const char *e;
- e = __secure_getenv("SYSTEMD_LOG_TARGET");
+ e = secure_getenv("SYSTEMD_LOG_TARGET");
if (e && log_set_target_from_string(e) < 0)
log_warning("Failed to parse log target %s. Ignoring.", e);
- e = __secure_getenv("SYSTEMD_LOG_LEVEL");
+ e = secure_getenv("SYSTEMD_LOG_LEVEL");
if (e && log_set_max_level_from_string(e) < 0)
log_warning("Failed to parse log level %s. Ignoring.", e);
- e = __secure_getenv("SYSTEMD_LOG_COLOR");
+ e = secure_getenv("SYSTEMD_LOG_COLOR");
if (e && log_show_color_from_string(e) < 0)
log_warning("Failed to parse bool %s. Ignoring.", e);
- e = __secure_getenv("SYSTEMD_LOG_LOCATION");
+ e = secure_getenv("SYSTEMD_LOG_LOCATION");
if (e && log_show_location_from_string(e) < 0)
log_warning("Failed to parse bool %s. Ignoring.", e);
}
diff --git a/src/shared/missing.h b/src/shared/missing.h
index 7fbb9259eb..c5bb71a504 100644
--- a/src/shared/missing.h
+++ b/src/shared/missing.h
@@ -26,6 +26,7 @@
#include <sys/resource.h>
#include <sys/syscall.h>
#include <fcntl.h>
+#include <stdlib.h>
#include <unistd.h>
#include <linux/oom.h>
@@ -218,7 +219,6 @@ static inline pid_t gettid(void) {
#endif
#ifndef HAVE_NAME_TO_HANDLE_AT
-
struct file_handle {
unsigned int handle_bytes;
int handle_type;
@@ -229,3 +229,11 @@ static inline int name_to_handle_at(int fd, const char *name, struct file_handle
return syscall(__NR_name_to_handle_at, fd, name, handle, mnt_id, flags);
}
#endif
+
+#ifndef HAVE_SECURE_GETENV
+# ifdef HAVE___SECURE_GETENV
+# define secure_getenv __secure_getenv
+# else
+# error neither secure_getenv nor __secure_getenv are available
+# endif
+#endif