mirror of
https://github.com/sheumann/hush.git
synced 2025-01-02 09:31:26 +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 xchroot(const char *path) FAST_FUNC;
|
||||||
void xsetenv(const char *key, const char *value) FAST_FUNC;
|
void xsetenv(const char *key, const char *value) FAST_FUNC;
|
||||||
void bb_unsetenv(const char *key) 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 xunlink(const char *pathname) FAST_FUNC;
|
||||||
void xstat(const char *pathname, struct stat *buf) FAST_FUNC;
|
void xstat(const char *pathname, struct stat *buf) FAST_FUNC;
|
||||||
int xopen(const char *pathname, int flags) 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);
|
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
|
// 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
|
// 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;
|
char *var_val = *pvar_val;
|
||||||
|
|
||||||
if (var_val) {
|
if (var_val) {
|
||||||
bb_unsetenv(var_val);
|
bb_unsetenv_and_free(var_val);
|
||||||
free(var_val);
|
|
||||||
}
|
}
|
||||||
*pvar_val = xasprintf("%s=%s", var, val);
|
*pvar_val = xasprintf("%s=%s", var, val);
|
||||||
putenv(*pvar_val);
|
putenv(*pvar_val);
|
||||||
|
@ -85,8 +85,7 @@ static void undo_xsetenv(void)
|
|||||||
char **pp = env_cur = &env_var[0];
|
char **pp = env_cur = &env_var[0];
|
||||||
while (*pp) {
|
while (*pp) {
|
||||||
char *var = *pp;
|
char *var = *pp;
|
||||||
bb_unsetenv(var);
|
bb_unsetenv_and_free(var);
|
||||||
free(var);
|
|
||||||
*pp++ = NULL;
|
*pp++ = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -327,8 +327,7 @@ static void udhcp_run_script(struct dhcp_packet *packet, const char *name)
|
|||||||
|
|
||||||
for (curr = envp; *curr; curr++) {
|
for (curr = envp; *curr; curr++) {
|
||||||
log2(" %s", *curr);
|
log2(" %s", *curr);
|
||||||
bb_unsetenv(*curr);
|
bb_unsetenv_and_free(*curr);
|
||||||
free(*curr);
|
|
||||||
}
|
}
|
||||||
free(envp);
|
free(envp);
|
||||||
}
|
}
|
||||||
|
@ -374,10 +374,8 @@ static void make_device(char *path, int delete)
|
|||||||
putenv(s1);
|
putenv(s1);
|
||||||
if (system(command) == -1)
|
if (system(command) == -1)
|
||||||
bb_perror_msg("can't run '%s'", command);
|
bb_perror_msg("can't run '%s'", command);
|
||||||
unsetenv("SUBSYSTEM");
|
bb_unsetenv_and_free(s1);
|
||||||
free(s1);
|
bb_unsetenv_and_free(s);
|
||||||
unsetenv("MDEV");
|
|
||||||
free(s);
|
|
||||||
free(command);
|
free(command);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user