libbb: reduce the overhead of single parameter bb_error_msg() calls
Back in 2007, commit 0c97c9d437
("'simple' error message functions by
Loic Grenie") introduced bb_simple_perror_msg() to allow for a lower
overhead call to bb_perror_msg() when only a string was being printed
with no parameters. This saves space for some CPU architectures because
it avoids the overhead of a call to a variadic function. However there
has never been a simple version of bb_error_msg(), and since 2007 many
new calls to bb_perror_msg() have been added that only take a single
parameter and so could have been using bb_simple_perror_message().
This changeset introduces 'simple' versions of bb_info_msg(),
bb_error_msg(), bb_error_msg_and_die(), bb_herror_msg() and
bb_herror_msg_and_die(), and replaces all calls that only take a
single parameter, or use something like ("%s", arg), with calls to the
corresponding 'simple' version.
Since it is likely that single parameter calls to the variadic functions
may be accidentally reintroduced in the future a new debugging config
option WARN_SIMPLE_MSG has been introduced. This uses some macro magic
which will cause any such calls to generate a warning, but this is
turned off by default to avoid use of the unpleasant macros in normal
circumstances.
This is a large changeset due to the number of calls that have been
replaced. The only files that contain changes other than simple
substitution of function calls are libbb.h, libbb/herror_msg.c,
libbb/verror_msg.c and libbb/xfuncs_printf.c. In miscutils/devfsd.c,
networking/udhcp/common.h and util-linux/mdev.c additonal macros have
been added for logging so that single parameter and multiple parameter
logging variants exist.
The amount of space saved varies considerably by architecture, and was
found to be as follows (for 'defconfig' using GCC 7.4):
Arm: -92 bytes
MIPS: -52 bytes
PPC: -1836 bytes
x86_64: -938 bytes
Note that for the MIPS architecture only an exception had to be made
disabling the 'simple' calls for 'udhcp' (in networking/udhcp/common.h)
because it made these files larger on MIPS.
Signed-off-by: James Byrne <james.byrne@origamienergy.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
caecfdc20d
commit
6937487be7
13
Config.in
13
Config.in
@ -661,6 +661,19 @@ config WERROR
|
||||
|
||||
Most people should answer N.
|
||||
|
||||
config WARN_SIMPLE_MSG
|
||||
bool "Warn about single parameter bb_xx_msg calls"
|
||||
default n
|
||||
help
|
||||
This will cause warnings to be shown for any instances of
|
||||
bb_error_msg(), bb_error_msg_and_die(), bb_perror_msg(),
|
||||
bb_perror_msg_and_die(), bb_herror_msg() or bb_herror_msg_and_die()
|
||||
being called with a single parameter. In these cases the equivalent
|
||||
bb_simple_xx_msg function should be used instead.
|
||||
Note that use of STRERROR_FMT may give false positives.
|
||||
|
||||
If you aren't developing busybox, say N here.
|
||||
|
||||
choice
|
||||
prompt "Additional debugging library"
|
||||
default NO_DEBUG_LIB
|
||||
|
@ -114,7 +114,7 @@ int FAST_FUNC bbunpack(char **argv,
|
||||
|
||||
/* Check that the input is sane */
|
||||
if (!(option_mask32 & BBUNPK_OPT_FORCE) && isatty(STDIN_FILENO)) {
|
||||
bb_error_msg_and_die("compressed data not read from terminal, "
|
||||
bb_simple_error_msg_and_die("compressed data not read from terminal, "
|
||||
"use -f to force it");
|
||||
}
|
||||
|
||||
|
@ -145,7 +145,7 @@ IF_DESKTOP(long long) int bz_write(bz_stream *strm, void* rbuf, ssize_t rlen, vo
|
||||
if (n2 != n) {
|
||||
if (n2 >= 0)
|
||||
errno = 0; /* prevent bogus error message */
|
||||
bb_perror_msg(n2 >= 0 ? "short write" : bb_msg_write_error);
|
||||
bb_simple_perror_msg(n2 >= 0 ? "short write" : bb_msg_write_error);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -187,7 +187,7 @@ IF_DESKTOP(long long) int FAST_FUNC compressStream(transformer_state_t *xstate U
|
||||
while (1) {
|
||||
count = full_read(STDIN_FILENO, rbuf, IOBUF_SIZE);
|
||||
if (count < 0) {
|
||||
bb_perror_msg(bb_msg_read_error);
|
||||
bb_simple_perror_msg(bb_msg_read_error);
|
||||
total = -1;
|
||||
break;
|
||||
}
|
||||
|
@ -487,7 +487,7 @@ static void add_split_dependencies(common_node_t *parent_node, const char *whole
|
||||
} else if (strncmp(version, ">=", offset_ch) == 0) {
|
||||
edge->operator = VER_MORE_EQUAL;
|
||||
} else {
|
||||
bb_error_msg_and_die("illegal operator");
|
||||
bb_simple_error_msg_and_die("illegal operator");
|
||||
}
|
||||
}
|
||||
/* skip to start of version numbers */
|
||||
@ -730,7 +730,7 @@ static void set_status(const unsigned status_node_num, const char *new_value, co
|
||||
status = new_value_num;
|
||||
break;
|
||||
default:
|
||||
bb_error_msg_and_die("DEBUG ONLY: this shouldnt happen");
|
||||
bb_simple_error_msg_and_die("DEBUG ONLY: this shouldnt happen");
|
||||
}
|
||||
|
||||
new_status = xasprintf("%s %s %s", name_hashtable[want], name_hashtable[flag], name_hashtable[status]);
|
||||
@ -944,10 +944,10 @@ static void write_status_file(deb_file_t **deb_file)
|
||||
/* Create a separate backfile to dpkg */
|
||||
if (rename("/var/lib/dpkg/status", "/var/lib/dpkg/status.udeb.bak") == -1) {
|
||||
if (errno != ENOENT)
|
||||
bb_error_msg_and_die("can't create backup status file");
|
||||
bb_simple_error_msg_and_die("can't create backup status file");
|
||||
/* Its ok if renaming the status file fails because status
|
||||
* file doesn't exist, maybe we are starting from scratch */
|
||||
bb_error_msg("no status file found, creating new one");
|
||||
bb_simple_error_msg("no status file found, creating new one");
|
||||
}
|
||||
|
||||
xrename("/var/lib/dpkg/status.udeb", "/var/lib/dpkg/status");
|
||||
@ -1816,7 +1816,7 @@ int dpkg_main(int argc UNUSED_PARAM, char **argv)
|
||||
init_archive_deb_control(archive_handle);
|
||||
deb_file[deb_count]->control_file = deb_extract_control_file_to_buffer(archive_handle, control_list);
|
||||
if (deb_file[deb_count]->control_file == NULL) {
|
||||
bb_error_msg_and_die("can't extract control file");
|
||||
bb_simple_error_msg_and_die("can't extract control file");
|
||||
}
|
||||
deb_file[deb_count]->filename = xstrdup(argv[0]);
|
||||
package_num = fill_package_struct(deb_file[deb_count]->control_file);
|
||||
@ -1879,13 +1879,13 @@ int dpkg_main(int argc UNUSED_PARAM, char **argv)
|
||||
argv++;
|
||||
}
|
||||
if (!deb_count)
|
||||
bb_error_msg_and_die("no package files specified");
|
||||
bb_simple_error_msg_and_die("no package files specified");
|
||||
deb_file[deb_count] = NULL;
|
||||
|
||||
/* Check that the deb file arguments are installable */
|
||||
if (!(opt & OPT_force_ignore_depends)) {
|
||||
if (!check_deps(deb_file, 0 /*, deb_count*/)) {
|
||||
bb_error_msg_and_die("dependency check failed");
|
||||
bb_simple_error_msg_and_die("dependency check failed");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -99,7 +99,7 @@ aa: 85.1% -- replaced with aa.gz
|
||||
/* Diagnostic functions */
|
||||
#ifdef DEBUG
|
||||
static int verbose;
|
||||
# define Assert(cond,msg) { if (!(cond)) bb_error_msg(msg); }
|
||||
# define Assert(cond,msg) { if (!(cond)) bb_simple_error_msg(msg); }
|
||||
# define Trace(x) fprintf x
|
||||
# define Tracev(x) {if (verbose) fprintf x; }
|
||||
# define Tracevv(x) {if (verbose > 1) fprintf x; }
|
||||
@ -787,7 +787,7 @@ static void check_match(IPos start, IPos match, int length)
|
||||
/* check that the match is indeed a match */
|
||||
if (memcmp(G1.window + match, G1.window + start, length) != 0) {
|
||||
bb_error_msg(" start %d, match %d, length %d", start, match, length);
|
||||
bb_error_msg("invalid match");
|
||||
bb_simple_error_msg("invalid match");
|
||||
}
|
||||
if (verbose > 1) {
|
||||
bb_error_msg("\\[%d,%d]", start - match, length);
|
||||
|
@ -103,7 +103,7 @@ void FAST_FUNC data_extract_all(archive_handle_t *archive_handle)
|
||||
struct stat existing_sb;
|
||||
if (lstat(dst_name, &existing_sb) == -1) {
|
||||
if (errno != ENOENT) {
|
||||
bb_perror_msg_and_die("can't stat old file");
|
||||
bb_simple_perror_msg_and_die("can't stat old file");
|
||||
}
|
||||
}
|
||||
else if (existing_sb.st_mtime >= file_header->mtime) {
|
||||
@ -207,7 +207,7 @@ void FAST_FUNC data_extract_all(archive_handle_t *archive_handle)
|
||||
}
|
||||
break;
|
||||
default:
|
||||
bb_error_msg_and_die("unrecognized file type");
|
||||
bb_simple_error_msg_and_die("unrecognized file type");
|
||||
}
|
||||
|
||||
if (!S_ISLNK(file_header->mode)) {
|
||||
|
@ -817,7 +817,7 @@ unpack_bz2_stream(transformer_state_t *xstate)
|
||||
break;
|
||||
}
|
||||
if (bd->headerCRC != bd->totalCRC) {
|
||||
bb_error_msg("CRC error");
|
||||
bb_simple_error_msg("CRC error");
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1012,7 +1012,7 @@ inflate_unzip_internal(STATE_PARAM transformer_state_t *xstate)
|
||||
error_msg = "corrupted data";
|
||||
if (setjmp(error_jmp)) {
|
||||
/* Error from deep inside zip machinery */
|
||||
bb_error_msg(error_msg);
|
||||
bb_simple_error_msg(error_msg);
|
||||
n = -1;
|
||||
goto ret;
|
||||
}
|
||||
@ -1085,7 +1085,7 @@ static int top_up(STATE_PARAM unsigned n)
|
||||
bytebuffer_offset = 0;
|
||||
bytebuffer_size = full_read(gunzip_src_fd, &bytebuffer[count], bytebuffer_max - count);
|
||||
if ((int)bytebuffer_size < 0) {
|
||||
bb_error_msg(bb_msg_read_error);
|
||||
bb_simple_error_msg(bb_msg_read_error);
|
||||
return 0;
|
||||
}
|
||||
bytebuffer_size += count;
|
||||
@ -1211,7 +1211,7 @@ unpack_gz_stream(transformer_state_t *xstate)
|
||||
|
||||
if (full_read(xstate->src_fd, &magic2, 2) != 2) {
|
||||
bad_magic:
|
||||
bb_error_msg("invalid magic");
|
||||
bb_simple_error_msg("invalid magic");
|
||||
return -1;
|
||||
}
|
||||
if (magic2 == COMPRESS_MAGIC) {
|
||||
@ -1233,7 +1233,7 @@ unpack_gz_stream(transformer_state_t *xstate)
|
||||
|
||||
again:
|
||||
if (!check_header_gzip(PASS_STATE xstate)) {
|
||||
bb_error_msg("corrupted data");
|
||||
bb_simple_error_msg("corrupted data");
|
||||
total = -1;
|
||||
goto ret;
|
||||
}
|
||||
@ -1246,7 +1246,7 @@ unpack_gz_stream(transformer_state_t *xstate)
|
||||
total += n;
|
||||
|
||||
if (!top_up(PASS_STATE 8)) {
|
||||
bb_error_msg("corrupted data");
|
||||
bb_simple_error_msg("corrupted data");
|
||||
total = -1;
|
||||
goto ret;
|
||||
}
|
||||
@ -1254,7 +1254,7 @@ unpack_gz_stream(transformer_state_t *xstate)
|
||||
/* Validate decompression - crc */
|
||||
v32 = buffer_read_le_u32(PASS_STATE_ONLY);
|
||||
if ((~gunzip_crc) != v32) {
|
||||
bb_error_msg("crc error");
|
||||
bb_simple_error_msg("crc error");
|
||||
total = -1;
|
||||
goto ret;
|
||||
}
|
||||
@ -1262,7 +1262,7 @@ unpack_gz_stream(transformer_state_t *xstate)
|
||||
/* Validate decompression - size */
|
||||
v32 = buffer_read_le_u32(PASS_STATE_ONLY);
|
||||
if ((uint32_t)gunzip_bytes_out != v32) {
|
||||
bb_error_msg("incorrect length");
|
||||
bb_simple_error_msg("incorrect length");
|
||||
total = -1;
|
||||
}
|
||||
|
||||
|
@ -113,7 +113,7 @@ unpack_Z_stream(transformer_state_t *xstate)
|
||||
/* xread isn't good here, we have to return - caller may want
|
||||
* to do some cleanup (e.g. delete incomplete unpacked file etc) */
|
||||
if (full_read(xstate->src_fd, inbuf, 1) != 1) {
|
||||
bb_error_msg("short read");
|
||||
bb_simple_error_msg("short read");
|
||||
goto err;
|
||||
}
|
||||
|
||||
@ -166,7 +166,7 @@ unpack_Z_stream(transformer_state_t *xstate)
|
||||
if (insize < (int) (IBUFSIZ + 64) - IBUFSIZ) {
|
||||
rsize = safe_read(xstate->src_fd, inbuf + insize, IBUFSIZ);
|
||||
if (rsize < 0)
|
||||
bb_error_msg_and_die(bb_msg_read_error);
|
||||
bb_simple_error_msg_and_die(bb_msg_read_error);
|
||||
insize += rsize;
|
||||
}
|
||||
|
||||
@ -200,7 +200,7 @@ unpack_Z_stream(transformer_state_t *xstate)
|
||||
|
||||
if (oldcode == -1) {
|
||||
if (code >= 256)
|
||||
bb_error_msg_and_die("corrupted data"); /* %ld", code); */
|
||||
bb_simple_error_msg_and_die("corrupted data"); /* %ld", code); */
|
||||
oldcode = code;
|
||||
finchar = (int) oldcode;
|
||||
outbuf[outpos++] = (unsigned char) finchar;
|
||||
@ -236,7 +236,7 @@ unpack_Z_stream(transformer_state_t *xstate)
|
||||
insize, posbits, p[-1], p[0], p[1], p[2], p[3],
|
||||
(posbits & 07));
|
||||
*/
|
||||
bb_error_msg("corrupted data");
|
||||
bb_simple_error_msg("corrupted data");
|
||||
goto err;
|
||||
}
|
||||
|
||||
@ -247,7 +247,7 @@ unpack_Z_stream(transformer_state_t *xstate)
|
||||
/* Generate output characters in reverse order */
|
||||
while (code >= 256) {
|
||||
if (stackp <= &htabof(0))
|
||||
bb_error_msg_and_die("corrupted data");
|
||||
bb_simple_error_msg_and_die("corrupted data");
|
||||
*--stackp = tab_suffixof(code);
|
||||
code = tab_prefixof(code);
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ static void rc_read(rc_t *rc)
|
||||
//TODO: return -1 instead
|
||||
//This will make unlzma delete broken unpacked file on unpack errors
|
||||
if (buffer_size <= 0)
|
||||
bb_error_msg_and_die("unexpected EOF");
|
||||
bb_simple_error_msg_and_die("unexpected EOF");
|
||||
rc->buffer_end = RC_BUFFER + buffer_size;
|
||||
rc->ptr = RC_BUFFER;
|
||||
}
|
||||
@ -234,7 +234,7 @@ unpack_lzma_stream(transformer_state_t *xstate)
|
||||
if (full_read(xstate->src_fd, &header, sizeof(header)) != sizeof(header)
|
||||
|| header.pos >= (9 * 5 * 5)
|
||||
) {
|
||||
bb_error_msg("bad lzma header");
|
||||
bb_simple_error_msg("bad lzma header");
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -513,7 +513,7 @@ unpack_lzma_stream(transformer_state_t *xstate)
|
||||
* potentially more detailed information).
|
||||
* Do not fail silently.
|
||||
*/
|
||||
bb_error_msg("corrupted data");
|
||||
bb_simple_error_msg("corrupted data");
|
||||
total_written = -1; /* failure */
|
||||
}
|
||||
rc_free(rc);
|
||||
|
@ -74,7 +74,7 @@ unpack_xz_stream(transformer_state_t *xstate)
|
||||
if (iobuf.in_pos == iobuf.in_size) {
|
||||
int rd = safe_read(xstate->src_fd, membuf, BUFSIZ);
|
||||
if (rd < 0) {
|
||||
bb_error_msg(bb_msg_read_error);
|
||||
bb_simple_error_msg(bb_msg_read_error);
|
||||
total = -1;
|
||||
break;
|
||||
}
|
||||
@ -123,7 +123,7 @@ unpack_xz_stream(transformer_state_t *xstate)
|
||||
continue;
|
||||
}
|
||||
if (xz_result != XZ_OK && xz_result != XZ_UNSUPPORTED_CHECK) {
|
||||
bb_error_msg("corrupted data");
|
||||
bb_simple_error_msg("corrupted data");
|
||||
total = -1;
|
||||
break;
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ static unsigned read_num(char *str, int base, int len)
|
||||
* on misformatted numbers bb_strtou returns all-ones */
|
||||
err = bb_strtou(str, NULL, base);
|
||||
if (err == -1)
|
||||
bb_error_msg_and_die("invalid ar header");
|
||||
bb_simple_error_msg_and_die("invalid ar header");
|
||||
return err;
|
||||
}
|
||||
|
||||
@ -53,7 +53,7 @@ char FAST_FUNC get_header_ar(archive_handle_t *archive_handle)
|
||||
archive_handle->offset += 60;
|
||||
|
||||
if (ar.formatted.magic[0] != '`' || ar.formatted.magic[1] != '\n')
|
||||
bb_error_msg_and_die("invalid ar header");
|
||||
bb_simple_error_msg_and_die("invalid ar header");
|
||||
|
||||
/*
|
||||
* Note that the fields MUST be read in reverse order as
|
||||
@ -86,7 +86,7 @@ char FAST_FUNC get_header_ar(archive_handle_t *archive_handle)
|
||||
return get_header_ar(archive_handle);
|
||||
}
|
||||
#else
|
||||
bb_error_msg_and_die("long filenames not supported");
|
||||
bb_simple_error_msg_and_die("long filenames not supported");
|
||||
#endif
|
||||
}
|
||||
/* Only size is always present, the rest may be missing in
|
||||
@ -107,7 +107,7 @@ char FAST_FUNC get_header_ar(archive_handle_t *archive_handle)
|
||||
long_offset = read_num(&ar.formatted.name[1], 10,
|
||||
sizeof(ar.formatted.name) - 1);
|
||||
if (long_offset >= archive_handle->ar__long_name_size) {
|
||||
bb_error_msg_and_die("can't resolve long filename");
|
||||
bb_simple_error_msg_and_die("can't resolve long filename");
|
||||
}
|
||||
typed->name = xstrdup(archive_handle->ar__long_names + long_offset);
|
||||
} else
|
||||
|
@ -33,14 +33,14 @@ char FAST_FUNC get_header_cpio(archive_handle_t *archive_handle)
|
||||
goto create_hardlinks;
|
||||
}
|
||||
if (size != 110) {
|
||||
bb_error_msg_and_die("short read");
|
||||
bb_simple_error_msg_and_die("short read");
|
||||
}
|
||||
archive_handle->offset += 110;
|
||||
|
||||
if (!is_prefixed_with(&cpio_header[0], "07070")
|
||||
|| (cpio_header[5] != '1' && cpio_header[5] != '2')
|
||||
) {
|
||||
bb_error_msg_and_die("unsupported cpio format, use newc or crc");
|
||||
bb_simple_error_msg_and_die("unsupported cpio format, use newc or crc");
|
||||
}
|
||||
|
||||
if (sscanf(cpio_header + 6,
|
||||
@ -50,7 +50,7 @@ char FAST_FUNC get_header_cpio(archive_handle_t *archive_handle)
|
||||
&inode, &mode, &uid, &gid,
|
||||
&nlink, &mtime, &size,
|
||||
&major, &minor, &namesize) != 10)
|
||||
bb_error_msg_and_die("damaged cpio file");
|
||||
bb_simple_error_msg_and_die("damaged cpio file");
|
||||
file_header->mode = mode;
|
||||
/* "cpio -R USER:GRP" support: */
|
||||
if (archive_handle->cpio__owner.uid != (uid_t)-1L)
|
||||
|
@ -32,7 +32,7 @@ static unsigned long long getOctal(char *str, int len)
|
||||
if (*end != '\0' && *end != ' ') {
|
||||
int8_t first = str[0];
|
||||
if (!(first & 0x80))
|
||||
bb_error_msg_and_die("corrupted octal value in tar header");
|
||||
bb_simple_error_msg_and_die("corrupted octal value in tar header");
|
||||
/*
|
||||
* GNU tar uses "base-256 encoding" for very large numbers.
|
||||
* Encoding is binary, with highest bit always set as a marker
|
||||
@ -100,7 +100,7 @@ static void process_pax_hdr(archive_handle_t *archive_handle, unsigned sz, int g
|
||||
|| errno != EINVAL
|
||||
|| *end != ' '
|
||||
) {
|
||||
bb_error_msg("malformed extended header, skipped");
|
||||
bb_simple_error_msg("malformed extended header, skipped");
|
||||
// More verbose version:
|
||||
//bb_error_msg("malformed extended header at %"OFF_FMT"d, skipped",
|
||||
// archive_handle->offset - (sz + len));
|
||||
@ -194,13 +194,13 @@ char FAST_FUNC get_header_tar(archive_handle_t *archive_handle)
|
||||
* the very first read fails. Grrr.
|
||||
*/
|
||||
if (archive_handle->offset == 0)
|
||||
bb_error_msg("short read");
|
||||
bb_simple_error_msg("short read");
|
||||
/* this merely signals end of archive, not exit(1): */
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if (i != 512) {
|
||||
IF_FEATURE_TAR_AUTODETECT(goto autodetect;)
|
||||
bb_error_msg_and_die("short read");
|
||||
bb_simple_error_msg_and_die("short read");
|
||||
}
|
||||
|
||||
#else
|
||||
@ -243,11 +243,11 @@ char FAST_FUNC get_header_tar(archive_handle_t *archive_handle)
|
||||
goto err;
|
||||
if (setup_unzip_on_fd(archive_handle->src_fd, /*fail_if_not_compressed:*/ 0) != 0)
|
||||
err:
|
||||
bb_error_msg_and_die("invalid tar magic");
|
||||
bb_simple_error_msg_and_die("invalid tar magic");
|
||||
archive_handle->offset = 0;
|
||||
goto again_after_align;
|
||||
#endif
|
||||
bb_error_msg_and_die("invalid tar magic");
|
||||
bb_simple_error_msg_and_die("invalid tar magic");
|
||||
}
|
||||
|
||||
/* Do checksum on headers.
|
||||
@ -282,7 +282,7 @@ char FAST_FUNC get_header_tar(archive_handle_t *archive_handle)
|
||||
if (sum_u != sum
|
||||
IF_FEATURE_TAR_OLDSUN_COMPATIBILITY(&& sum_s != sum)
|
||||
) {
|
||||
bb_error_msg_and_die("invalid tar header checksum");
|
||||
bb_simple_error_msg_and_die("invalid tar header checksum");
|
||||
}
|
||||
|
||||
/* GET_OCTAL trashes subsequent field, therefore we call it
|
||||
|
@ -15,7 +15,7 @@ int FAST_FUNC check_signature16(transformer_state_t *xstate, unsigned magic16)
|
||||
if (!xstate->signature_skipped) {
|
||||
uint16_t magic2;
|
||||
if (full_read(xstate->src_fd, &magic2, 2) != 2 || magic2 != magic16) {
|
||||
bb_error_msg("invalid magic");
|
||||
bb_simple_error_msg("invalid magic");
|
||||
return -1;
|
||||
}
|
||||
xstate->signature_skipped = 2;
|
||||
@ -46,7 +46,7 @@ ssize_t FAST_FUNC transformer_write(transformer_state_t *xstate, const void *buf
|
||||
} else {
|
||||
nwrote = full_write(xstate->dst_fd, buf, bufsize);
|
||||
if (nwrote != (ssize_t)bufsize) {
|
||||
bb_perror_msg("write");
|
||||
bb_simple_perror_msg("write");
|
||||
nwrote = -1;
|
||||
goto ret;
|
||||
}
|
||||
@ -205,7 +205,7 @@ static transformer_state_t *setup_transformer_on_fd(int fd, int fail_if_not_comp
|
||||
|
||||
/* No known magic seen */
|
||||
if (fail_if_not_compressed)
|
||||
bb_error_msg_and_die("no gzip"
|
||||
bb_simple_error_msg_and_die("no gzip"
|
||||
IF_FEATURE_SEAMLESS_BZ2("/bzip2")
|
||||
IF_FEATURE_SEAMLESS_XZ("/xz")
|
||||
" magic");
|
||||
|
@ -13,6 +13,6 @@ void FAST_FUNC seek_by_jump(int fd, off_t amount)
|
||||
if (errno == ESPIPE)
|
||||
seek_by_read(fd, amount);
|
||||
else
|
||||
bb_perror_msg_and_die("seek failure");
|
||||
bb_simple_perror_msg_and_die("seek failure");
|
||||
}
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ void FAST_FUNC unpack_ar_archive(archive_handle_t *ar_archive)
|
||||
|
||||
xread(ar_archive->src_fd, magic, AR_MAGIC_LEN);
|
||||
if (!is_prefixed_with(magic, AR_MAGIC)) {
|
||||
bb_error_msg_and_die("invalid ar magic");
|
||||
bb_simple_error_msg_and_die("invalid ar magic");
|
||||
}
|
||||
ar_archive->offset += AR_MAGIC_LEN;
|
||||
|
||||
|
@ -752,7 +752,7 @@ static FAST_FUNC void lzo_check(
|
||||
*/
|
||||
uint32_t c = fn(init, buf, len);
|
||||
if (c != ref)
|
||||
bb_error_msg_and_die("checksum error");
|
||||
bb_simple_error_msg_and_die("checksum error");
|
||||
}
|
||||
|
||||
/**********************************************************************/
|
||||
@ -785,15 +785,15 @@ static NOINLINE int lzo_decompress(uint32_t h_flags32)
|
||||
/* error if split file */
|
||||
if (dst_len == 0xffffffffL)
|
||||
/* should not happen - not yet implemented */
|
||||
bb_error_msg_and_die("this file is a split lzop file");
|
||||
bb_simple_error_msg_and_die("this file is a split lzop file");
|
||||
|
||||
if (dst_len > MAX_BLOCK_SIZE)
|
||||
bb_error_msg_and_die("corrupted data");
|
||||
bb_simple_error_msg_and_die("corrupted data");
|
||||
|
||||
/* read compressed block size */
|
||||
src_len = read32();
|
||||
if (src_len <= 0 || src_len > dst_len)
|
||||
bb_error_msg_and_die("corrupted data");
|
||||
bb_simple_error_msg_and_die("corrupted data");
|
||||
|
||||
if (dst_len > block_size) {
|
||||
if (b2) {
|
||||
@ -846,7 +846,7 @@ static NOINLINE int lzo_decompress(uint32_t h_flags32)
|
||||
r = lzo1x_decompress_safe(b1, src_len, b2, &d /*, NULL*/);
|
||||
|
||||
if (r != 0 /*LZO_E_OK*/ || dst_len != d) {
|
||||
bb_error_msg_and_die("corrupted data");
|
||||
bb_simple_error_msg_and_die("corrupted data");
|
||||
}
|
||||
dst = b2;
|
||||
} else {
|
||||
@ -913,7 +913,7 @@ static void check_magic(void)
|
||||
unsigned char magic[sizeof(lzop_magic)];
|
||||
xread(0, magic, sizeof(magic));
|
||||
if (memcmp(magic, lzop_magic, sizeof(lzop_magic)) != 0)
|
||||
bb_error_msg_and_die("bad magic number");
|
||||
bb_simple_error_msg_and_die("bad magic number");
|
||||
}
|
||||
|
||||
/**********************************************************************/
|
||||
@ -1049,7 +1049,7 @@ static void lzo_set_method(header_t *h)
|
||||
else if (option_mask32 & OPT_8)
|
||||
level = 8;
|
||||
#else
|
||||
bb_error_msg_and_die("high compression not compiled in");
|
||||
bb_simple_error_msg_and_die("high compression not compiled in");
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -543,7 +543,7 @@ int rpm2cpio_main(int argc UNUSED_PARAM, char **argv)
|
||||
}
|
||||
|
||||
if (bb_copyfd_eof(rpm_fd, STDOUT_FILENO) < 0)
|
||||
bb_error_msg_and_die("error unpacking");
|
||||
bb_simple_error_msg_and_die("error unpacking");
|
||||
|
||||
if (ENABLE_FEATURE_CLEAN_UP) {
|
||||
close(rpm_fd);
|
||||
|
@ -369,7 +369,7 @@ static int writeTarHeader(struct TarBallInfo *tbInfo,
|
||||
/* If it is larger than 100 bytes, bail out */
|
||||
if (header.linkname[sizeof(header.linkname)-1]) {
|
||||
free(lpath);
|
||||
bb_error_msg("names longer than "NAME_SIZE_STR" chars not supported");
|
||||
bb_simple_error_msg("names longer than "NAME_SIZE_STR" chars not supported");
|
||||
return FALSE;
|
||||
}
|
||||
# endif
|
||||
@ -542,7 +542,7 @@ static int FAST_FUNC writeFileToTarball(const char *fileName, struct stat *statb
|
||||
|
||||
# if !ENABLE_FEATURE_TAR_GNU_EXTENSIONS
|
||||
if (strlen(header_name) >= NAME_SIZE) {
|
||||
bb_error_msg("names longer than "NAME_SIZE_STR" chars not supported");
|
||||
bb_simple_error_msg("names longer than "NAME_SIZE_STR" chars not supported");
|
||||
return TRUE;
|
||||
}
|
||||
# endif
|
||||
@ -715,13 +715,13 @@ static NOINLINE int writeTarFile(
|
||||
freeHardLinkInfo(&tbInfo->hlInfoHead);
|
||||
|
||||
if (errorFlag)
|
||||
bb_error_msg("error exit delayed from previous errors");
|
||||
bb_simple_error_msg("error exit delayed from previous errors");
|
||||
|
||||
# if SEAMLESS_COMPRESSION
|
||||
if (gzip) {
|
||||
int status;
|
||||
if (safe_waitpid(-1, &status, 0) == -1)
|
||||
bb_perror_msg("waitpid");
|
||||
bb_simple_perror_msg("waitpid");
|
||||
else if (!WIFEXITED(status) || WEXITSTATUS(status))
|
||||
/* gzip was killed or has exited with nonzero! */
|
||||
errorFlag = TRUE;
|
||||
@ -1150,7 +1150,7 @@ int tar_main(int argc UNUSED_PARAM, char **argv)
|
||||
if (opt & OPT_CREATE) {
|
||||
/* Make sure there is at least one file to tar up */
|
||||
if (tar_handle->accept == NULL)
|
||||
bb_error_msg_and_die("empty archive");
|
||||
bb_simple_error_msg_and_die("empty archive");
|
||||
|
||||
tar_fd = STDOUT_FILENO;
|
||||
/* Mimicking GNU tar 1.15.1: */
|
||||
|
@ -322,7 +322,7 @@ static uint32_t read_next_cdf(uint32_t cdf_offset, cdf_header_t *cdf)
|
||||
static void die_if_bad_fnamesize(unsigned sz)
|
||||
{
|
||||
if (sz > 0xfff) /* more than 4k?! no funny business please */
|
||||
bb_error_msg_and_die("bad archive");
|
||||
bb_simple_error_msg_and_die("bad archive");
|
||||
}
|
||||
|
||||
static void unzip_skip(off_t skip)
|
||||
@ -359,7 +359,7 @@ static void unzip_extract_symlink(llist_t **symlink_placeholders,
|
||||
xread(zip_fd, target, zip->fmt.ucmpsize);
|
||||
} else {
|
||||
#if 1
|
||||
bb_error_msg_and_die("compressed symlink is not supported");
|
||||
bb_simple_error_msg_and_die("compressed symlink is not supported");
|
||||
#else
|
||||
transformer_state_t xstate;
|
||||
init_transformer_state(&xstate);
|
||||
@ -399,10 +399,10 @@ static void unzip_extract(zip_header_t *zip, int dst_fd)
|
||||
if (zip->fmt.method == 8) {
|
||||
/* Method 8 - inflate */
|
||||
if (inflate_unzip(&xstate) < 0)
|
||||
bb_error_msg_and_die("inflate error");
|
||||
bb_simple_error_msg_and_die("inflate error");
|
||||
/* Validate decompression - crc */
|
||||
if (zip->fmt.crc32 != (xstate.crc32 ^ 0xffffffffL)) {
|
||||
bb_error_msg_and_die("crc error");
|
||||
bb_simple_error_msg_and_die("crc error");
|
||||
}
|
||||
}
|
||||
#if ENABLE_FEATURE_UNZIP_BZIP2
|
||||
@ -412,7 +412,7 @@ static void unzip_extract(zip_header_t *zip, int dst_fd)
|
||||
*/
|
||||
xstate.bytes_out = unpack_bz2_stream(&xstate);
|
||||
if (xstate.bytes_out < 0)
|
||||
bb_error_msg_and_die("inflate error");
|
||||
bb_simple_error_msg_and_die("inflate error");
|
||||
}
|
||||
#endif
|
||||
#if ENABLE_FEATURE_UNZIP_LZMA
|
||||
@ -420,7 +420,7 @@ static void unzip_extract(zip_header_t *zip, int dst_fd)
|
||||
/* Not tested yet */
|
||||
xstate.bytes_out = unpack_lzma_stream(&xstate);
|
||||
if (xstate.bytes_out < 0)
|
||||
bb_error_msg_and_die("inflate error");
|
||||
bb_simple_error_msg_and_die("inflate error");
|
||||
}
|
||||
#endif
|
||||
#if ENABLE_FEATURE_UNZIP_XZ
|
||||
@ -428,7 +428,7 @@ static void unzip_extract(zip_header_t *zip, int dst_fd)
|
||||
/* Not tested yet */
|
||||
xstate.bytes_out = unpack_xz_stream(&xstate);
|
||||
if (xstate.bytes_out < 0)
|
||||
bb_error_msg_and_die("inflate error");
|
||||
bb_simple_error_msg_and_die("inflate error");
|
||||
}
|
||||
#endif
|
||||
else {
|
||||
@ -439,7 +439,7 @@ static void unzip_extract(zip_header_t *zip, int dst_fd)
|
||||
if (zip->fmt.ucmpsize != xstate.bytes_out) {
|
||||
/* Don't die. Who knows, maybe len calculation
|
||||
* was botched somewhere. After all, crc matched! */
|
||||
bb_error_msg("bad length");
|
||||
bb_simple_error_msg("bad length");
|
||||
}
|
||||
}
|
||||
|
||||
@ -447,7 +447,7 @@ static void my_fgets80(char *buf80)
|
||||
{
|
||||
fflush_all();
|
||||
if (!fgets(buf80, 80, stdin)) {
|
||||
bb_perror_msg_and_die("can't read standard input");
|
||||
bb_simple_perror_msg_and_die("can't read standard input");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -225,7 +225,7 @@ static void do_loadtable(int fd, unsigned char *inbuf, int tailsz, int fontsize,
|
||||
if (unicode == PSF2_SEPARATOR) {
|
||||
break;
|
||||
} else if (unicode == PSF2_STARTSEQ) {
|
||||
bb_error_msg_and_die("unicode sequences not implemented");
|
||||
bb_simple_error_msg_and_die("unicode sequences not implemented");
|
||||
} else if (unicode >= 0xC0) {
|
||||
if (unicode >= 0xFC)
|
||||
unicode &= 0x01, maxct = 5;
|
||||
@ -239,12 +239,12 @@ static void do_loadtable(int fd, unsigned char *inbuf, int tailsz, int fontsize,
|
||||
unicode &= 0x1F, maxct = 1;
|
||||
do {
|
||||
if (tailsz <= 0 || *inbuf < 0x80 || *inbuf > 0xBF)
|
||||
bb_error_msg_and_die("illegal UTF-8 character");
|
||||
bb_simple_error_msg_and_die("illegal UTF-8 character");
|
||||
--tailsz;
|
||||
unicode = (unicode << 6) + (*inbuf++ & 0x3F);
|
||||
} while (--maxct > 0);
|
||||
} else if (unicode >= 0x80) {
|
||||
bb_error_msg_and_die("illegal UTF-8 character");
|
||||
bb_simple_error_msg_and_die("illegal UTF-8 character");
|
||||
}
|
||||
#else
|
||||
return;
|
||||
@ -281,7 +281,7 @@ static void do_load(int fd, unsigned char *buffer, size_t len)
|
||||
|
||||
if (len >= sizeof(struct psf1_header) && PSF1_MAGIC_OK(psf1h(buffer))) {
|
||||
if (psf1h(buffer)->mode > PSF1_MAXMODE)
|
||||
bb_error_msg_and_die("unsupported psf file mode");
|
||||
bb_simple_error_msg_and_die("unsupported psf file mode");
|
||||
if (psf1h(buffer)->mode & PSF1_MODE512)
|
||||
fontsize = 512;
|
||||
if (psf1h(buffer)->mode & PSF1_MODEHASTAB)
|
||||
@ -292,7 +292,7 @@ static void do_load(int fd, unsigned char *buffer, size_t len)
|
||||
#if ENABLE_FEATURE_LOADFONT_PSF2
|
||||
if (len >= sizeof(struct psf2_header) && PSF2_MAGIC_OK(psf2h(buffer))) {
|
||||
if (psf2h(buffer)->version > PSF2_MAXVERSION)
|
||||
bb_error_msg_and_die("unsupported psf file version");
|
||||
bb_simple_error_msg_and_die("unsupported psf file version");
|
||||
fontsize = psf2h(buffer)->length;
|
||||
if (psf2h(buffer)->flags & PSF2_HAS_UNICODE_TABLE)
|
||||
has_table = 2;
|
||||
@ -311,19 +311,19 @@ static void do_load(int fd, unsigned char *buffer, size_t len)
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
bb_error_msg_and_die("input file: bad length or unsupported font type");
|
||||
bb_simple_error_msg_and_die("input file: bad length or unsupported font type");
|
||||
}
|
||||
|
||||
#if !defined(PIO_FONTX) || defined(__sparc__)
|
||||
if (fontsize != 256)
|
||||
bb_error_msg_and_die("only fontsize 256 supported");
|
||||
bb_simple_error_msg_and_die("only fontsize 256 supported");
|
||||
#endif
|
||||
|
||||
table = font + fontsize * charsize;
|
||||
buffer += len;
|
||||
|
||||
if (table > buffer || (!has_table && table != buffer))
|
||||
bb_error_msg_and_die("input file: bad length");
|
||||
bb_simple_error_msg_and_die("input file: bad length");
|
||||
|
||||
do_loadfont(fd, font, height, width, charsize, fontsize);
|
||||
|
||||
@ -361,7 +361,7 @@ int loadfont_main(int argc UNUSED_PARAM, char **argv)
|
||||
buffer = xmalloc_read(STDIN_FILENO, &len);
|
||||
// xmalloc_open_zipped_read_close(filename, &len);
|
||||
if (!buffer)
|
||||
bb_perror_msg_and_die("error reading input font");
|
||||
bb_simple_perror_msg_and_die("error reading input font");
|
||||
do_load(get_console_fd_or_die(), buffer, len);
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
@ -502,7 +502,7 @@ int setfont_main(int argc UNUSED_PARAM, char **argv)
|
||||
if (a < 0 || a >= E_TABSZ
|
||||
|| b < 0 || b > 65535
|
||||
) {
|
||||
bb_error_msg_and_die("map format");
|
||||
bb_simple_error_msg_and_die("map format");
|
||||
}
|
||||
// patch map
|
||||
unicodes[a] = b;
|
||||
|
@ -69,7 +69,7 @@ int loadkmap_main(int argc UNUSED_PARAM, char **argv)
|
||||
|
||||
xread(STDIN_FILENO, flags, 7);
|
||||
if (!is_prefixed_with(flags, BINARY_KEYMAP_MAGIC))
|
||||
bb_error_msg_and_die("not a valid binary keymap");
|
||||
bb_simple_error_msg_and_die("not a valid binary keymap");
|
||||
|
||||
xread(STDIN_FILENO, flags, MAX_NR_KEYMAPS);
|
||||
|
||||
|
@ -87,7 +87,7 @@ static int get_vt_fd(void)
|
||||
fd = open(DEV_CONSOLE, O_RDONLY | O_NONBLOCK);
|
||||
if (fd >= 0 && !not_vt_fd(fd))
|
||||
return fd;
|
||||
bb_error_msg_and_die("can't find open VT");
|
||||
bb_simple_error_msg_and_die("can't find open VT");
|
||||
}
|
||||
|
||||
static int find_free_vtno(void)
|
||||
@ -98,7 +98,7 @@ static int find_free_vtno(void)
|
||||
errno = 0;
|
||||
/*xfunc_error_retval = 3; - do we need compat? */
|
||||
if (ioctl(fd, VT_OPENQRY, &vtno) != 0 || vtno <= 0)
|
||||
bb_perror_msg_and_die("can't find open VT");
|
||||
bb_simple_perror_msg_and_die("can't find open VT");
|
||||
// Not really needed, grep for DAEMON_CLOSE_EXTRA_FDS
|
||||
// if (fd > 2)
|
||||
// close(fd);
|
||||
|
@ -56,7 +56,7 @@ static void xset1(struct termios *t)
|
||||
{
|
||||
int ret = tcsetattr(STDIN_FILENO, TCSAFLUSH, t);
|
||||
if (ret) {
|
||||
bb_perror_msg("can't tcsetattr for stdin");
|
||||
bb_simple_perror_msg("can't tcsetattr for stdin");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -217,7 +217,7 @@ int cp_main(int argc, char **argv)
|
||||
// flags, FILEUTILS_RMDEST, OPT_parents);
|
||||
if (flags & OPT_parents) {
|
||||
if (!(d_flags & 2)) {
|
||||
bb_error_msg_and_die("with --parents, the destination must be a directory");
|
||||
bb_simple_error_msg_and_die("with --parents, the destination must be a directory");
|
||||
}
|
||||
}
|
||||
if (flags & FILEUTILS_RMDEST) {
|
||||
@ -236,7 +236,7 @@ int cp_main(int argc, char **argv)
|
||||
goto DO_COPY; /* NB: argc==2 -> *++argv==last */
|
||||
}
|
||||
} else if (flags & FILEUTILS_NO_TARGET_DIR) {
|
||||
bb_error_msg_and_die("too many arguments");
|
||||
bb_simple_error_msg_and_die("too many arguments");
|
||||
}
|
||||
|
||||
while (1) {
|
||||
|
@ -209,11 +209,11 @@ int cut_main(int argc UNUSED_PARAM, char **argv)
|
||||
// argc -= optind;
|
||||
argv += optind;
|
||||
if (!(opt & (CUT_OPT_BYTE_FLGS | CUT_OPT_CHAR_FLGS | CUT_OPT_FIELDS_FLGS)))
|
||||
bb_error_msg_and_die("expected a list of bytes, characters, or fields");
|
||||
bb_simple_error_msg_and_die("expected a list of bytes, characters, or fields");
|
||||
|
||||
if (opt & CUT_OPT_DELIM_FLGS) {
|
||||
if (ltok[0] && ltok[1]) { /* more than 1 char? */
|
||||
bb_error_msg_and_die("the delimiter must be a single character");
|
||||
bb_simple_error_msg_and_die("the delimiter must be a single character");
|
||||
}
|
||||
delim = ltok[0];
|
||||
}
|
||||
@ -288,7 +288,7 @@ int cut_main(int argc UNUSED_PARAM, char **argv)
|
||||
|
||||
/* make sure we got some cut positions out of all that */
|
||||
if (nlists == 0)
|
||||
bb_error_msg_and_die("missing list of positions");
|
||||
bb_simple_error_msg_and_die("missing list of positions");
|
||||
|
||||
/* now that the lists are parsed, we need to sort them to make life
|
||||
* easier on us when it comes time to print the chars / fields / lines
|
||||
|
@ -304,7 +304,7 @@ int date_main(int argc UNUSED_PARAM, char **argv)
|
||||
|
||||
/* if setting time, set it */
|
||||
if ((opt & OPT_SET) && stime(&ts.tv_sec) < 0) {
|
||||
bb_perror_msg("can't set date");
|
||||
bb_simple_perror_msg("can't set date");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -178,7 +178,7 @@ int df_main(int argc UNUSED_PARAM, char **argv)
|
||||
if (!argv[0]) {
|
||||
mount_table = setmntent(bb_path_mtab_file, "r");
|
||||
if (!mount_table)
|
||||
bb_perror_msg_and_die(bb_path_mtab_file);
|
||||
bb_simple_perror_msg_and_die(bb_path_mtab_file);
|
||||
}
|
||||
|
||||
while (1) {
|
||||
|
@ -188,7 +188,7 @@ int echo_main(int argc UNUSED_PARAM, char **argv)
|
||||
/*r =*/ full_write(STDOUT_FILENO, buffer, out - buffer);
|
||||
free(buffer);
|
||||
if (/*WRONG:r < 0*/ errno) {
|
||||
bb_perror_msg(bb_msg_write_error);
|
||||
bb_simple_perror_msg(bb_msg_write_error);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
|
@ -79,7 +79,7 @@ int env_main(int argc UNUSED_PARAM, char **argv)
|
||||
|
||||
while (*argv && (strchr(*argv, '=') != NULL)) {
|
||||
if (putenv(*argv) < 0) {
|
||||
bb_perror_msg_and_die("putenv");
|
||||
bb_simple_perror_msg_and_die("putenv");
|
||||
}
|
||||
++argv;
|
||||
}
|
||||
|
@ -247,7 +247,7 @@ int expand_main(int argc UNUSED_PARAM, char **argv)
|
||||
/* Now close stdin also */
|
||||
/* (if we didn't read from it, it's a no-op) */
|
||||
if (fclose(stdin))
|
||||
bb_perror_msg_and_die(bb_msg_standard_input);
|
||||
bb_simple_perror_msg_and_die(bb_msg_standard_input);
|
||||
|
||||
fflush_stdout_and_exit(exit_status);
|
||||
}
|
||||
|
@ -249,7 +249,7 @@ static arith_t arithmetic_common(VALUE *l, VALUE *r, int op)
|
||||
arith_t li, ri;
|
||||
|
||||
if (!toarith(l) || !toarith(r))
|
||||
bb_error_msg_and_die("non-numeric argument");
|
||||
bb_simple_error_msg_and_die("non-numeric argument");
|
||||
li = l->u.i;
|
||||
ri = r->u.i;
|
||||
if (op == '+')
|
||||
@ -259,7 +259,7 @@ static arith_t arithmetic_common(VALUE *l, VALUE *r, int op)
|
||||
if (op == '*')
|
||||
return li * ri;
|
||||
if (ri == 0)
|
||||
bb_error_msg_and_die("division by zero");
|
||||
bb_simple_error_msg_and_die("division by zero");
|
||||
if (op == '/')
|
||||
return li / ri;
|
||||
return li % ri;
|
||||
@ -319,19 +319,19 @@ static VALUE *eval7(void)
|
||||
VALUE *v;
|
||||
|
||||
if (!*G.args)
|
||||
bb_error_msg_and_die("syntax error");
|
||||
bb_simple_error_msg_and_die("syntax error");
|
||||
|
||||
if (nextarg("(")) {
|
||||
G.args++;
|
||||
v = eval();
|
||||
if (!nextarg(")"))
|
||||
bb_error_msg_and_die("syntax error");
|
||||
bb_simple_error_msg_and_die("syntax error");
|
||||
G.args++;
|
||||
return v;
|
||||
}
|
||||
|
||||
if (nextarg(")"))
|
||||
bb_error_msg_and_die("syntax error");
|
||||
bb_simple_error_msg_and_die("syntax error");
|
||||
|
||||
return str_value(*G.args++);
|
||||
}
|
||||
@ -353,7 +353,7 @@ static VALUE *eval6(void)
|
||||
G.args++; /* We have a valid token, so get the next argument. */
|
||||
if (key == 1) { /* quote */
|
||||
if (!*G.args)
|
||||
bb_error_msg_and_die("syntax error");
|
||||
bb_simple_error_msg_and_die("syntax error");
|
||||
return str_value(*G.args++);
|
||||
}
|
||||
if (key == 2) { /* length */
|
||||
@ -546,11 +546,11 @@ int expr_main(int argc UNUSED_PARAM, char **argv)
|
||||
xfunc_error_retval = 2; /* coreutils compat */
|
||||
G.args = argv + 1;
|
||||
if (*G.args == NULL) {
|
||||
bb_error_msg_and_die("too few arguments");
|
||||
bb_simple_error_msg_and_die("too few arguments");
|
||||
}
|
||||
v = eval();
|
||||
if (*G.args)
|
||||
bb_error_msg_and_die("syntax error");
|
||||
bb_simple_error_msg_and_die("syntax error");
|
||||
if (v->type == INTEGER)
|
||||
printf("%" PF_REZ "d\n", PF_REZ_TYPE v->u.i);
|
||||
else
|
||||
|
@ -231,7 +231,7 @@ int id_main(int argc UNUSED_PARAM, char **argv)
|
||||
}
|
||||
} else if (n < 0) { /* error in get_groups() */
|
||||
if (ENABLE_DESKTOP)
|
||||
bb_error_msg_and_die("can't get groups");
|
||||
bb_simple_error_msg_and_die("can't get groups");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if (ENABLE_FEATURE_CLEAN_UP)
|
||||
|
@ -238,7 +238,7 @@ int install_main(int argc, char **argv)
|
||||
args[2] = dest;
|
||||
args[3] = NULL;
|
||||
if (spawn_and_wait(args)) {
|
||||
bb_perror_msg("strip");
|
||||
bb_simple_perror_msg("strip");
|
||||
ret = EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
|
@ -69,7 +69,7 @@ int ln_main(int argc, char **argv)
|
||||
argc -= optind;
|
||||
|
||||
if ((opts & LN_LINKFILE) && argc > 2) {
|
||||
bb_error_msg_and_die("-T accepts 2 args max");
|
||||
bb_simple_error_msg_and_die("-T accepts 2 args max");
|
||||
}
|
||||
|
||||
if (!argv[1]) {
|
||||
|
@ -56,5 +56,5 @@ int logname_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
|
||||
return fflush_all();
|
||||
}
|
||||
|
||||
bb_perror_msg_and_die("getlogin");
|
||||
bb_simple_perror_msg_and_die("getlogin");
|
||||
}
|
||||
|
@ -300,7 +300,7 @@ int md5_sha1_sum_main(int argc UNUSED_PARAM, char **argv)
|
||||
}
|
||||
if (filename_ptr == NULL) {
|
||||
if (flags & FLAG_WARN) {
|
||||
bb_error_msg("invalid format");
|
||||
bb_simple_error_msg("invalid format");
|
||||
}
|
||||
count_failed++;
|
||||
return_value = EXIT_FAILURE;
|
||||
|
@ -536,7 +536,7 @@ check_and_close(void)
|
||||
}
|
||||
|
||||
if (ferror(stdout)) {
|
||||
bb_error_msg_and_die(bb_msg_write_error);
|
||||
bb_simple_error_msg_and_die(bb_msg_write_error);
|
||||
}
|
||||
}
|
||||
|
||||
@ -841,7 +841,7 @@ skip(off_t n_skip)
|
||||
}
|
||||
|
||||
if (n_skip)
|
||||
bb_error_msg_and_die("can't skip past end of combined input");
|
||||
bb_simple_error_msg_and_die("can't skip past end of combined input");
|
||||
}
|
||||
|
||||
|
||||
@ -1308,10 +1308,10 @@ int od_main(int argc UNUSED_PARAM, char **argv)
|
||||
pseudo_start = o2;
|
||||
argv[1] = NULL;
|
||||
} else {
|
||||
bb_error_msg_and_die("the last two arguments must be offsets");
|
||||
bb_simple_error_msg_and_die("the last two arguments must be offsets");
|
||||
}
|
||||
} else { /* >3 args */
|
||||
bb_error_msg_and_die("too many arguments");
|
||||
bb_simple_error_msg_and_die("too many arguments");
|
||||
}
|
||||
|
||||
if (pseudo_start >= 0) {
|
||||
@ -1332,7 +1332,7 @@ int od_main(int argc UNUSED_PARAM, char **argv)
|
||||
if (option_mask32 & OPT_N) {
|
||||
end_offset = n_bytes_to_skip + max_bytes_to_format;
|
||||
if (end_offset < n_bytes_to_skip)
|
||||
bb_error_msg_and_die("SKIP + SIZE is too large");
|
||||
bb_simple_error_msg_and_die("SKIP + SIZE is too large");
|
||||
}
|
||||
|
||||
if (G.n_specs == 0) {
|
||||
@ -1389,7 +1389,7 @@ int od_main(int argc UNUSED_PARAM, char **argv)
|
||||
dump(n_bytes_to_skip, end_offset);
|
||||
|
||||
if (fclose(stdin))
|
||||
bb_perror_msg_and_die(bb_msg_standard_input);
|
||||
bb_simple_perror_msg_and_die(bb_msg_standard_input);
|
||||
|
||||
return G.exit_code;
|
||||
}
|
||||
|
@ -116,7 +116,7 @@ int paste_main(int argc UNUSED_PARAM, char **argv)
|
||||
|
||||
if (opt & PASTE_OPT_DELIMITERS) {
|
||||
if (!delims[0])
|
||||
bb_error_msg_and_die("-d '' is not supported");
|
||||
bb_simple_error_msg_and_die("-d '' is not supported");
|
||||
/* unknown mappings are not changed: "\z" -> '\\' 'z' */
|
||||
/* trailing backslash, if any, is preserved */
|
||||
del_cnt = strcpy_and_process_escape_sequences(delims, delims) - delims;
|
||||
|
@ -430,7 +430,7 @@ int printf_main(int argc UNUSED_PARAM, char **argv)
|
||||
if (ENABLE_ASH_PRINTF
|
||||
&& applet_name[0] != 'p'
|
||||
) {
|
||||
bb_error_msg("usage: printf FORMAT [ARGUMENT...]");
|
||||
bb_simple_error_msg("usage: printf FORMAT [ARGUMENT...]");
|
||||
return 2; /* bash compat */
|
||||
}
|
||||
bb_show_usage();
|
||||
|
@ -62,7 +62,7 @@ int rm_main(int argc UNUSED_PARAM, char **argv)
|
||||
const char *base = bb_get_last_path_component_strip(*argv);
|
||||
|
||||
if (DOT_OR_DOTDOT(base)) {
|
||||
bb_error_msg("can't remove '.' or '..'");
|
||||
bb_simple_error_msg("can't remove '.' or '..'");
|
||||
} else if (remove_file(*argv, flags) >= 0) {
|
||||
continue;
|
||||
}
|
||||
|
@ -277,7 +277,7 @@ static int compare_keys(const void *xarg, const void *yarg)
|
||||
/* Perform actual comparison */
|
||||
switch (flags & (FLAG_n | FLAG_g | FLAG_M | FLAG_V)) {
|
||||
default:
|
||||
bb_error_msg_and_die("unknown sort type");
|
||||
bb_simple_error_msg_and_die("unknown sort type");
|
||||
break;
|
||||
#if defined(HAVE_STRVERSCMP) && HAVE_STRVERSCMP == 1
|
||||
case FLAG_V:
|
||||
@ -398,10 +398,10 @@ static unsigned str2u(char **str)
|
||||
{
|
||||
unsigned long lu;
|
||||
if (!isdigit((*str)[0]))
|
||||
bb_error_msg_and_die("bad field specification");
|
||||
bb_simple_error_msg_and_die("bad field specification");
|
||||
lu = strtoul(*str, str, 10);
|
||||
if ((sizeof(long) > sizeof(int) && lu > INT_MAX) || !lu)
|
||||
bb_error_msg_and_die("bad field specification");
|
||||
bb_simple_error_msg_and_die("bad field specification");
|
||||
return lu;
|
||||
}
|
||||
#endif
|
||||
@ -461,7 +461,7 @@ int sort_main(int argc UNUSED_PARAM, char **argv)
|
||||
#if ENABLE_FEATURE_SORT_BIG
|
||||
if (opts & FLAG_t) {
|
||||
if (!str_t[0] || str_t[1])
|
||||
bb_error_msg_and_die("bad -t parameter");
|
||||
bb_simple_error_msg_and_die("bad -t parameter");
|
||||
key_separator = str_t[0];
|
||||
}
|
||||
/* note: below this point we use option_mask32, not opts,
|
||||
@ -504,10 +504,10 @@ int sort_main(int argc UNUSED_PARAM, char **argv)
|
||||
because comma isn't in OPT_STR */
|
||||
idx = strchr(OPT_STR, *str_k);
|
||||
if (!idx)
|
||||
bb_error_msg_and_die("unknown key option");
|
||||
bb_simple_error_msg_and_die("unknown key option");
|
||||
flag = 1 << (idx - OPT_STR);
|
||||
if (flag & ~FLAG_allowed_for_k)
|
||||
bb_error_msg_and_die("unknown sort type");
|
||||
bb_simple_error_msg_and_die("unknown sort type");
|
||||
/* b after ',' means strip _trailing_ space */
|
||||
if (i && flag == FLAG_b)
|
||||
flag = FLAG_bb;
|
||||
|
@ -127,7 +127,7 @@ int split_main(int argc UNUSED_PARAM, char **argv)
|
||||
}
|
||||
|
||||
if (NAME_MAX < strlen(sfx) + suffix_len)
|
||||
bb_error_msg_and_die("suffix too long");
|
||||
bb_simple_error_msg_and_die("suffix too long");
|
||||
|
||||
{
|
||||
char *char_p = xzalloc(suffix_len + 1);
|
||||
@ -147,7 +147,7 @@ int split_main(int argc UNUSED_PARAM, char **argv)
|
||||
do {
|
||||
if (!remaining) {
|
||||
if (!pfx)
|
||||
bb_error_msg_and_die("suffixes exhausted");
|
||||
bb_simple_error_msg_and_die("suffixes exhausted");
|
||||
xmove_fd(xopen(pfx, O_WRONLY | O_CREAT | O_TRUNC), 1);
|
||||
pfx = next_file(pfx, suffix_len);
|
||||
remaining = cnt;
|
||||
|
@ -1320,7 +1320,7 @@ int stty_main(int argc UNUSED_PARAM, char **argv)
|
||||
break;
|
||||
case 'F':
|
||||
if (file_name)
|
||||
bb_error_msg_and_die("only one device may be specified");
|
||||
bb_simple_error_msg_and_die("only one device may be specified");
|
||||
file_name = &arg[i+1]; /* "-Fdevice" ? */
|
||||
if (!file_name[0]) { /* nope, "-F device" */
|
||||
int p = k+1; /* argv[p] is argnext */
|
||||
@ -1405,13 +1405,13 @@ int stty_main(int argc UNUSED_PARAM, char **argv)
|
||||
if ((stty_state & (STTY_verbose_output | STTY_recoverable_output)) ==
|
||||
(STTY_verbose_output | STTY_recoverable_output)
|
||||
) {
|
||||
bb_error_msg_and_die("-a and -g are mutually exclusive");
|
||||
bb_simple_error_msg_and_die("-a and -g are mutually exclusive");
|
||||
}
|
||||
/* Specifying -a or -g with non-options is an error */
|
||||
if ((stty_state & (STTY_verbose_output | STTY_recoverable_output))
|
||||
&& !(stty_state & STTY_noargs)
|
||||
) {
|
||||
bb_error_msg_and_die("modes may not be set when -a or -g is used");
|
||||
bb_simple_error_msg_and_die("modes may not be set when -a or -g is used");
|
||||
}
|
||||
|
||||
/* Now it is safe to start doing things */
|
||||
|
@ -89,7 +89,7 @@ static ssize_t tail_read(int fd, char *buf, size_t count)
|
||||
|
||||
r = full_read(fd, buf, count);
|
||||
if (r < 0) {
|
||||
bb_perror_msg(bb_msg_read_error);
|
||||
bb_simple_perror_msg(bb_msg_read_error);
|
||||
G.exitcode = EXIT_FAILURE;
|
||||
}
|
||||
|
||||
@ -186,7 +186,7 @@ int tail_main(int argc, char **argv)
|
||||
} while (++i < argc);
|
||||
|
||||
if (!nfiles)
|
||||
bb_error_msg_and_die("no files");
|
||||
bb_simple_error_msg_and_die("no files");
|
||||
|
||||
/* prepare the buffer */
|
||||
tailbufsize = BUFSIZ;
|
||||
|
@ -832,12 +832,12 @@ int test_main(int argc, char **argv)
|
||||
--argc;
|
||||
if (!arg0[1]) { /* "[" ? */
|
||||
if (NOT_LONE_CHAR(argv[argc], ']')) {
|
||||
bb_error_msg("missing ]");
|
||||
bb_simple_error_msg("missing ]");
|
||||
return 2;
|
||||
}
|
||||
} else { /* assuming "[[" */
|
||||
if (strcmp(argv[argc], "]]") != 0) {
|
||||
bb_error_msg("missing ]]");
|
||||
bb_simple_error_msg("missing ]]");
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
|
@ -308,7 +308,7 @@ int tr_main(int argc UNUSED_PARAM, char **argv)
|
||||
str1_length = complement(str1, str1_length);
|
||||
if (*argv) {
|
||||
if (argv[0][0] == '\0')
|
||||
bb_error_msg_and_die("STRING2 cannot be empty");
|
||||
bb_simple_error_msg_and_die("STRING2 cannot be empty");
|
||||
str2_length = expand(*argv, &str2);
|
||||
map(vector, str1, str1_length,
|
||||
str2, str2_length);
|
||||
@ -333,7 +333,7 @@ int tr_main(int argc UNUSED_PARAM, char **argv)
|
||||
read_chars = safe_read(STDIN_FILENO, str1, TR_BUFSIZ);
|
||||
if (read_chars <= 0) {
|
||||
if (read_chars < 0)
|
||||
bb_perror_msg_and_die(bb_msg_read_error);
|
||||
bb_simple_perror_msg_and_die(bb_msg_read_error);
|
||||
break;
|
||||
}
|
||||
in_index = 0;
|
||||
|
@ -82,7 +82,7 @@ static void FAST_FUNC read_stduu(FILE *src_stream, FILE *dst_stream, int flags U
|
||||
continue;
|
||||
}
|
||||
if (encoded_len > 60) {
|
||||
bb_error_msg_and_die("line too long");
|
||||
bb_simple_error_msg_and_die("line too long");
|
||||
}
|
||||
|
||||
dst = line;
|
||||
@ -108,7 +108,7 @@ static void FAST_FUNC read_stduu(FILE *src_stream, FILE *dst_stream, int flags U
|
||||
fwrite(line, 1, dst - line, dst_stream);
|
||||
free(line);
|
||||
}
|
||||
bb_error_msg_and_die("short file");
|
||||
bb_simple_error_msg_and_die("short file");
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -166,7 +166,7 @@ int uudecode_main(int argc UNUSED_PARAM, char **argv)
|
||||
/* fclose_if_not_stdin(src_stream); - redundant */
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
bb_error_msg_and_die("no 'begin' line");
|
||||
bb_simple_error_msg_and_die("no 'begin' line");
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -216,7 +216,7 @@ int base64_main(int argc UNUSED_PARAM, char **argv)
|
||||
if (!size)
|
||||
break;
|
||||
if ((ssize_t)size < 0)
|
||||
bb_perror_msg_and_die(bb_msg_read_error);
|
||||
bb_simple_perror_msg_and_die(bb_msg_read_error);
|
||||
/* Encode the buffer we just read in */
|
||||
bb_uuencode(dst_buf, src_buf, size, bb_uuenc_tbl_base64);
|
||||
xwrite(STDOUT_FILENO, dst_buf, 4 * ((size + 2) / 3));
|
||||
|
@ -66,7 +66,7 @@ int uuencode_main(int argc UNUSED_PARAM, char **argv)
|
||||
if (!size)
|
||||
break;
|
||||
if ((ssize_t)size < 0)
|
||||
bb_perror_msg_and_die(bb_msg_read_error);
|
||||
bb_simple_perror_msg_and_die(bb_msg_read_error);
|
||||
/* Encode the buffer we just read in */
|
||||
bb_uuencode(dst_buf, src_buf, size, tbl);
|
||||
bb_putchar('\n');
|
||||
|
@ -317,7 +317,7 @@ static void do_procinit(void)
|
||||
}
|
||||
closedir(procdir);
|
||||
if (!pid)
|
||||
bb_error_msg_and_die("nothing in /proc - not mounted?");
|
||||
bb_simple_error_msg_and_die("nothing in /proc - not mounted?");
|
||||
}
|
||||
|
||||
static int do_stop(void)
|
||||
@ -337,7 +337,7 @@ static int do_stop(void)
|
||||
} else if (userspec) {
|
||||
what = xasprintf("process(es) owned by '%s'", userspec);
|
||||
} else {
|
||||
bb_error_msg_and_die("internal error, please report");
|
||||
bb_simple_error_msg_and_die("internal error, please report");
|
||||
}
|
||||
|
||||
if (!G.found_procs) {
|
||||
|
@ -196,11 +196,11 @@ int chattr_main(int argc UNUSED_PARAM, char **argv)
|
||||
|
||||
/* run sanity checks on all the arguments given us */
|
||||
if ((g.flags & OPT_SET) && (g.flags & (OPT_ADD|OPT_REM)))
|
||||
bb_error_msg_and_die("= is incompatible with - and +");
|
||||
bb_simple_error_msg_and_die("= is incompatible with - and +");
|
||||
if (g.rf & g.af)
|
||||
bb_error_msg_and_die("can't set and unset a flag");
|
||||
bb_simple_error_msg_and_die("can't set and unset a flag");
|
||||
if (!g.flags)
|
||||
bb_error_msg_and_die("must use '-v', =, - or +");
|
||||
bb_simple_error_msg_and_die("must use '-v', =, - or +");
|
||||
|
||||
/* now run chattr on all the files passed to us */
|
||||
do change_attributes(*argv, &g); while (*++argv);
|
||||
|
@ -431,10 +431,10 @@ static int wait_one(int flags)
|
||||
if (errno == EINTR)
|
||||
continue;
|
||||
if (errno == ECHILD) { /* paranoia */
|
||||
bb_error_msg("wait: no more children");
|
||||
bb_simple_error_msg("wait: no more children");
|
||||
return -1;
|
||||
}
|
||||
bb_perror_msg("wait");
|
||||
bb_simple_perror_msg("wait");
|
||||
continue;
|
||||
}
|
||||
prev = NULL;
|
||||
@ -919,7 +919,7 @@ static void compile_fs_type(char *fs_type)
|
||||
if (G.fs_type_negated == -1)
|
||||
G.fs_type_negated = negate;
|
||||
if (G.fs_type_negated != negate)
|
||||
bb_error_msg_and_die(
|
||||
bb_simple_error_msg_and_die(
|
||||
"either all or none of the filesystem types passed to -t must be prefixed "
|
||||
"with 'no' or '!'");
|
||||
}
|
||||
|
@ -2633,7 +2633,7 @@ static var *evaluate(node *op, var *res)
|
||||
if (opn == '|') {
|
||||
rsm->F = popen(R.s, "w");
|
||||
if (rsm->F == NULL)
|
||||
bb_perror_msg_and_die("popen");
|
||||
bb_simple_perror_msg_and_die("popen");
|
||||
rsm->is_pipe = 1;
|
||||
} else {
|
||||
rsm->F = xfopen(R.s, opn=='w' ? "w" : "a");
|
||||
@ -3246,7 +3246,7 @@ int awk_main(int argc UNUSED_PARAM, char **argv)
|
||||
argv += optind;
|
||||
//argc -= optind;
|
||||
if (opt & OPT_W)
|
||||
bb_error_msg("warning: option -W is ignored");
|
||||
bb_simple_error_msg("warning: option -W is ignored");
|
||||
if (opt & OPT_F) {
|
||||
unescape_string_in_place(opt_F);
|
||||
setvar_s(intvar[FS], opt_F);
|
||||
|
@ -1006,7 +1006,7 @@ int diff_main(int argc UNUSED_PARAM, char **argv)
|
||||
xfunc_error_retval = 1;
|
||||
|
||||
if (gotstdin && (S_ISDIR(stb[0].st_mode) || S_ISDIR(stb[1].st_mode)))
|
||||
bb_error_msg_and_die("can't compare stdin to a directory");
|
||||
bb_simple_error_msg_and_die("can't compare stdin to a directory");
|
||||
|
||||
/* Compare metadata to check if the files are the same physical file.
|
||||
*
|
||||
@ -1037,7 +1037,7 @@ int diff_main(int argc UNUSED_PARAM, char **argv)
|
||||
#if ENABLE_FEATURE_DIFF_DIR
|
||||
diffdir(file, s_start);
|
||||
#else
|
||||
bb_error_msg_and_die("no support for directory comparison");
|
||||
bb_simple_error_msg_and_die("no support for directory comparison");
|
||||
#endif
|
||||
} else {
|
||||
bool dirfile = S_ISDIR(stb[0].st_mode) || S_ISDIR(stb[1].st_mode);
|
||||
|
34
editors/ed.c
34
editors/ed.c
@ -165,7 +165,7 @@ static NOINLINE int searchLines(const char *str, int num1, int num2)
|
||||
|
||||
if (*str == '\0') {
|
||||
if (searchString[0] == '\0') {
|
||||
bb_error_msg("no previous search string");
|
||||
bb_simple_error_msg("no previous search string");
|
||||
return 0;
|
||||
}
|
||||
str = searchString;
|
||||
@ -228,7 +228,7 @@ static const char* getNum(const char *cp, smallint *retHaveNum, int *retNum)
|
||||
case '\'':
|
||||
cp++;
|
||||
if ((unsigned)(*cp - 'a') >= 26) {
|
||||
bb_error_msg("bad mark name");
|
||||
bb_simple_error_msg("bad mark name");
|
||||
return NULL;
|
||||
}
|
||||
haveNum = TRUE;
|
||||
@ -314,7 +314,7 @@ static int insertLine(int num, const char *data, int len)
|
||||
LINE *newLp, *lp;
|
||||
|
||||
if ((num < 1) || (num > lastNum + 1)) {
|
||||
bb_error_msg("inserting at bad line number");
|
||||
bb_simple_error_msg("inserting at bad line number");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -384,7 +384,7 @@ static int readLines(const char *file, int num)
|
||||
char *cp;
|
||||
|
||||
if ((num < 1) || (num > lastNum + 1)) {
|
||||
bb_error_msg("bad line for read");
|
||||
bb_simple_error_msg("bad line for read");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -629,7 +629,7 @@ static void subCommand(const char *cmd, int num1, int num2)
|
||||
cp = buf;
|
||||
|
||||
if (isblank(*cp) || (*cp == '\0')) {
|
||||
bb_error_msg("bad delimiter for substitute");
|
||||
bb_simple_error_msg("bad delimiter for substitute");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -638,7 +638,7 @@ static void subCommand(const char *cmd, int num1, int num2)
|
||||
|
||||
cp = strchr(cp, delim);
|
||||
if (cp == NULL) {
|
||||
bb_error_msg("missing 2nd delimiter for substitute");
|
||||
bb_simple_error_msg("missing 2nd delimiter for substitute");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -660,13 +660,13 @@ static void subCommand(const char *cmd, int num1, int num2)
|
||||
printFlag = TRUE;
|
||||
break;
|
||||
default:
|
||||
bb_error_msg("unknown option for substitute");
|
||||
bb_simple_error_msg("unknown option for substitute");
|
||||
return;
|
||||
}
|
||||
|
||||
if (*oldStr == '\0') {
|
||||
if (searchString[0] == '\0') {
|
||||
bb_error_msg("no previous search string");
|
||||
bb_simple_error_msg("no previous search string");
|
||||
return;
|
||||
}
|
||||
oldStr = searchString;
|
||||
@ -846,7 +846,7 @@ static void doCommands(void)
|
||||
|
||||
case 'f':
|
||||
if (*cp != '\0' && *cp != ' ') {
|
||||
bb_error_msg("bad file command");
|
||||
bb_simple_error_msg("bad file command");
|
||||
break;
|
||||
}
|
||||
cp = skip_whitespace(cp);
|
||||
@ -870,7 +870,7 @@ static void doCommands(void)
|
||||
case 'k':
|
||||
cp = skip_whitespace(cp);
|
||||
if ((unsigned)(*cp - 'a') >= 26 || cp[1]) {
|
||||
bb_error_msg("bad mark name");
|
||||
bb_simple_error_msg("bad mark name");
|
||||
break;
|
||||
}
|
||||
marks[(unsigned)(*cp - 'a')] = num2;
|
||||
@ -887,7 +887,7 @@ static void doCommands(void)
|
||||
case 'q':
|
||||
cp = skip_whitespace(cp);
|
||||
if (have1 || *cp) {
|
||||
bb_error_msg("bad quit command");
|
||||
bb_simple_error_msg("bad quit command");
|
||||
break;
|
||||
}
|
||||
if (!dirty)
|
||||
@ -903,12 +903,12 @@ static void doCommands(void)
|
||||
|
||||
case 'r':
|
||||
if (*cp != '\0' && *cp != ' ') {
|
||||
bb_error_msg("bad read command");
|
||||
bb_simple_error_msg("bad read command");
|
||||
break;
|
||||
}
|
||||
cp = skip_whitespace(cp);
|
||||
if (*cp == '\0') {
|
||||
bb_error_msg("no file name");
|
||||
bb_simple_error_msg("no file name");
|
||||
break;
|
||||
}
|
||||
if (!have1)
|
||||
@ -925,14 +925,14 @@ static void doCommands(void)
|
||||
|
||||
case 'w':
|
||||
if (*cp != '\0' && *cp != ' ') {
|
||||
bb_error_msg("bad write command");
|
||||
bb_simple_error_msg("bad write command");
|
||||
break;
|
||||
}
|
||||
cp = skip_whitespace(cp);
|
||||
if (*cp == '\0') {
|
||||
cp = fileName;
|
||||
if (!cp) {
|
||||
bb_error_msg("no file name specified");
|
||||
bb_simple_error_msg("no file name specified");
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -960,7 +960,7 @@ static void doCommands(void)
|
||||
|
||||
case '.':
|
||||
if (have1) {
|
||||
bb_error_msg("no arguments allowed");
|
||||
bb_simple_error_msg("no arguments allowed");
|
||||
break;
|
||||
}
|
||||
printLines(curNum, curNum, FALSE);
|
||||
@ -984,7 +984,7 @@ static void doCommands(void)
|
||||
break;
|
||||
|
||||
default:
|
||||
bb_error_msg("unimplemented command");
|
||||
bb_simple_error_msg("unimplemented command");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ static unsigned copy_lines(FILE *src_stream, FILE *dst_stream, unsigned lines_co
|
||||
break;
|
||||
}
|
||||
if (fputs(line, dst_stream) == EOF) {
|
||||
bb_perror_msg_and_die("error writing to new file");
|
||||
bb_simple_perror_msg_and_die("error writing to new file");
|
||||
}
|
||||
free(line);
|
||||
lines_count--;
|
||||
@ -148,7 +148,7 @@ int patch_main(int argc UNUSED_PARAM, char **argv)
|
||||
|
||||
new_filename = extract_filename(patch_line, patch_level, "+++ ");
|
||||
if (!new_filename) {
|
||||
bb_error_msg_and_die("invalid patch");
|
||||
bb_simple_error_msg_and_die("invalid patch");
|
||||
}
|
||||
|
||||
/* Get access rights from the file to be patched */
|
||||
@ -209,7 +209,7 @@ int patch_main(int argc UNUSED_PARAM, char **argv)
|
||||
/* src_beg_line will be 0 if it's a new file */
|
||||
count = src_beg_line - src_cur_line;
|
||||
if (copy_lines(src_stream, dst_stream, count)) {
|
||||
bb_error_msg_and_die("bad src file");
|
||||
bb_simple_error_msg_and_die("bad src file");
|
||||
}
|
||||
src_cur_line += count;
|
||||
dst_cur_line += count;
|
||||
|
@ -200,7 +200,7 @@ int copy_tempfile(int fdin, char *name, char **tempname)
|
||||
|
||||
*tempname = xasprintf("%sXXXXXX", name);
|
||||
fd = mkstemp(*tempname);
|
||||
if(-1 == fd) bb_perror_msg_and_die("no temp file");
|
||||
if(-1 == fd) bb_simple_perror_msg_and_die("no temp file");
|
||||
|
||||
// Set permissions of output file
|
||||
fstat(fdin, &statbuf);
|
||||
|
@ -315,7 +315,7 @@ static int parse_regex_delim(const char *cmdstr, char **match, char **replace)
|
||||
/* verify that the 's' or 'y' is followed by something. That something
|
||||
* (typically a 'slash') is now our regexp delimiter... */
|
||||
if (*cmdstr == '\0')
|
||||
bb_error_msg_and_die("bad format in substitution expression");
|
||||
bb_simple_error_msg_and_die("bad format in substitution expression");
|
||||
delimiter = *cmdstr_ptr++;
|
||||
|
||||
/* save the match string */
|
||||
@ -360,7 +360,7 @@ static int get_address(const char *my_str, int *linenum, regex_t ** regex)
|
||||
} else {
|
||||
*regex = G.previous_regex_ptr;
|
||||
if (!G.previous_regex_ptr)
|
||||
bb_error_msg_and_die("no previous regexp");
|
||||
bb_simple_error_msg_and_die("no previous regexp");
|
||||
}
|
||||
/* Move position to next character after last delimiter */
|
||||
pos += (next+1);
|
||||
@ -378,7 +378,7 @@ static int parse_file_cmd(/*sed_cmd_t *sed_cmd,*/ const char *filecmdstr, char *
|
||||
start = skip_whitespace(filecmdstr);
|
||||
eol = strchrnul(start, '\n');
|
||||
if (eol == start)
|
||||
bb_error_msg_and_die("empty filename");
|
||||
bb_simple_error_msg_and_die("empty filename");
|
||||
|
||||
if (*eol) {
|
||||
/* If lines glued together, put backslash back. */
|
||||
@ -468,7 +468,7 @@ static int parse_subst_cmd(sed_cmd_t *sed_cmd, const char *substr)
|
||||
goto out;
|
||||
default:
|
||||
dbg("s bad flags:'%s'", substr + idx);
|
||||
bb_error_msg_and_die("bad option in substitution expression");
|
||||
bb_simple_error_msg_and_die("bad option in substitution expression");
|
||||
}
|
||||
}
|
||||
out:
|
||||
@ -688,7 +688,7 @@ static void add_cmd(const char *cmdstr)
|
||||
idx--; /* if 0, trigger error check below */
|
||||
}
|
||||
if (idx < 0)
|
||||
bb_error_msg_and_die("no address after comma");
|
||||
bb_simple_error_msg_and_die("no address after comma");
|
||||
sed_cmd->end_line_orig = sed_cmd->end_line;
|
||||
}
|
||||
|
||||
@ -706,7 +706,7 @@ static void add_cmd(const char *cmdstr)
|
||||
|
||||
/* last part (mandatory) will be a command */
|
||||
if (!*cmdstr)
|
||||
bb_error_msg_and_die("missing command");
|
||||
bb_simple_error_msg_and_die("missing command");
|
||||
sed_cmd->cmd = *cmdstr++;
|
||||
cmdstr = parse_cmd_args(sed_cmd, cmdstr);
|
||||
|
||||
@ -791,7 +791,7 @@ static int do_subst_command(sed_cmd_t *sed_cmd, char **line_p)
|
||||
if (!current_regex) {
|
||||
current_regex = G.previous_regex_ptr;
|
||||
if (!current_regex)
|
||||
bb_error_msg_and_die("no previous regexp");
|
||||
bb_simple_error_msg_and_die("no previous regexp");
|
||||
}
|
||||
G.previous_regex_ptr = current_regex;
|
||||
|
||||
@ -962,7 +962,7 @@ static void puts_maybe_newline(char *s, FILE *file, char *last_puts_char, char l
|
||||
|
||||
if (ferror(file)) {
|
||||
xfunc_error_retval = 4; /* It's what gnu sed exits with... */
|
||||
bb_error_msg_and_die(bb_msg_write_error);
|
||||
bb_simple_error_msg_and_die(bb_msg_write_error);
|
||||
}
|
||||
*last_puts_char = lpc;
|
||||
}
|
||||
@ -1192,7 +1192,7 @@ static void process_files(void)
|
||||
}
|
||||
sed_cmd = sed_cmd->next;
|
||||
if (!sed_cmd)
|
||||
bb_error_msg_and_die("unterminated {");
|
||||
bb_simple_error_msg_and_die("unterminated {");
|
||||
}
|
||||
}
|
||||
continue;
|
||||
|
@ -1042,7 +1042,7 @@ static int readit(void) // read (maybe cursor) key from stdin
|
||||
goto again;
|
||||
go_bottom_and_clear_to_eol();
|
||||
cookmode(); // terminal to "cooked"
|
||||
bb_error_msg_and_die("can't read user input");
|
||||
bb_simple_error_msg_and_die("can't read user input");
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
@ -1245,7 +1245,7 @@ static action*** parse_params(char **argv)
|
||||
* coreutils expects {} to appear only once in "-exec +"
|
||||
*/
|
||||
if (all_subst != 1 && ap->filelist)
|
||||
bb_error_msg_and_die("only one '{}' allowed for -exec +");
|
||||
bb_simple_error_msg_and_die("only one '{}' allowed for -exec +");
|
||||
# endif
|
||||
}
|
||||
#endif
|
||||
@ -1259,7 +1259,7 @@ static action*** parse_params(char **argv)
|
||||
endarg = argv;
|
||||
while (1) {
|
||||
if (!*++endarg)
|
||||
bb_error_msg_and_die("unpaired '('");
|
||||
bb_simple_error_msg_and_die("unpaired '('");
|
||||
if (LONE_CHAR(*endarg, '('))
|
||||
nested++;
|
||||
else if (LONE_CHAR(*endarg, ')') && !--nested) {
|
||||
|
@ -665,7 +665,7 @@ int xargs_main(int argc UNUSED_PARAM, char **argv)
|
||||
}
|
||||
/* Sanity check */
|
||||
if (n_max_chars <= 0) {
|
||||
bb_error_msg_and_die("can't fit single argument within argument list size limit");
|
||||
bb_simple_error_msg_and_die("can't fit single argument within argument list size limit");
|
||||
}
|
||||
|
||||
buf = xzalloc(n_max_chars + 1);
|
||||
@ -716,7 +716,7 @@ int xargs_main(int argc UNUSED_PARAM, char **argv)
|
||||
|
||||
if (!G.args[initial_idx]) { /* not even one ARG was added? */
|
||||
if (*rem != '\0')
|
||||
bb_error_msg_and_die("argument line too long");
|
||||
bb_simple_error_msg_and_die("argument line too long");
|
||||
if (opt & OPT_NO_EMPTY)
|
||||
break;
|
||||
}
|
||||
|
@ -1137,7 +1137,7 @@ void exec_prog_or_SHELL(char **argv) NORETURN FAST_FUNC;
|
||||
({ \
|
||||
pid_t bb__xvfork_pid = vfork(); \
|
||||
if (bb__xvfork_pid < 0) \
|
||||
bb_perror_msg_and_die("vfork"); \
|
||||
bb_simple_perror_msg_and_die("vfork"); \
|
||||
bb__xvfork_pid; \
|
||||
})
|
||||
#if BB_MMU
|
||||
@ -1324,13 +1324,17 @@ extern void (*die_func)(void);
|
||||
void xfunc_die(void) NORETURN FAST_FUNC;
|
||||
void bb_show_usage(void) NORETURN FAST_FUNC;
|
||||
void bb_error_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2))) FAST_FUNC;
|
||||
void bb_simple_error_msg(const char *s) FAST_FUNC;
|
||||
void bb_error_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2))) FAST_FUNC;
|
||||
void bb_simple_error_msg_and_die(const char *s) NORETURN FAST_FUNC;
|
||||
void bb_perror_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2))) FAST_FUNC;
|
||||
void bb_simple_perror_msg(const char *s) FAST_FUNC;
|
||||
void bb_perror_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2))) FAST_FUNC;
|
||||
void bb_simple_perror_msg_and_die(const char *s) NORETURN FAST_FUNC;
|
||||
void bb_herror_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2))) FAST_FUNC;
|
||||
void bb_simple_herror_msg(const char *s) FAST_FUNC;
|
||||
void bb_herror_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2))) FAST_FUNC;
|
||||
void bb_simple_herror_msg_and_die(const char *s) NORETURN FAST_FUNC;
|
||||
void bb_perror_nomsg_and_die(void) NORETURN FAST_FUNC;
|
||||
void bb_perror_nomsg(void) FAST_FUNC;
|
||||
void bb_verror_msg(const char *s, va_list p, const char *strerr) FAST_FUNC;
|
||||
@ -1339,12 +1343,51 @@ void bb_logenv_override(void) FAST_FUNC;
|
||||
|
||||
#if ENABLE_FEATURE_SYSLOG_INFO
|
||||
void bb_info_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2))) FAST_FUNC;
|
||||
void bb_simple_info_msg(const char *s) FAST_FUNC;
|
||||
void bb_vinfo_msg(const char *s, va_list p) FAST_FUNC;
|
||||
#else
|
||||
#define bb_info_msg bb_error_msg
|
||||
#define bb_simple_info_msg bb_simple_error_msg
|
||||
#define bb_vinfo_msg(s,p) bb_verror_msg(s,p,NULL)
|
||||
#endif
|
||||
|
||||
#if ENABLE_WARN_SIMPLE_MSG
|
||||
/* If enabled, cause calls to bb_error_msg() et al that only take a single
|
||||
* parameter to generate a warning.
|
||||
*/
|
||||
static inline void __attribute__ ((deprecated("use bb_simple_error_msg instead")))
|
||||
bb_not_simple_error_msg(const char *s) { bb_simple_error_msg(s); }
|
||||
static inline void __attribute__ ((deprecated("use bb_simple_error_msg_and_die instead"))) NORETURN
|
||||
bb_not_simple_error_msg_and_die(const char *s) { bb_simple_error_msg_and_die(s); }
|
||||
static inline void __attribute__ ((deprecated("use bb_simple_perror_msg instead")))
|
||||
bb_not_simple_perror_msg(const char *s) { bb_simple_perror_msg(s); }
|
||||
static inline void __attribute__ ((deprecated("use bb_simple_perror_msg_and_die instead"))) NORETURN
|
||||
bb_not_simple_perror_msg_and_die(const char *s) { bb_simple_perror_msg_and_die(s); }
|
||||
static inline void __attribute__ ((deprecated("use bb_simple_herror_msg instead")))
|
||||
bb_not_simple_herror_msg(const char *s) { bb_simple_herror_msg(s); }
|
||||
static inline void __attribute__ ((deprecated("use bb_simple_herror_msg_and_die instead"))) NORETURN
|
||||
bb_not_simple_herror_msg_and_die(const char *s) { bb_simple_herror_msg_and_die(s); }
|
||||
static inline void __attribute__ ((deprecated("use bb_simple_info_msg instead")))
|
||||
bb_not_simple_info_msg(const char *s) { bb_simple_info_msg(s); }
|
||||
/* Override bb_error_msg() and related functions with macros that will
|
||||
* substitute them for the equivalent bb_not_simple_error_msg() function when
|
||||
* they are used with only a single parameter. Macro approach inspired by
|
||||
* https://gustedt.wordpress.com/2010/06/08/detect-empty-macro-arguments and
|
||||
* https://gustedt.wordpress.com/2010/06/03/default-arguments-for-c99
|
||||
*/
|
||||
#define _ARG18(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, ...) _17
|
||||
#define BB_MSG_KIND(...) _ARG18(__VA_ARGS__, , , , , , , , , , , , , , , , , _not_simple)
|
||||
#define _BB_MSG(name, kind, ...) bb##kind##name(__VA_ARGS__)
|
||||
#define BB_MSG(name, kind, ...) _BB_MSG(name, kind, __VA_ARGS__)
|
||||
#define bb_error_msg(...) BB_MSG(_error_msg, BB_MSG_KIND(__VA_ARGS__), __VA_ARGS__)
|
||||
#define bb_error_msg_and_die(...) BB_MSG(_error_msg_and_die, BB_MSG_KIND(__VA_ARGS__), __VA_ARGS__)
|
||||
#define bb_perror_msg(...) BB_MSG(_perror_msg, BB_MSG_KIND(__VA_ARGS__), __VA_ARGS__)
|
||||
#define bb_perror_msg_and_die(...) BB_MSG(_perror_msg_and_die, BB_MSG_KIND(__VA_ARGS__), __VA_ARGS__)
|
||||
#define bb_herror_msg(...) BB_MSG(_herror_msg, BB_MSG_KIND(__VA_ARGS__), __VA_ARGS__)
|
||||
#define bb_herror_msg_and_die(...) BB_MSG(_herror_msg_and_die, BB_MSG_KIND(__VA_ARGS__), __VA_ARGS__)
|
||||
#define bb_info_msg(...) BB_MSG(_info_msg, BB_MSG_KIND(__VA_ARGS__), __VA_ARGS__)
|
||||
#endif
|
||||
|
||||
/* We need to export XXX_main from libbusybox
|
||||
* only if we build "individual" binaries
|
||||
*/
|
||||
|
@ -208,7 +208,7 @@ static char *make_tempdir(void)
|
||||
bb_perror_msg_and_die("can't %smount tmpfs", "un");
|
||||
}
|
||||
#else
|
||||
bb_perror_msg_and_die("can't create temporary directory");
|
||||
bb_simple_perror_msg_and_die("can't create temporary directory");
|
||||
#endif
|
||||
} else {
|
||||
xchdir(tempdir);
|
||||
|
@ -1086,7 +1086,7 @@ int init_main(int argc UNUSED_PARAM, char **argv)
|
||||
if (getpid() != 1
|
||||
&& (!ENABLE_LINUXRC || applet_name[0] != 'l') /* not linuxrc? */
|
||||
) {
|
||||
bb_error_msg_and_die("must be run as PID 1");
|
||||
bb_simple_error_msg_and_die("must be run as PID 1");
|
||||
}
|
||||
#ifdef RB_DISABLE_CAD
|
||||
/* Turn off rebooting via CTL-ALT-DEL - we get a
|
||||
|
@ -631,7 +631,7 @@ static void check_suid(int applet_no)
|
||||
/* same group / in group */
|
||||
m >>= 3;
|
||||
if (!(m & S_IXOTH)) /* is x bit not set? */
|
||||
bb_error_msg_and_die("you have no permission to run this applet");
|
||||
bb_simple_error_msg_and_die("you have no permission to run this applet");
|
||||
|
||||
/* We set effective AND saved ids. If saved-id is not set
|
||||
* like we do below, seteuid(0) can still later succeed! */
|
||||
@ -643,7 +643,7 @@ static void check_suid(int applet_no)
|
||||
rgid = sct->m_ugid.gid;
|
||||
/* else: we will set egid = rgid, thus dropping sgid effect */
|
||||
if (setresgid(-1, rgid, rgid))
|
||||
bb_perror_msg_and_die("setresgid");
|
||||
bb_simple_perror_msg_and_die("setresgid");
|
||||
|
||||
/* Are we directed to change uid
|
||||
* (APPLET = s** USER.GROUP or APPLET = S** USER.GROUP)?
|
||||
@ -653,7 +653,7 @@ static void check_suid(int applet_no)
|
||||
uid = sct->m_ugid.uid;
|
||||
/* else: we will set euid = ruid, thus dropping suid effect */
|
||||
if (setresuid(-1, uid, uid))
|
||||
bb_perror_msg_and_die("setresuid");
|
||||
bb_simple_perror_msg_and_die("setresuid");
|
||||
|
||||
goto ret;
|
||||
}
|
||||
@ -663,7 +663,7 @@ static void check_suid(int applet_no)
|
||||
|
||||
if (!onetime) {
|
||||
onetime = 1;
|
||||
bb_error_msg("using fallback suid method");
|
||||
bb_simple_error_msg("using fallback suid method");
|
||||
}
|
||||
}
|
||||
# endif
|
||||
@ -673,7 +673,7 @@ static void check_suid(int applet_no)
|
||||
/* Real uid is not 0. If euid isn't 0 too, suid bit
|
||||
* is most probably not set on our executable */
|
||||
if (geteuid())
|
||||
bb_error_msg_and_die("must be suid to work properly");
|
||||
bb_simple_error_msg_and_die("must be suid to work properly");
|
||||
} else if (APPLET_SUID(applet_no) == BB_SUID_DROP) {
|
||||
/*
|
||||
* Drop all privileges.
|
||||
|
@ -38,7 +38,7 @@ gid_t* FAST_FUNC bb_getgroups(int *ngroups, gid_t *group_array)
|
||||
continue;
|
||||
}
|
||||
/* Some other error (should never happen on Linux) */
|
||||
bb_perror_msg_and_die("getgroups");
|
||||
bb_simple_perror_msg_and_die("getgroups");
|
||||
}
|
||||
|
||||
if (ngroups)
|
||||
|
@ -60,6 +60,6 @@ int unit_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
bb_error_msg("All tests passed");
|
||||
bb_simple_error_msg("All tests passed");
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
@ -119,7 +119,7 @@ void FAST_FUNC getcaps(void *arg)
|
||||
caps->u32s = _LINUX_CAPABILITY_U32S_3;
|
||||
break;
|
||||
default:
|
||||
bb_error_msg_and_die("unsupported capability version");
|
||||
bb_simple_error_msg_and_die("unsupported capability version");
|
||||
}
|
||||
|
||||
if (capget(&caps->header, caps->data) != 0)
|
||||
|
@ -51,7 +51,7 @@ void FAST_FUNC change_identity(const struct passwd *pw)
|
||||
return;
|
||||
}
|
||||
|
||||
bb_perror_msg_and_die("can't set groups");
|
||||
bb_simple_perror_msg_and_die("can't set groups");
|
||||
}
|
||||
|
||||
xsetgid(pw->pw_gid);
|
||||
|
@ -327,7 +327,7 @@ int FAST_FUNC copy_file(const char *source, const char *dest, int flags)
|
||||
) {
|
||||
security_context_t con;
|
||||
if (getfscreatecon(&con) == -1) {
|
||||
bb_perror_msg("getfscreatecon");
|
||||
bb_simple_perror_msg("getfscreatecon");
|
||||
return -1;
|
||||
}
|
||||
if (con) {
|
||||
|
@ -87,7 +87,7 @@ static off_t bb_full_fd_action(int src_fd, int dst_fd, off_t size)
|
||||
rd = safe_read(src_fd, buffer,
|
||||
size > buffer_size ? buffer_size : size);
|
||||
if (rd < 0) {
|
||||
bb_perror_msg(bb_msg_read_error);
|
||||
bb_simple_perror_msg(bb_msg_read_error);
|
||||
break;
|
||||
}
|
||||
read_ok:
|
||||
@ -100,7 +100,7 @@ static off_t bb_full_fd_action(int src_fd, int dst_fd, off_t size)
|
||||
ssize_t wr = full_write(dst_fd, buffer, rd);
|
||||
if (wr < rd) {
|
||||
if (!continue_on_write_error) {
|
||||
bb_perror_msg(bb_msg_write_error);
|
||||
bb_simple_perror_msg(bb_msg_write_error);
|
||||
break;
|
||||
}
|
||||
dst_fd = -1;
|
||||
@ -151,7 +151,7 @@ void FAST_FUNC bb_copyfd_exact_size(int fd1, int fd2, off_t size)
|
||||
if (sz == (size >= 0 ? size : -size))
|
||||
return;
|
||||
if (sz != -1)
|
||||
bb_error_msg_and_die("short read");
|
||||
bb_simple_error_msg_and_die("short read");
|
||||
/* if sz == -1, bb_copyfd_XX already complained */
|
||||
xfunc_die();
|
||||
}
|
||||
|
@ -57,5 +57,5 @@ void FAST_FUNC die_if_bad_username(const char *name)
|
||||
* including the terminating null byte.
|
||||
*/
|
||||
if (name - start >= LOGIN_NAME_MAX)
|
||||
bb_error_msg_and_die("name is too long");
|
||||
bb_simple_error_msg_and_die("name is too long");
|
||||
}
|
||||
|
@ -199,7 +199,7 @@ static NOINLINE void rewrite(priv_dumper_t *dumper, FS *fs)
|
||||
pr->bcnt = fu->bcnt;
|
||||
if (fu->bcnt == 0) {
|
||||
if (!prec)
|
||||
bb_error_msg_and_die("%%s needs precision or byte count");
|
||||
bb_simple_error_msg_and_die("%%s needs precision or byte count");
|
||||
pr->bcnt = atoi(prec);
|
||||
}
|
||||
} else
|
||||
@ -266,7 +266,7 @@ static NOINLINE void rewrite(priv_dumper_t *dumper, FS *fs)
|
||||
|
||||
/* only one conversion character if byte count */
|
||||
if (!(pr->flags & F_ADDRESS) && fu->bcnt && nconv++) {
|
||||
bb_error_msg_and_die("byte count with multiple conversion characters");
|
||||
bb_simple_error_msg_and_die("byte count with multiple conversion characters");
|
||||
}
|
||||
}
|
||||
/*
|
||||
|
@ -15,7 +15,7 @@ void FAST_FUNC fflush_stdout_and_exit(int retval)
|
||||
{
|
||||
xfunc_error_retval = retval;
|
||||
if (fflush(stdout))
|
||||
bb_perror_msg_and_die(bb_msg_standard_output);
|
||||
bb_simple_perror_msg_and_die(bb_msg_standard_output);
|
||||
/* In case we are in NOFORK applet. Do not exit() directly,
|
||||
* but use xfunc_die() */
|
||||
xfunc_die();
|
||||
|
@ -62,7 +62,7 @@ int FAST_FUNC get_console_fd_or_die(void)
|
||||
}
|
||||
}
|
||||
|
||||
bb_error_msg_and_die("can't open console");
|
||||
bb_simple_error_msg_and_die("can't open console");
|
||||
}
|
||||
|
||||
/* From <linux/vt.h> */
|
||||
|
@ -18,7 +18,7 @@ uoff_t FAST_FUNC get_volume_size_in_bytes(int fd,
|
||||
if (override) {
|
||||
result = XATOOFF(override);
|
||||
if (result >= (uoff_t)(MAXINT(off_t)) / override_units)
|
||||
bb_error_msg_and_die("image size is too big");
|
||||
bb_simple_error_msg_and_die("image size is too big");
|
||||
result *= override_units;
|
||||
/* seek past end fails on block devices but works on files */
|
||||
if (lseek(fd, result - 1, SEEK_SET) != (off_t)-1) {
|
||||
@ -42,7 +42,7 @@ uoff_t FAST_FUNC get_volume_size_in_bytes(int fd,
|
||||
*
|
||||
* Picked 16k arbitrarily: */
|
||||
if (result < 16*1024)
|
||||
bb_error_msg_and_die("image is too small");
|
||||
bb_simple_error_msg_and_die("image is too small");
|
||||
|
||||
return result;
|
||||
}
|
||||
|
@ -23,14 +23,14 @@ int FAST_FUNC xgetpty(char *line)
|
||||
const char *name;
|
||||
name = ptsname(p); /* find out the name of slave pty */
|
||||
if (!name) {
|
||||
bb_perror_msg_and_die("ptsname error (is /dev/pts mounted?)");
|
||||
bb_simple_perror_msg_and_die("ptsname error (is /dev/pts mounted?)");
|
||||
}
|
||||
safe_strncpy(line, name, GETPTY_BUFSIZE);
|
||||
}
|
||||
# else
|
||||
/* find out the name of slave pty */
|
||||
if (ptsname_r(p, line, GETPTY_BUFSIZE-1) != 0) {
|
||||
bb_perror_msg_and_die("ptsname error (is /dev/pts mounted?)");
|
||||
bb_simple_perror_msg_and_die("ptsname error (is /dev/pts mounted?)");
|
||||
}
|
||||
line[GETPTY_BUFSIZE-1] = '\0';
|
||||
# endif
|
||||
@ -61,5 +61,5 @@ int FAST_FUNC xgetpty(char *line)
|
||||
}
|
||||
}
|
||||
#endif /* FEATURE_DEVPTS */
|
||||
bb_error_msg_and_die("can't find free pty");
|
||||
bb_simple_error_msg_and_die("can't find free pty");
|
||||
}
|
||||
|
@ -26,3 +26,13 @@ void FAST_FUNC bb_herror_msg_and_die(const char *s, ...)
|
||||
va_end(p);
|
||||
xfunc_die();
|
||||
}
|
||||
|
||||
void FAST_FUNC bb_simple_herror_msg(const char *s)
|
||||
{
|
||||
bb_herror_msg("%s", s);
|
||||
}
|
||||
|
||||
void FAST_FUNC bb_simple_herror_msg_and_die(const char *s)
|
||||
{
|
||||
bb_herror_msg_and_die("%s", s);
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ void FAST_FUNC erase_mtab(const char *name)
|
||||
/* Bummer. Fall back on trying the /proc filesystem */
|
||||
if (!mountTable) mountTable = setmntent("/proc/mounts", "r");
|
||||
if (!mountTable) {
|
||||
bb_perror_msg(bb_path_mtab_file);
|
||||
bb_simple_perror_msg(bb_path_mtab_file);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -49,6 +49,6 @@ void FAST_FUNC erase_mtab(const char *name)
|
||||
}
|
||||
endmntent(mountTable);
|
||||
} else if (errno != EROFS)
|
||||
bb_perror_msg(bb_path_mtab_file);
|
||||
bb_simple_perror_msg(bb_path_mtab_file);
|
||||
}
|
||||
#endif
|
||||
|
@ -12,11 +12,11 @@
|
||||
* instead of including libbb.h */
|
||||
//#include "libbb.h"
|
||||
#include "platform.h"
|
||||
extern void bb_perror_msg(const char *s, ...) FAST_FUNC;
|
||||
extern void bb_simple_perror_msg(const char *s) FAST_FUNC;
|
||||
|
||||
/* suppress gcc "no previous prototype" warning */
|
||||
void FAST_FUNC bb_perror_nomsg(void);
|
||||
void FAST_FUNC bb_perror_nomsg(void)
|
||||
{
|
||||
bb_perror_msg(0);
|
||||
bb_simple_perror_msg(0);
|
||||
}
|
||||
|
@ -12,11 +12,11 @@
|
||||
* instead of including libbb.h */
|
||||
//#include "libbb.h"
|
||||
#include "platform.h"
|
||||
extern void bb_perror_msg_and_die(const char *s, ...) FAST_FUNC;
|
||||
extern void bb_simple_perror_msg_and_die(const char *s) FAST_FUNC;
|
||||
|
||||
/* suppress gcc "no previous prototype" warning */
|
||||
void FAST_FUNC bb_perror_nomsg_and_die(void);
|
||||
void FAST_FUNC bb_perror_nomsg_and_die(void)
|
||||
{
|
||||
bb_perror_msg_and_die(0);
|
||||
bb_simple_perror_msg_and_die(0);
|
||||
}
|
||||
|
@ -217,7 +217,7 @@ void FAST_FUNC xread(int fd, void *buf, size_t count)
|
||||
if (count) {
|
||||
ssize_t size = full_read(fd, buf, count);
|
||||
if ((size_t)size != count)
|
||||
bb_error_msg_and_die("short read");
|
||||
bb_simple_error_msg_and_die("short read");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,7 @@ int FAST_FUNC safe_poll(struct pollfd *ufds, nfds_t nfds, int timeout)
|
||||
/* I doubt many callers would handle this correctly! */
|
||||
if (errno == ENOMEM)
|
||||
continue;
|
||||
bb_perror_msg("poll");
|
||||
bb_simple_perror_msg("poll");
|
||||
return n;
|
||||
}
|
||||
}
|
||||
|
@ -48,7 +48,7 @@ void FAST_FUNC selinux_preserve_fcontext(int fdesc)
|
||||
if (fgetfilecon(fdesc, &context) < 0) {
|
||||
if (errno == ENODATA || errno == ENOTSUP)
|
||||
return;
|
||||
bb_perror_msg_and_die("fgetfilecon failed");
|
||||
bb_simple_perror_msg_and_die("fgetfilecon failed");
|
||||
}
|
||||
setfscreatecon_or_die(context);
|
||||
freecon(context);
|
||||
|
@ -258,7 +258,7 @@ char* FAST_FUNC strftime_YYYYMMDDHHMMSS(char *buf, unsigned len, time_t *tp)
|
||||
static void get_mono(struct timespec *ts)
|
||||
{
|
||||
if (syscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts))
|
||||
bb_error_msg_and_die("clock_gettime(MONOTONIC) failed");
|
||||
bb_simple_error_msg_and_die("clock_gettime(MONOTONIC) failed");
|
||||
}
|
||||
unsigned long long FAST_FUNC monotonic_ns(void)
|
||||
{
|
||||
|
@ -25,7 +25,7 @@ static void check_selinux_update_passwd(const char *username)
|
||||
return; /* No need to check */
|
||||
|
||||
if (getprevcon_raw(&context) < 0)
|
||||
bb_perror_msg_and_die("getprevcon failed");
|
||||
bb_simple_perror_msg_and_die("getprevcon failed");
|
||||
seuser = strtok(context, ":");
|
||||
if (!seuser)
|
||||
bb_error_msg_and_die("invalid context '%s'", context);
|
||||
@ -42,7 +42,7 @@ static void check_selinux_update_passwd(const char *username)
|
||||
|
||||
if (selinux_check_passwd_access(av) != 0)
|
||||
die:
|
||||
bb_error_msg_and_die("SELinux: access denied");
|
||||
bb_simple_error_msg_and_die("SELinux: access denied");
|
||||
}
|
||||
if (ENABLE_FEATURE_CLEAN_UP)
|
||||
freecon(context);
|
||||
|
@ -213,7 +213,7 @@ void FAST_FUNC read_base64(FILE *src_stream, FILE *dst_stream, int flags)
|
||||
if (*in_tail == '\0')
|
||||
return;
|
||||
/* No */
|
||||
bb_error_msg_and_die("truncated base64 input");
|
||||
bb_simple_error_msg_and_die("truncated base64 input");
|
||||
}
|
||||
|
||||
/* It was partial decode */
|
||||
|
@ -197,4 +197,19 @@ void FAST_FUNC bb_info_msg(const char *s, ...)
|
||||
bb_vinfo_msg(s, p);
|
||||
va_end(p);
|
||||
}
|
||||
|
||||
void FAST_FUNC bb_simple_info_msg(const char *s)
|
||||
{
|
||||
bb_info_msg("%s", s);
|
||||
}
|
||||
#endif
|
||||
|
||||
void FAST_FUNC bb_simple_error_msg(const char *s)
|
||||
{
|
||||
bb_error_msg("%s", s);
|
||||
}
|
||||
|
||||
void FAST_FUNC bb_simple_error_msg_and_die(const char *s)
|
||||
{
|
||||
bb_error_msg_and_die("%s", s);
|
||||
}
|
||||
|
@ -12,7 +12,7 @@
|
||||
void FAST_FUNC bb_warn_ignoring_args(char *arg)
|
||||
{
|
||||
if (arg) {
|
||||
bb_error_msg("ignoring all arguments");
|
||||
bb_simple_error_msg("ignoring all arguments");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -66,7 +66,7 @@ int FAST_FUNC setsockopt_bindtodevice(int fd, const char *iface)
|
||||
int FAST_FUNC setsockopt_bindtodevice(int fd UNUSED_PARAM,
|
||||
const char *iface UNUSED_PARAM)
|
||||
{
|
||||
bb_error_msg("SO_BINDTODEVICE is not supported on this system");
|
||||
bb_simple_error_msg("SO_BINDTODEVICE is not supported on this system");
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
@ -109,7 +109,7 @@ void FAST_FUNC xconnect(int s, const struct sockaddr *s_addr, socklen_t addrlen)
|
||||
bb_perror_msg_and_die("%s (%s)",
|
||||
"can't connect to remote host",
|
||||
inet_ntoa(((struct sockaddr_in *)s_addr)->sin_addr));
|
||||
bb_perror_msg_and_die("can't connect to remote host");
|
||||
bb_simple_perror_msg_and_die("can't connect to remote host");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -426,6 +426,6 @@ int FAST_FUNC wait_for_exitstatus(pid_t pid)
|
||||
|
||||
n = safe_waitpid(pid, &exit_status, 0);
|
||||
if (n < 0)
|
||||
bb_perror_msg_and_die("waitpid");
|
||||
bb_simple_perror_msg_and_die("waitpid");
|
||||
return exit_status;
|
||||
}
|
||||
|
@ -27,7 +27,7 @@
|
||||
|
||||
void FAST_FUNC bb_die_memory_exhausted(void)
|
||||
{
|
||||
bb_error_msg_and_die(bb_msg_memory_exhausted);
|
||||
bb_simple_error_msg_and_die(bb_msg_memory_exhausted);
|
||||
}
|
||||
|
||||
#ifndef DMALLOC
|
||||
@ -40,7 +40,7 @@ void* FAST_FUNC malloc_or_warn(size_t size)
|
||||
{
|
||||
void *ptr = malloc(size);
|
||||
if (ptr == NULL && size != 0)
|
||||
bb_error_msg(bb_msg_memory_exhausted);
|
||||
bb_simple_error_msg(bb_msg_memory_exhausted);
|
||||
return ptr;
|
||||
}
|
||||
|
||||
@ -97,7 +97,7 @@ char* FAST_FUNC xstrndup(const char *s, int n)
|
||||
char *t;
|
||||
|
||||
if (ENABLE_DEBUG && s == NULL)
|
||||
bb_error_msg_and_die("xstrndup bug");
|
||||
bb_simple_error_msg_and_die("xstrndup bug");
|
||||
|
||||
/* We can just xmalloc(n+1) and strncpy into it, */
|
||||
/* but think about xstrndup("abc", 10000) wastage! */
|
||||
@ -215,13 +215,13 @@ int FAST_FUNC rename_or_warn(const char *oldpath, const char *newpath)
|
||||
void FAST_FUNC xpipe(int filedes[2])
|
||||
{
|
||||
if (pipe(filedes))
|
||||
bb_perror_msg_and_die("can't create pipe");
|
||||
bb_simple_perror_msg_and_die("can't create pipe");
|
||||
}
|
||||
|
||||
void FAST_FUNC xdup2(int from, int to)
|
||||
{
|
||||
if (dup2(from, to) != to)
|
||||
bb_perror_msg_and_die("can't duplicate file descriptor");
|
||||
bb_simple_perror_msg_and_die("can't duplicate file descriptor");
|
||||
// " %d to %d", from, to);
|
||||
}
|
||||
|
||||
@ -245,7 +245,7 @@ void FAST_FUNC xwrite(int fd, const void *buf, size_t count)
|
||||
* or some writes succeeded, then we hit an error.
|
||||
* In either case, errno is set.
|
||||
*/
|
||||
bb_perror_msg_and_die(
|
||||
bb_simple_perror_msg_and_die(
|
||||
size >= 0 ? "short write" : "write error"
|
||||
);
|
||||
}
|
||||
@ -259,7 +259,7 @@ void FAST_FUNC xwrite_str(int fd, const char *str)
|
||||
void FAST_FUNC xclose(int fd)
|
||||
{
|
||||
if (close(fd))
|
||||
bb_perror_msg_and_die("close failed");
|
||||
bb_simple_perror_msg_and_die("close failed");
|
||||
}
|
||||
|
||||
// Die with an error message if we can't lseek to the right spot.
|
||||
@ -267,9 +267,7 @@ off_t FAST_FUNC xlseek(int fd, off_t offset, int whence)
|
||||
{
|
||||
off_t off = lseek(fd, offset, whence);
|
||||
if (off == (off_t)-1) {
|
||||
if (whence == SEEK_SET)
|
||||
bb_perror_msg_and_die("lseek(%"OFF_FMT"u)", offset);
|
||||
bb_perror_msg_and_die("lseek");
|
||||
bb_perror_msg_and_die("lseek(%"OFF_FMT"u, %d)", offset, whence);
|
||||
}
|
||||
return off;
|
||||
}
|
||||
@ -384,23 +382,23 @@ void FAST_FUNC bb_unsetenv_and_free(char *var)
|
||||
// setgid() will fail and we'll _still_be_root_, which is bad.)
|
||||
void FAST_FUNC xsetgid(gid_t gid)
|
||||
{
|
||||
if (setgid(gid)) bb_perror_msg_and_die("setgid");
|
||||
if (setgid(gid)) bb_simple_perror_msg_and_die("setgid");
|
||||
}
|
||||
|
||||
// Die with an error message if we can't set uid. (See xsetgid() for why.)
|
||||
void FAST_FUNC xsetuid(uid_t uid)
|
||||
{
|
||||
if (setuid(uid)) bb_perror_msg_and_die("setuid");
|
||||
if (setuid(uid)) bb_simple_perror_msg_and_die("setuid");
|
||||
}
|
||||
|
||||
void FAST_FUNC xsetegid(gid_t egid)
|
||||
{
|
||||
if (setegid(egid)) bb_perror_msg_and_die("setegid");
|
||||
if (setegid(egid)) bb_simple_perror_msg_and_die("setegid");
|
||||
}
|
||||
|
||||
void FAST_FUNC xseteuid(uid_t euid)
|
||||
{
|
||||
if (seteuid(euid)) bb_perror_msg_and_die("seteuid");
|
||||
if (seteuid(euid)) bb_simple_perror_msg_and_die("seteuid");
|
||||
}
|
||||
|
||||
// Die if we can't chdir to a new path.
|
||||
@ -413,7 +411,7 @@ void FAST_FUNC xchdir(const char *path)
|
||||
void FAST_FUNC xfchdir(int fd)
|
||||
{
|
||||
if (fchdir(fd))
|
||||
bb_perror_msg_and_die("fchdir");
|
||||
bb_simple_perror_msg_and_die("fchdir");
|
||||
}
|
||||
|
||||
void FAST_FUNC xchroot(const char *path)
|
||||
@ -463,7 +461,7 @@ int FAST_FUNC xsocket(int domain, int type, int protocol)
|
||||
IF_FEATURE_IPV6(if (domain == AF_INET6) s = "INET6";)
|
||||
bb_perror_msg_and_die("socket(AF_%s,%d,%d)", s, type, protocol);
|
||||
#else
|
||||
bb_perror_msg_and_die("socket");
|
||||
bb_simple_perror_msg_and_die("socket");
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -473,13 +471,13 @@ IF_FEATURE_IPV6(if (domain == AF_INET6) s = "INET6";)
|
||||
// Die with an error message if we can't bind a socket to an address.
|
||||
void FAST_FUNC xbind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen)
|
||||
{
|
||||
if (bind(sockfd, my_addr, addrlen)) bb_perror_msg_and_die("bind");
|
||||
if (bind(sockfd, my_addr, addrlen)) bb_simple_perror_msg_and_die("bind");
|
||||
}
|
||||
|
||||
// Die with an error message if we can't listen for connections on a socket.
|
||||
void FAST_FUNC xlisten(int s, int backlog)
|
||||
{
|
||||
if (listen(s, backlog)) bb_perror_msg_and_die("listen");
|
||||
if (listen(s, backlog)) bb_simple_perror_msg_and_die("listen");
|
||||
}
|
||||
|
||||
/* Die with an error message if sendto failed.
|
||||
@ -491,7 +489,7 @@ ssize_t FAST_FUNC xsendto(int s, const void *buf, size_t len, const struct socka
|
||||
if (ret < 0) {
|
||||
if (ENABLE_FEATURE_CLEAN_UP)
|
||||
close(s);
|
||||
bb_perror_msg_and_die("sendto");
|
||||
bb_simple_perror_msg_and_die("sendto");
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@ -519,12 +517,12 @@ void FAST_FUNC selinux_or_die(void)
|
||||
#if ENABLE_SELINUX
|
||||
int rc = is_selinux_enabled();
|
||||
if (rc == 0) {
|
||||
bb_error_msg_and_die("SELinux is disabled");
|
||||
bb_simple_error_msg_and_die("SELinux is disabled");
|
||||
} else if (rc < 0) {
|
||||
bb_error_msg_and_die("is_selinux_enabled() failed");
|
||||
bb_simple_error_msg_and_die("is_selinux_enabled() failed");
|
||||
}
|
||||
#else
|
||||
bb_error_msg_and_die("SELinux support is disabled");
|
||||
bb_simple_error_msg_and_die("SELinux support is disabled");
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -675,7 +673,7 @@ pid_t FAST_FUNC xfork(void)
|
||||
pid_t pid;
|
||||
pid = fork();
|
||||
if (pid < 0) /* wtf? */
|
||||
bb_perror_msg_and_die("vfork"+1);
|
||||
bb_simple_perror_msg_and_die("vfork"+1);
|
||||
return pid;
|
||||
}
|
||||
#endif
|
||||
|
@ -33,7 +33,7 @@ xrealloc_getcwd_or_warn(char *cwd)
|
||||
if (errno == ERANGE)
|
||||
continue;
|
||||
free(cwd);
|
||||
bb_perror_msg("getcwd");
|
||||
bb_simple_perror_msg("getcwd");
|
||||
return NULL;
|
||||
}
|
||||
cwd = xrealloc(cwd, strlen(cwd) + 1);
|
||||
|
@ -12,6 +12,6 @@ struct hostent* FAST_FUNC xgethostbyname(const char *name)
|
||||
{
|
||||
struct hostent *retval = gethostbyname(name);
|
||||
if (!retval)
|
||||
bb_herror_msg_and_die("%s", name);
|
||||
bb_simple_herror_msg_and_die(name);
|
||||
return retval;
|
||||
}
|
||||
|
@ -149,7 +149,7 @@ int addgroup_main(int argc UNUSED_PARAM, char **argv)
|
||||
|
||||
/* need to be root */
|
||||
if (geteuid()) {
|
||||
bb_error_msg_and_die(bb_msg_perm_denied_are_you_root);
|
||||
bb_simple_error_msg_and_die(bb_msg_perm_denied_are_you_root);
|
||||
}
|
||||
/* Syntax:
|
||||
* addgroup group
|
||||
|
@ -159,7 +159,7 @@ static void passwd_wrapper(const char *login_name) NORETURN;
|
||||
static void passwd_wrapper(const char *login_name)
|
||||
{
|
||||
BB_EXECLP("passwd", "passwd", "--", login_name, NULL);
|
||||
bb_error_msg_and_die("can't execute passwd, you must set password manually");
|
||||
bb_simple_error_msg_and_die("can't execute passwd, you must set password manually");
|
||||
}
|
||||
|
||||
//FIXME: upstream adduser has no short options! NOT COMPATIBLE!
|
||||
@ -193,7 +193,7 @@ int adduser_main(int argc UNUSED_PARAM, char **argv)
|
||||
|
||||
/* got root? */
|
||||
if (geteuid()) {
|
||||
bb_error_msg_and_die(bb_msg_perm_denied_are_you_root);
|
||||
bb_simple_error_msg_and_die(bb_msg_perm_denied_are_you_root);
|
||||
}
|
||||
|
||||
pw.pw_gecos = (char *)"Linux User,,,";
|
||||
|
@ -63,7 +63,7 @@ int chpasswd_main(int argc UNUSED_PARAM, char **argv)
|
||||
int opt;
|
||||
|
||||
if (getuid() != 0)
|
||||
bb_error_msg_and_die(bb_msg_perm_denied_are_you_root);
|
||||
bb_simple_error_msg_and_die(bb_msg_perm_denied_are_you_root);
|
||||
|
||||
opt = getopt32long(argv, "^" "emc:R:" "\0" "m--ec:e--mc:c--em",
|
||||
chpasswd_longopts,
|
||||
@ -81,7 +81,7 @@ int chpasswd_main(int argc UNUSED_PARAM, char **argv)
|
||||
|
||||
pass = strchr(name, ':');
|
||||
if (!pass)
|
||||
bb_error_msg_and_die("missing new password");
|
||||
bb_simple_error_msg_and_die("missing new password");
|
||||
*pass++ = '\0';
|
||||
|
||||
xuname2uid(name); /* dies if there is no such user */
|
||||
|
@ -76,7 +76,7 @@ int deluser_main(int argc, char **argv)
|
||||
#endif
|
||||
|
||||
if (geteuid() != 0)
|
||||
bb_error_msg_and_die(bb_msg_perm_denied_are_you_root);
|
||||
bb_simple_error_msg_and_die(bb_msg_perm_denied_are_you_root);
|
||||
|
||||
name = argv[1];
|
||||
member = NULL;
|
||||
|
@ -168,7 +168,7 @@ static void parse_speeds(char *arg)
|
||||
/* note: arg "0" turns into speed B0 */
|
||||
G.numspeed++;
|
||||
if (G.numspeed > MAX_SPEED)
|
||||
bb_error_msg_and_die("too many alternate speeds");
|
||||
bb_simple_error_msg_and_die("too many alternate speeds");
|
||||
}
|
||||
debug("exiting parse_speeds\n");
|
||||
}
|
||||
@ -230,7 +230,7 @@ static void open_tty(void)
|
||||
* Make sure it is open for read/write.
|
||||
*/
|
||||
if ((fcntl(0, F_GETFL) & (O_RDWR|O_RDONLY|O_WRONLY)) != O_RDWR)
|
||||
bb_error_msg_and_die("stdin is not open for read/write");
|
||||
bb_simple_error_msg_and_die("stdin is not open for read/write");
|
||||
|
||||
/* Try to get real tty name instead of "-" */
|
||||
n = xmalloc_ttyname(0);
|
||||
@ -243,7 +243,7 @@ static void open_tty(void)
|
||||
static void set_tty_attrs(void)
|
||||
{
|
||||
if (tcsetattr_stdin_TCSANOW(&G.tty_attrs) < 0)
|
||||
bb_perror_msg_and_die("tcsetattr");
|
||||
bb_simple_perror_msg_and_die("tcsetattr");
|
||||
}
|
||||
|
||||
/* We manipulate tty_attrs this way:
|
||||
@ -485,7 +485,7 @@ static char *get_logname(void)
|
||||
finalize_tty_attrs();
|
||||
if (errno == EINTR || errno == EIO)
|
||||
exit(EXIT_SUCCESS);
|
||||
bb_perror_msg_and_die(bb_msg_read_error);
|
||||
bb_simple_perror_msg_and_die(bb_msg_read_error);
|
||||
}
|
||||
|
||||
switch (c) {
|
||||
@ -582,7 +582,7 @@ int getty_main(int argc UNUSED_PARAM, char **argv)
|
||||
// " sid %d pgid %d",
|
||||
// pid, getppid(),
|
||||
// getsid(0), getpgid(0));
|
||||
bb_perror_msg_and_die("setsid");
|
||||
bb_simple_perror_msg_and_die("setsid");
|
||||
/*
|
||||
* When we can end up here?
|
||||
* Example: setsid() fails when run alone in interactive shell:
|
||||
@ -651,13 +651,13 @@ int getty_main(int argc UNUSED_PARAM, char **argv)
|
||||
tsid = tcgetsid(STDIN_FILENO);
|
||||
if (tsid < 0 || pid != tsid) {
|
||||
if (ioctl(STDIN_FILENO, TIOCSCTTY, /*force:*/ (long)1) < 0)
|
||||
bb_perror_msg_and_die("TIOCSCTTY");
|
||||
bb_simple_perror_msg_and_die("TIOCSCTTY");
|
||||
}
|
||||
|
||||
#ifdef __linux__
|
||||
/* Make ourself a foreground process group within our session */
|
||||
if (tcsetpgrp(STDIN_FILENO, pid) < 0)
|
||||
bb_perror_msg_and_die("tcsetpgrp");
|
||||
bb_simple_perror_msg_and_die("tcsetpgrp");
|
||||
#endif
|
||||
|
||||
/*
|
||||
@ -669,7 +669,7 @@ int getty_main(int argc UNUSED_PARAM, char **argv)
|
||||
* 5 seconds seems to be a good value.
|
||||
*/
|
||||
if (tcgetattr(STDIN_FILENO, &G.tty_attrs) < 0)
|
||||
bb_perror_msg_and_die("tcgetattr");
|
||||
bb_simple_perror_msg_and_die("tcgetattr");
|
||||
|
||||
/* Update the utmp file. This tty is ours now! */
|
||||
update_utmp(pid, LOGIN_PROCESS, G.tty_name, "LOGIN", G.fakehost);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user