From d6766c71a95b35ef12b9adbec9d32b0ca91fba74 Mon Sep 17 00:00:00 2001
From: Denis Vlasenko
Date: Fri, 8 Jun 2007 16:18:15 +0000
Subject: mdev: microscopic enhancement, should change nothing

---
 util-linux/mdev.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

(limited to 'util-linux')

diff --git a/util-linux/mdev.c b/util-linux/mdev.c
index cc729e7..d1b2684 100644
--- a/util-linux/mdev.c
+++ b/util-linux/mdev.c
@@ -178,17 +178,15 @@ static void make_device(char *path, int delete)
 		if (ENABLE_FEATURE_MDEV_CONF) chown(device_name, uid, gid);
 	}
 	if (command) {
-		int rc;
-		char *s;
-
-		s = xasprintf("MDEV=%s", device_name);
-		putenv(s);
-		rc = system(command);
-		s[4] = 0;
+		/* setenv will leak memory, so use putenv */
+		char *s = xasprintf("MDEV=%s", device_name);
 		putenv(s);
+		if (system(command) == -1)
+			bb_perror_msg_and_die("cannot run %s", command);
+		s[4] = '\0';
+		unsetenv(s);
 		free(s);
 		free(command);
-		if (rc == -1) bb_perror_msg_and_die("cannot run %s", command);
 	}
 	if (delete) unlink(device_name);
 }
-- 
cgit v1.1