]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
fd.o bug #11872 fix clearenv for systems that do not have it
authorJohn (J5) Palmieri <johnp@redhat.com>
Wed, 3 Oct 2007 21:02:23 +0000 (17:02 -0400)
committerJohn (J5) Palmieri <johnp@redhat.com>
Wed, 3 Oct 2007 21:02:23 +0000 (17:02 -0400)
* patch from Brian Cameron <brian.cameron at sun.com>

configure.in
dbus/dbus-sysdeps.c

index ee0d40ba96084a06a00ff791477c38544d85d85c..34e653f8c04fd3fc6fa0539e2343ee9426aa8d9f 100644 (file)
@@ -586,7 +586,7 @@ fi
 AC_CHECK_LIB(socket,socket)
 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
 
-AC_CHECK_FUNCS(vsnprintf vasprintf nanosleep usleep poll setenv unsetenv socketpair getgrouplist fpathconf setrlimit)
+AC_CHECK_FUNCS(vsnprintf vasprintf nanosleep usleep poll setenv clearenv unsetenv socketpair getgrouplist fpathconf setrlimit)
 
 AC_MSG_CHECKING(for dirfd)
 AC_TRY_LINK([
index c76603a81e80b45f16db79e22dd0c138fea1fbab..1a736e422270742df538553350cee5ee3635dfe0 100644 (file)
@@ -185,7 +185,19 @@ _dbus_getenv (const char *varname)
 dbus_bool_t
 _dbus_clearenv (void)
 {
-  return (clearenv () == 0);
+  dbus_bool_t rc = TRUE;
+
+#ifdef HAVE_CLEARENV
+  if (clearenv () != 0)
+     rc = FALSE;
+#else
+  extern char **environ;
+
+  if (environ != NULL)
+    environ[0] = NULL;
+#endif
+
+  return rc;
 }
 
 /*