diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-06-24 05:00:50 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-06-24 05:00:50 +0200 |
commit | dd8adde3866ac22bd510348b733bb29e1662ac6d (patch) | |
tree | 2408903bb476f50821ed5edbe5b13abafe4a5439 | |
parent | da75f4484469ca0122b80de69bf3b75a6be71efc (diff) | |
download | busybox-w32-dd8adde3866ac22bd510348b733bb29e1662ac6d.tar.gz busybox-w32-dd8adde3866ac22bd510348b733bb29e1662ac6d.tar.bz2 busybox-w32-dd8adde3866ac22bd510348b733bb29e1662ac6d.zip |
*: introduce and use bb_unsetenv_and_free
function old new delta
bb_unsetenv_and_free - 17 +17
tcpudpsvd_main 1819 1810 -9
safe_setenv 58 47 -11
udhcp_run_script 630 616 -14
make_device 1683 1663 -20
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/4 up/down: 17/-54) Total: -37 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | include/libbb.h | 1 | ||||
-rw-r--r-- | libbb/xfuncs_printf.c | 5 | ||||
-rw-r--r-- | miscutils/crond.c | 3 | ||||
-rw-r--r-- | networking/tcpudp.c | 3 | ||||
-rw-r--r-- | networking/udhcp/dhcpc.c | 3 | ||||
-rw-r--r-- | util-linux/mdev.c | 6 |
6 files changed, 11 insertions, 10 deletions
diff --git a/include/libbb.h b/include/libbb.h index 5e962fdb6..58719a85b 100644 --- a/include/libbb.h +++ b/include/libbb.h | |||
@@ -408,6 +408,7 @@ void xchdir(const char *path) FAST_FUNC; | |||
408 | void xchroot(const char *path) FAST_FUNC; | 408 | void xchroot(const char *path) FAST_FUNC; |
409 | void xsetenv(const char *key, const char *value) FAST_FUNC; | 409 | void xsetenv(const char *key, const char *value) FAST_FUNC; |
410 | void bb_unsetenv(const char *key) FAST_FUNC; | 410 | void bb_unsetenv(const char *key) FAST_FUNC; |
411 | void bb_unsetenv_and_free(char *key) FAST_FUNC; | ||
411 | void xunlink(const char *pathname) FAST_FUNC; | 412 | void xunlink(const char *pathname) FAST_FUNC; |
412 | void xstat(const char *pathname, struct stat *buf) FAST_FUNC; | 413 | void xstat(const char *pathname, struct stat *buf) FAST_FUNC; |
413 | int xopen(const char *pathname, int flags) FAST_FUNC; | 414 | int xopen(const char *pathname, int flags) FAST_FUNC; |
diff --git a/libbb/xfuncs_printf.c b/libbb/xfuncs_printf.c index 03aeaaa38..f021493b1 100644 --- a/libbb/xfuncs_printf.c +++ b/libbb/xfuncs_printf.c | |||
@@ -323,6 +323,11 @@ void FAST_FUNC bb_unsetenv(const char *var) | |||
323 | free(tp); | 323 | free(tp); |
324 | } | 324 | } |
325 | 325 | ||
326 | void FAST_FUNC bb_unsetenv_and_free(char *var) | ||
327 | { | ||
328 | bb_unsetenv(var); | ||
329 | free(var); | ||
330 | } | ||
326 | 331 | ||
327 | // Die with an error message if we can't set gid. (Because resource limits may | 332 | // Die with an error message if we can't set gid. (Because resource limits may |
328 | // limit this user to a given number of processes, and if that fills up the | 333 | // limit this user to a given number of processes, and if that fills up the |
diff --git a/miscutils/crond.c b/miscutils/crond.c index f51159233..4a3103cb9 100644 --- a/miscutils/crond.c +++ b/miscutils/crond.c | |||
@@ -264,8 +264,7 @@ static void safe_setenv(char **pvar_val, const char *var, const char *val) | |||
264 | char *var_val = *pvar_val; | 264 | char *var_val = *pvar_val; |
265 | 265 | ||
266 | if (var_val) { | 266 | if (var_val) { |
267 | bb_unsetenv(var_val); | 267 | bb_unsetenv_and_free(var_val); |
268 | free(var_val); | ||
269 | } | 268 | } |
270 | *pvar_val = xasprintf("%s=%s", var, val); | 269 | *pvar_val = xasprintf("%s=%s", var, val); |
271 | putenv(*pvar_val); | 270 | putenv(*pvar_val); |
diff --git a/networking/tcpudp.c b/networking/tcpudp.c index 42845df0e..b32fad624 100644 --- a/networking/tcpudp.c +++ b/networking/tcpudp.c | |||
@@ -85,8 +85,7 @@ static void undo_xsetenv(void) | |||
85 | char **pp = env_cur = &env_var[0]; | 85 | char **pp = env_cur = &env_var[0]; |
86 | while (*pp) { | 86 | while (*pp) { |
87 | char *var = *pp; | 87 | char *var = *pp; |
88 | bb_unsetenv(var); | 88 | bb_unsetenv_and_free(var); |
89 | free(var); | ||
90 | *pp++ = NULL; | 89 | *pp++ = NULL; |
91 | } | 90 | } |
92 | } | 91 | } |
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c index c2b21c695..de1b79844 100644 --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c | |||
@@ -327,8 +327,7 @@ static void udhcp_run_script(struct dhcp_packet *packet, const char *name) | |||
327 | 327 | ||
328 | for (curr = envp; *curr; curr++) { | 328 | for (curr = envp; *curr; curr++) { |
329 | log2(" %s", *curr); | 329 | log2(" %s", *curr); |
330 | bb_unsetenv(*curr); | 330 | bb_unsetenv_and_free(*curr); |
331 | free(*curr); | ||
332 | } | 331 | } |
333 | free(envp); | 332 | free(envp); |
334 | } | 333 | } |
diff --git a/util-linux/mdev.c b/util-linux/mdev.c index 217075660..b4042c07e 100644 --- a/util-linux/mdev.c +++ b/util-linux/mdev.c | |||
@@ -374,10 +374,8 @@ static void make_device(char *path, int delete) | |||
374 | putenv(s1); | 374 | putenv(s1); |
375 | if (system(command) == -1) | 375 | if (system(command) == -1) |
376 | bb_perror_msg("can't run '%s'", command); | 376 | bb_perror_msg("can't run '%s'", command); |
377 | unsetenv("SUBSYSTEM"); | 377 | bb_unsetenv_and_free(s1); |
378 | free(s1); | 378 | bb_unsetenv_and_free(s); |
379 | unsetenv("MDEV"); | ||
380 | free(s); | ||
381 | free(command); | 379 | free(command); |
382 | } | 380 | } |
383 | 381 | ||