summaryrefslogtreecommitdiff
path: root/coreutils
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-02-24 13:36:01 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-02-24 13:36:01 +0000
commit400d8bb45ee25ce226bb343a3dfaab84e6d3a8e1 (patch)
treeaa3cdc9a663f1ac2467803fc215899d86ed1db74 /coreutils
parentd553faf5a53cf9d72e16fc789451a92a797f1b70 (diff)
downloadbusybox-w32-400d8bb45ee25ce226bb343a3dfaab84e6d3a8e1.tar.gz
busybox-w32-400d8bb45ee25ce226bb343a3dfaab84e6d3a8e1.tar.bz2
busybox-w32-400d8bb45ee25ce226bb343a3dfaab84e6d3a8e1.zip
less,klogd,syslogd,nc,tcpudp: exit on signal by killing itself, not exit(1)
*: minor shrink
Diffstat (limited to 'coreutils')
-rw-r--r--coreutils/dd.c66
1 files changed, 33 insertions, 33 deletions
diff --git a/coreutils/dd.c b/coreutils/dd.c
index 7552c8518..961b1fff7 100644
--- a/coreutils/dd.c
+++ b/coreutils/dd.c
@@ -141,7 +141,7 @@ int dd_main(int argc, char **argv)
141#if ENABLE_FEATURE_DD_SIGNAL_HANDLING 141#if ENABLE_FEATURE_DD_SIGNAL_HANDLING
142 sigact.sa_handler = dd_output_status; 142 sigact.sa_handler = dd_output_status;
143 sigact.sa_flags = SA_RESTART; 143 sigact.sa_flags = SA_RESTART;
144 sigemptyset(&sigact.sa_mask); 144 /*sigemptyset(&sigact.sa_mask); - memset did it */
145 sigaction(SIGUSR1, &sigact, NULL); 145 sigaction(SIGUSR1, &sigact, NULL);
146#endif 146#endif
147 147
@@ -164,40 +164,40 @@ int dd_main(int argc, char **argv)
164 if (what == 0) 164 if (what == 0)
165 bb_show_usage(); 165 bb_show_usage();
166 arg += key_len; 166 arg += key_len;
167 /* Must fit into positive ssize_t */
168#if ENABLE_FEATURE_DD_IBS_OBS 167#if ENABLE_FEATURE_DD_IBS_OBS
169 if (what == OP_ibs) { 168 if (what == OP_ibs) {
170 ibs = xatoul_range_sfx(arg, 1, ((size_t)-1L)/2, dd_suffixes); 169 /* Must fit into positive ssize_t */
171 continue; 170 ibs = xatoul_range_sfx(arg, 1, ((size_t)-1L)/2, dd_suffixes);
172 } 171 continue;
173 if (what == OP_obs) { 172 }
174 obs = xatoul_range_sfx(arg, 1, ((size_t)-1L)/2, dd_suffixes); 173 if (what == OP_obs) {
175 continue; 174 obs = xatoul_range_sfx(arg, 1, ((size_t)-1L)/2, dd_suffixes);
176 } 175 continue;
177 if (what == OP_conv) { 176 }
178 while (1) { 177 if (what == OP_conv) {
179 /* find ',', replace them with nil so we can use arg for 178 while (1) {
180 * index_in_strings() without copying. 179 /* find ',', replace them with NUL so we can use arg for
181 * We rely on arg being non-null, else strchr would fault. 180 * index_in_strings() without copying.
182 */ 181 * We rely on arg being non-null, else strchr would fault.
183 key = strchr(arg, ','); 182 */
184 if (key) 183 key = strchr(arg, ',');
185 *key = '\0'; 184 if (key)
186 what = index_in_strings(keywords, arg) + 1; 185 *key = '\0';
187 if (what < OP_conv_notrunc) 186 what = index_in_strings(keywords, arg) + 1;
188 bb_error_msg_and_die(bb_msg_invalid_arg, arg, "conv"); 187 if (what < OP_conv_notrunc)
189 if (what == OP_conv_notrunc) 188 bb_error_msg_and_die(bb_msg_invalid_arg, arg, "conv");
190 flags |= FLAG_NOTRUNC; 189 if (what == OP_conv_notrunc)
191 if (what == OP_conv_sync) 190 flags |= FLAG_NOTRUNC;
192 flags |= FLAG_SYNC; 191 if (what == OP_conv_sync)
193 if (what == OP_conv_noerror) 192 flags |= FLAG_SYNC;
194 flags |= FLAG_NOERROR; 193 if (what == OP_conv_noerror)
195 if (!key) /* no ',' left, so this was the last specifier */ 194 flags |= FLAG_NOERROR;
196 break; 195 if (!key) /* no ',' left, so this was the last specifier */
197 arg = key + 1; /* skip this keyword and ',' */ 196 break;
198 } 197 arg = key + 1; /* skip this keyword and ',' */
199 continue;
200 } 198 }
199 continue;
200 }
201#endif 201#endif
202 if (what == OP_bs) { 202 if (what == OP_bs) {
203 ibs = obs = xatoul_range_sfx(arg, 1, ((size_t)-1L)/2, dd_suffixes); 203 ibs = obs = xatoul_range_sfx(arg, 1, ((size_t)-1L)/2, dd_suffixes);