aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--camel/ChangeLog6
-rw-r--r--camel/camel-stream-process.c15
2 files changed, 9 insertions, 12 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index 00df1f6bf9..9f02d6f680 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -1,3 +1,9 @@
+2003-12-10 Not Zed <NotZed@Ximian.com>
+
+ * camel-stream-process.c (do_exec_command): remove dthe clearenv
+ stuff, not sure why its there. s/setenv/putenv/ for portability.
+ See Bug #51767.
+
2003-12-08 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-utils.c (header_decode_rfc2184_param): Revert the
diff --git a/camel/camel-stream-process.c b/camel/camel-stream-process.c
index 6a48ae40d0..293cd2b69f 100644
--- a/camel/camel-stream-process.c
+++ b/camel/camel-stream-process.c
@@ -33,6 +33,7 @@
#include <sys/wait.h>
#include <fcntl.h>
#include <unistd.h>
+#include <stdlib.h>
#include <errno.h>
#include <limits.h>
#include <stdio.h>
@@ -224,18 +225,8 @@ do_exec_command (int fd, const char *command, char **env)
/* Set up child's environment. We _add_ to it, don't use execle,
because otherwise we'd destroy stuff like SSH_AUTH_SOCK etc. */
- for ( ; env && *env; env++) {
- char *eq = strchr (*env, '=');
-
- if (!eq) {
- unsetenv (*env);
- continue;
- }
-
- *eq++ = '\0';
-
- setenv (*env, eq, 1);
- }
+ for ( ; env && *env; env++)
+ putenv(*env);
execl ("/bin/sh", "/bin/sh", "-c", command, NULL);