*: introduce and use bb_unsetenv_and_free
No binary (build failed)
—
(log yok)
| @@ -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); | |
| } | |