diff options
Diffstat (limited to 'libbb/xfuncs_printf.c')
-rw-r--r-- | libbb/xfuncs_printf.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/libbb/xfuncs_printf.c b/libbb/xfuncs_printf.c index fc630d1..842d10c 100644 --- a/libbb/xfuncs_printf.c +++ b/libbb/xfuncs_printf.c @@ -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) |