libbb: introduce and use chdir_or_warn()

function                                             old     new   delta
chdir_or_warn                                          -      37     +37
send_cgi_and_exit                                    720     711      -9
xchdir                                                27      15     -12
setup_environment                                    233     217     -16
fork_job                                             449     433     -16
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/4 up/down: 37/-53)            Total: -16 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2022-01-13 12:56:10 +01:00
parent 931c55f9e2
commit c2788f88f4
5 changed files with 13 additions and 8 deletions

View file

@ -415,11 +415,18 @@ void FAST_FUNC xseteuid(uid_t euid)
if (seteuid(euid)) bb_simple_perror_msg_and_die("seteuid");
}
int FAST_FUNC chdir_or_warn(const char *path)
{
int r = chdir(path);
if (r != 0)
bb_perror_msg("can't change directory to '%s'", path);
return r;
}
// Die if we can't chdir to a new path.
void FAST_FUNC xchdir(const char *path)
{
if (chdir(path))
bb_perror_msg_and_die("can't change directory to '%s'", path);
if (chdir_or_warn(path) != 0)
xfunc_die();
}
void FAST_FUNC xfchdir(int fd)