chiark / gitweb /
build-sys: __secure_getenv lost dunder in libc 2.17
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 16 Sep 2012 22:21:25 +0000 (00:21 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 16 Sep 2012 22:21:25 +0000 (00:21 +0200)
TODO
configure.ac
src/core/dbus.c
src/libudev/libudev.c
src/shared/dbus-common.c
src/shared/log.c
src/shared/missing.h

diff --git a/TODO b/TODO
index fdeb45c..b3c335e 100644 (file)
--- 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):
 
index da55021..b989136 100644 (file)
@@ -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>]])
index 75773aa..f05f610 100644 (file)
@@ -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;
 
index 1a74808..af36cc4 100644 (file)
@@ -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));
 
index b8229bd..0c73d6c 100644 (file)
@@ -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;
 
index 847202d..9663464 100644 (file)
@@ -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);
 }
index 7fbb925..c5bb71a 100644 (file)
@@ -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