From: John (J5) Palmieri Date: Wed, 3 Oct 2007 21:02:23 +0000 (-0400) Subject: fd.o bug #11872 fix clearenv for systems that do not have it X-Git-Tag: dbus-1.1.3~59^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=adb0270edf6ffae2f2d9d319aed7737f85fa6ec2;p=thirdparty%2Fdbus.git fd.o bug #11872 fix clearenv for systems that do not have it * patch from Brian Cameron --- diff --git a/configure.in b/configure.in index ee0d40ba9..34e653f8c 100644 --- a/configure.in +++ b/configure.in @@ -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([ diff --git a/dbus/dbus-sysdeps.c b/dbus/dbus-sysdeps.c index c76603a81..1a736e422 100644 --- a/dbus/dbus-sysdeps.c +++ b/dbus/dbus-sysdeps.c @@ -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; } /*