Add a new xfunction that prints an error message and exits if the underlying fchdir() fails.
Signed-off-by: Bartosz Golaszewski <[email protected]> --- include/libbb.h | 1 + libbb/xfuncs_printf.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/include/libbb.h b/include/libbb.h index 0713917..3477525 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -503,6 +503,7 @@ void xsetuid(uid_t uid) FAST_FUNC; void xsetegid(gid_t egid) FAST_FUNC; void xseteuid(uid_t euid) FAST_FUNC; void xchdir(const char *path) FAST_FUNC; +void xfchdir(int fd) 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; diff --git a/libbb/xfuncs_printf.c b/libbb/xfuncs_printf.c index 7348890..1aa3874 100644 --- a/libbb/xfuncs_printf.c +++ b/libbb/xfuncs_printf.c @@ -390,6 +390,12 @@ void FAST_FUNC xchdir(const char *path) bb_perror_msg_and_die("can't change directory to '%s'", path); } +void FAST_FUNC xfchdir(int fd) +{ + if (fchdir(fd)) + bb_perror_msg_and_die("can't change directory by descriptor"); +} + void FAST_FUNC xchroot(const char *path) { if (chroot(path)) -- 2.1.4 _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
