lpd: spool mode added by Vladimir
lpr: more robust error reporting
*: introduce and use xchroot
libbb: full_read/write now will report partial data counts prior to error
isdirectory.c: style fixes
lpd_main 249 486 +237
xchroot - 29 +29
get_response_or_say_and_die 110 139 +29
full_write 52 60 +8
full_read 55 63 +8
static.newline 1 - -1
switch_root_main 404 400 -4
chpst_main 1089 1079 -10
getopt32 1370 1359 -11
chroot_main 115 101 -14
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 4/4 up/down: 311/-40) Total: 271 bytes
text data bss dec hex filename
798472 728 7484 806684 c4f1c busybox_old
798775 728 7484 806987 c504b busybox_unstripped
diff --git a/libbb/xfuncs.c b/libbb/xfuncs.c
index 17760a3..18e696a 100644
--- a/libbb/xfuncs.c
+++ b/libbb/xfuncs.c
@@ -577,6 +577,12 @@
bb_perror_msg_and_die("chdir(%s)", path);
}
+void xchroot(const char *path)
+{
+ if (chroot(path))
+ bb_perror_msg_and_die("can't change root directory to %s", path);
+}
+
// Print a warning message if opendir() fails, but don't die.
DIR *warn_opendir(const char *path)
{