less,klogd,syslogd,nc,tcpudp: exit on signal by killing itself, not exit(1)
*: minor shrink
diff --git a/coreutils/dd.c b/coreutils/dd.c
index 7552c85..961b1ff 100644
--- a/coreutils/dd.c
+++ b/coreutils/dd.c
@@ -141,7 +141,7 @@
#if ENABLE_FEATURE_DD_SIGNAL_HANDLING
sigact.sa_handler = dd_output_status;
sigact.sa_flags = SA_RESTART;
- sigemptyset(&sigact.sa_mask);
+ /*sigemptyset(&sigact.sa_mask); - memset did it */
sigaction(SIGUSR1, &sigact, NULL);
#endif
@@ -164,40 +164,40 @@
if (what == 0)
bb_show_usage();
arg += key_len;
- /* Must fit into positive ssize_t */
#if ENABLE_FEATURE_DD_IBS_OBS
- if (what == OP_ibs) {
- ibs = xatoul_range_sfx(arg, 1, ((size_t)-1L)/2, dd_suffixes);
- continue;
+ if (what == OP_ibs) {
+ /* Must fit into positive ssize_t */
+ ibs = xatoul_range_sfx(arg, 1, ((size_t)-1L)/2, dd_suffixes);
+ continue;
+ }
+ if (what == OP_obs) {
+ obs = xatoul_range_sfx(arg, 1, ((size_t)-1L)/2, dd_suffixes);
+ continue;
+ }
+ if (what == OP_conv) {
+ while (1) {
+ /* find ',', replace them with NUL so we can use arg for
+ * index_in_strings() without copying.
+ * We rely on arg being non-null, else strchr would fault.
+ */
+ key = strchr(arg, ',');
+ if (key)
+ *key = '\0';
+ what = index_in_strings(keywords, arg) + 1;
+ if (what < OP_conv_notrunc)
+ bb_error_msg_and_die(bb_msg_invalid_arg, arg, "conv");
+ if (what == OP_conv_notrunc)
+ flags |= FLAG_NOTRUNC;
+ if (what == OP_conv_sync)
+ flags |= FLAG_SYNC;
+ if (what == OP_conv_noerror)
+ flags |= FLAG_NOERROR;
+ if (!key) /* no ',' left, so this was the last specifier */
+ break;
+ arg = key + 1; /* skip this keyword and ',' */
}
- if (what == OP_obs) {
- obs = xatoul_range_sfx(arg, 1, ((size_t)-1L)/2, dd_suffixes);
- continue;
- }
- if (what == OP_conv) {
- while (1) {
- /* find ',', replace them with nil so we can use arg for
- * index_in_strings() without copying.
- * We rely on arg being non-null, else strchr would fault.
- */
- key = strchr(arg, ',');
- if (key)
- *key = '\0';
- what = index_in_strings(keywords, arg) + 1;
- if (what < OP_conv_notrunc)
- bb_error_msg_and_die(bb_msg_invalid_arg, arg, "conv");
- if (what == OP_conv_notrunc)
- flags |= FLAG_NOTRUNC;
- if (what == OP_conv_sync)
- flags |= FLAG_SYNC;
- if (what == OP_conv_noerror)
- flags |= FLAG_NOERROR;
- if (!key) /* no ',' left, so this was the last specifier */
- break;
- arg = key + 1; /* skip this keyword and ',' */
- }
- continue;
- }
+ continue;
+ }
#endif
if (what == OP_bs) {
ibs = obs = xatoul_range_sfx(arg, 1, ((size_t)-1L)/2, dd_suffixes);