[systemd-commits] configure.ac src/core src/libudev src/shared TODO

Zbigniew Jędrzejewski-Szmek zbyszek at kemper.freedesktop.org
Sun Sep 16 15:30:33 PDT 2012


 TODO                     |    2 +-
 configure.ac             |    1 +
 src/core/dbus.c          |    7 ++++---
 src/libudev/libudev.c    |    3 ++-
 src/shared/dbus-common.c |    3 ++-
 src/shared/log.c         |    9 +++++----
 src/shared/missing.h     |   10 +++++++++-
 7 files changed, 24 insertions(+), 11 deletions(-)

New commits:
commit 4db17f291c627c885de668200ff8cce2e57c933f
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Mon Sep 17 00:21:25 2012 +0200

    build-sys: __secure_getenv lost dunder in libc 2.17

diff --git a/TODO b/TODO
index fdeb45c..b3c335e 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 da55021..b989136 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 75773aa..f05f610 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 1a74808..af36cc4 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 b8229bd..0c73d6c 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 847202d..9663464 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 7fbb925..c5bb71a 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



More information about the systemd-commits mailing list