mirror of
https://github.com/sheumann/hush.git
synced 2024-12-21 08:29:45 +00:00
*: 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>
This commit is contained in:
parent
da75f44844
commit
dd8adde386
@ -408,6 +408,7 @@ void xchdir(const char *path) FAST_FUNC;
|
||||
void xchroot(const char *path) FAST_FUNC;
|
||||
void xsetenv(const char *key, const char *value) FAST_FUNC;
|
||||
void bb_unsetenv(const char *key) FAST_FUNC;
|
||||
void bb_unsetenv_and_free(char *key) FAST_FUNC;
|
||||
void xunlink(const char *pathname) FAST_FUNC;
|
||||
void xstat(const char *pathname, struct stat *buf) FAST_FUNC;
|
||||
int xopen(const char *pathname, int flags) FAST_FUNC;
|
||||
|
@ -323,6 +323,11 @@ void FAST_FUNC bb_unsetenv(const char *var)
|
||||
free(tp);
|
||||
}
|
||||
|
||||
void FAST_FUNC bb_unsetenv_and_free(char *var)
|
||||
{
|
||||
bb_unsetenv(var);
|
||||
free(var);
|
||||
}
|
||||
|
||||
// Die with an error message if we can't set gid. (Because resource limits may
|
||||
// limit this user to a given number of processes, and if that fills up the
|
||||
|
@ -264,8 +264,7 @@ static void safe_setenv(char **pvar_val, const char *var, const char *val)
|
||||
char *var_val = *pvar_val;
|
||||
|
||||
if (var_val) {
|
||||
bb_unsetenv(var_val);
|
||||
free(var_val);
|
||||
bb_unsetenv_and_free(var_val);
|
||||
}
|
||||
*pvar_val = xasprintf("%s=%s", var, val);
|
||||
putenv(*pvar_val);
|
||||
|
@ -85,8 +85,7 @@ static void undo_xsetenv(void)
|
||||
char **pp = env_cur = &env_var[0];
|
||||
while (*pp) {
|
||||
char *var = *pp;
|
||||
bb_unsetenv(var);
|
||||
free(var);
|
||||
bb_unsetenv_and_free(var);
|
||||
*pp++ = NULL;
|
||||
}
|
||||
}
|
||||
|
@ -327,8 +327,7 @@ static void udhcp_run_script(struct dhcp_packet *packet, const char *name)
|
||||
|
||||
for (curr = envp; *curr; curr++) {
|
||||
log2(" %s", *curr);
|
||||
bb_unsetenv(*curr);
|
||||
free(*curr);
|
||||
bb_unsetenv_and_free(*curr);
|
||||
}
|
||||
free(envp);
|
||||
}
|
||||
|
@ -374,10 +374,8 @@ static void make_device(char *path, int delete)
|
||||
putenv(s1);
|
||||
if (system(command) == -1)
|
||||
bb_perror_msg("can't run '%s'", command);
|
||||
unsetenv("SUBSYSTEM");
|
||||
free(s1);
|
||||
unsetenv("MDEV");
|
||||
free(s);
|
||||
bb_unsetenv_and_free(s1);
|
||||
bb_unsetenv_and_free(s);
|
||||
free(command);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user