aboutsummaryrefslogtreecommitdiff
path: root/miscutils
diff options
context:
space:
mode:
Diffstat (limited to 'miscutils')
-rw-r--r--miscutils/crond.c21
-rw-r--r--miscutils/crontab.c36
-rw-r--r--miscutils/devfsd.c8
-rw-r--r--miscutils/hdparm.c16
-rw-r--r--miscutils/last.c10
-rw-r--r--miscutils/less.c54
-rw-r--r--miscutils/makedevs.c13
-rw-r--r--miscutils/mountpoint.c6
-rw-r--r--miscutils/mt.c6
-rw-r--r--miscutils/rx.c16
-rw-r--r--miscutils/watchdog.c9
11 files changed, 49 insertions, 146 deletions
diff --git a/miscutils/crond.c b/miscutils/crond.c
index 3f60468de..3e12fedc8 100644
--- a/miscutils/crond.c
+++ b/miscutils/crond.c
@@ -13,22 +13,7 @@
13#define VERSION "2.3.2" 13#define VERSION "2.3.2"
14 14
15#include "busybox.h" 15#include "busybox.h"
16#include <stdio.h> 16#include <sys/syslog.h>
17#include <stdlib.h>
18#include <stdarg.h>
19#include <string.h>
20#include <errno.h>
21#include <time.h>
22#include <dirent.h>
23#include <fcntl.h>
24#include <unistd.h>
25#include <syslog.h>
26#include <signal.h>
27#include <getopt.h>
28#include <sys/ioctl.h>
29#include <sys/wait.h>
30#include <sys/stat.h>
31#include <sys/resource.h>
32 17
33#define arysize(ary) (sizeof(ary)/sizeof((ary)[0])) 18#define arysize(ary) (sizeof(ary)/sizeof((ary)[0]))
34 19
@@ -193,7 +178,7 @@ int crond_main(int ac, char **av)
193 * change directory 178 * change directory
194 */ 179 */
195 180
196 bb_xchdir(CDir); 181 xchdir(CDir);
197 signal(SIGHUP, SIG_IGN); /* hmm.. but, if kill -HUP original 182 signal(SIGHUP, SIG_IGN); /* hmm.. but, if kill -HUP original
198 * version - his died. ;( 183 * version - his died. ;(
199 */ 184 */
@@ -208,7 +193,7 @@ int crond_main(int ac, char **av)
208 /* reexec for vfork() do continue parent */ 193 /* reexec for vfork() do continue parent */
209 vfork_daemon_rexec(1, 0, ac, av, "-f"); 194 vfork_daemon_rexec(1, 0, ac, av, "-f");
210#else 195#else
211 bb_xdaemon(1, 0); 196 xdaemon(1, 0);
212#endif 197#endif
213 } 198 }
214 199
diff --git a/miscutils/crontab.c b/miscutils/crontab.c
index 0ed59b0dc..a8e650c60 100644
--- a/miscutils/crontab.c
+++ b/miscutils/crontab.c
@@ -11,22 +11,6 @@
11 */ 11 */
12 12
13#include "busybox.h" 13#include "busybox.h"
14#include <stdio.h>
15#include <stdlib.h>
16#include <stdarg.h>
17#include <string.h>
18#include <errno.h>
19#include <time.h>
20#include <dirent.h>
21#include <fcntl.h>
22#include <unistd.h>
23#include <syslog.h>
24#include <signal.h>
25#include <getopt.h>
26#include <sys/ioctl.h>
27#include <sys/wait.h>
28#include <sys/stat.h>
29#include <sys/resource.h>
30 14
31#ifndef CRONTABS 15#ifndef CRONTABS
32#define CRONTABS "/var/spool/cron/crontabs" 16#define CRONTABS "/var/spool/cron/crontabs"
@@ -47,8 +31,7 @@ static void EditFile(const char *user, const char *file);
47static int GetReplaceStream(const char *user, const char *file); 31static int GetReplaceStream(const char *user, const char *file);
48static int ChangeUser(const char *user, short dochdir); 32static int ChangeUser(const char *user, short dochdir);
49 33
50int 34int crontab_main(int ac, char **av)
51crontab_main(int ac, char **av)
52{ 35{
53 enum { NONE, EDIT, LIST, REPLACE, DELETE } option = NONE; 36 enum { NONE, EDIT, LIST, REPLACE, DELETE } option = NONE;
54 const struct passwd *pas; 37 const struct passwd *pas;
@@ -147,7 +130,7 @@ crontab_main(int ac, char **av)
147 * Change directory to our crontab directory 130 * Change directory to our crontab directory
148 */ 131 */
149 132
150 bb_xchdir(CDir); 133 xchdir(CDir);
151 134
152 /* 135 /*
153 * Handle options as appropriate 136 * Handle options as appropriate
@@ -177,7 +160,7 @@ crontab_main(int ac, char **av)
177 char buf[1024]; 160 char buf[1024];
178 161
179 snprintf(tmp, sizeof(tmp), TMPDIR "/crontab.%d", getpid()); 162 snprintf(tmp, sizeof(tmp), TMPDIR "/crontab.%d", getpid());
180 fd = bb_xopen3(tmp, O_RDWR|O_CREAT|O_TRUNC|O_EXCL, 0600); 163 fd = xopen3(tmp, O_RDWR|O_CREAT|O_TRUNC|O_EXCL, 0600);
181 chown(tmp, getuid(), getgid()); 164 chown(tmp, getuid(), getgid());
182 if ((fi = fopen(pas->pw_name, "r"))) { 165 if ((fi = fopen(pas->pw_name, "r"))) {
183 while ((n = fread(buf, 1, sizeof(buf), fi)) > 0) 166 while ((n = fread(buf, 1, sizeof(buf), fi)) > 0)
@@ -244,8 +227,7 @@ crontab_main(int ac, char **av)
244 return 0; 227 return 0;
245} 228}
246 229
247static int 230static int GetReplaceStream(const char *user, const char *file)
248GetReplaceStream(const char *user, const char *file)
249{ 231{
250 int filedes[2]; 232 int filedes[2];
251 int pid; 233 int pid;
@@ -284,7 +266,7 @@ GetReplaceStream(const char *user, const char *file)
284 exit(0); 266 exit(0);
285 267
286 bb_default_error_retval = 0; 268 bb_default_error_retval = 0;
287 fd = bb_xopen3(file, O_RDONLY, 0); 269 fd = xopen3(file, O_RDONLY, 0);
288 buf[0] = 0; 270 buf[0] = 0;
289 write(filedes[1], buf, 1); 271 write(filedes[1], buf, 1);
290 while ((n = read(fd, buf, sizeof(buf))) > 0) { 272 while ((n = read(fd, buf, sizeof(buf))) > 0) {
@@ -293,8 +275,7 @@ GetReplaceStream(const char *user, const char *file)
293 exit(0); 275 exit(0);
294} 276}
295 277
296static void 278static void EditFile(const char *user, const char *file)
297EditFile(const char *user, const char *file)
298{ 279{
299 int pid; 280 int pid;
300 281
@@ -324,8 +305,7 @@ EditFile(const char *user, const char *file)
324 wait4(pid, NULL, 0, NULL); 305 wait4(pid, NULL, 0, NULL);
325} 306}
326 307
327static int 308static int ChangeUser(const char *user, short dochdir)
328ChangeUser(const char *user, short dochdir)
329{ 309{
330 struct passwd *pas; 310 struct passwd *pas;
331 311
@@ -349,7 +329,7 @@ ChangeUser(const char *user, short dochdir)
349 if (dochdir) { 329 if (dochdir) {
350 if (chdir(pas->pw_dir) < 0) { 330 if (chdir(pas->pw_dir) < 0) {
351 bb_perror_msg("chdir failed: %s %s", user, pas->pw_dir); 331 bb_perror_msg("chdir failed: %s %s", user, pas->pw_dir);
352 bb_xchdir(TMPDIR); 332 xchdir(TMPDIR);
353 } 333 }
354 } 334 }
355 return(pas->pw_uid); 335 return(pas->pw_uid);
diff --git a/miscutils/devfsd.c b/miscutils/devfsd.c
index 39f04780a..0f36970f9 100644
--- a/miscutils/devfsd.c
+++ b/miscutils/devfsd.c
@@ -475,7 +475,7 @@ int devfsd_main (int argc, char **argv)
475 if (chdir (mount_point) != 0) 475 if (chdir (mount_point) != 0)
476 devfsd_perror_msg_and_die(mount_point); 476 devfsd_perror_msg_and_die(mount_point);
477 477
478 fd = bb_xopen (".devfsd", O_RDONLY); 478 fd = xopen (".devfsd", O_RDONLY);
479 479
480 if (fcntl (fd, F_SETFD, FD_CLOEXEC) != 0) 480 if (fcntl (fd, F_SETFD, FD_CLOEXEC) != 0)
481 devfsd_perror_msg_and_die("FD_CLOEXEC"); 481 devfsd_perror_msg_and_die("FD_CLOEXEC");
@@ -704,7 +704,7 @@ static void process_config_line (const char *line, unsigned long *event_mask)
704 num_args -= 3; 704 num_args -= 3;
705 705
706 for (count = 0; count < num_args; ++count) 706 for (count = 0; count < num_args; ++count)
707 new->u.execute.argv[count] = bb_xstrdup (p[count]); 707 new->u.execute.argv[count] = xstrdup (p[count]);
708 708
709 new->u.execute.argv[num_args] = NULL; 709 new->u.execute.argv[num_args] = NULL;
710 break; 710 break;
@@ -714,8 +714,8 @@ static void process_config_line (const char *line, unsigned long *event_mask)
714 if (num_args != 2) 714 if (num_args != 2)
715 goto process_config_line_err; /* missing path and function in line */ 715 goto process_config_line_err; /* missing path and function in line */
716 716
717 new->u.copy.source = bb_xstrdup (p[0]); 717 new->u.copy.source = xstrdup (p[0]);
718 new->u.copy.destination = bb_xstrdup (p[1]); 718 new->u.copy.destination = xstrdup (p[1]);
719 break; 719 break;
720 case 8: /* IGNORE */ 720 case 8: /* IGNORE */
721 /* FALLTROUGH */ 721 /* FALLTROUGH */
diff --git a/miscutils/hdparm.c b/miscutils/hdparm.c
index 925644e1f..aea96d622 100644
--- a/miscutils/hdparm.c
+++ b/miscutils/hdparm.c
@@ -13,22 +13,8 @@
13 */ 13 */
14 14
15#include "busybox.h" 15#include "busybox.h"
16#include <string.h>
17#include <fcntl.h>
18#include <errno.h>
19#include <ctype.h>
20#include <sys/ioctl.h>
21#include <sys/sysmacros.h>
22#include <sys/times.h>
23#include <sys/mman.h>
24#include <linux/types.h>
25#include <linux/hdreg.h> 16#include <linux/hdreg.h>
26 17
27#if BB_BIG_ENDIAN && !defined(__USE_XOPEN)
28# define __USE_XOPEN
29#endif
30#include <unistd.h>
31
32/* device types */ 18/* device types */
33/* ------------ */ 19/* ------------ */
34#define NO_DEV 0xffff 20#define NO_DEV 0xffff
@@ -1619,7 +1605,7 @@ static void process_dev(char *devname)
1619 unsigned char args[4] = {WIN_SETFEATURES,0,0,0}; 1605 unsigned char args[4] = {WIN_SETFEATURES,0,0,0};
1620 const char *fmt = " %s\t= %2ld"; 1606 const char *fmt = " %s\t= %2ld";
1621 1607
1622 fd = bb_xopen(devname, O_RDONLY|O_NONBLOCK); 1608 fd = xopen(devname, O_RDONLY|O_NONBLOCK);
1623 printf("\n%s:\n", devname); 1609 printf("\n%s:\n", devname);
1624 1610
1625 if (set_readahead) 1611 if (set_readahead)
diff --git a/miscutils/last.c b/miscutils/last.c
index 47c18ffa0..6e35879f3 100644
--- a/miscutils/last.c
+++ b/miscutils/last.c
@@ -8,15 +8,7 @@
8 */ 8 */
9 9
10#include "busybox.h" 10#include "busybox.h"
11#include <sys/types.h>
12#include <fcntl.h>
13#include <unistd.h>
14#include <stdlib.h>
15#include <utmp.h> 11#include <utmp.h>
16#include <sys/stat.h>
17#include <errno.h>
18#include <string.h>
19#include <time.h>
20 12
21#ifndef SHUTDOWN_TIME 13#ifndef SHUTDOWN_TIME
22# define SHUTDOWN_TIME 254 14# define SHUTDOWN_TIME 254
@@ -43,7 +35,7 @@ int last_main(int argc, char **argv)
43 if (argc > 1) { 35 if (argc > 1) {
44 bb_show_usage(); 36 bb_show_usage();
45 } 37 }
46 file = bb_xopen(bb_path_wtmp_file, O_RDONLY); 38 file = xopen(bb_path_wtmp_file, O_RDONLY);
47 39
48 printf("%-10s %-14s %-18s %-12.12s %s\n", "USER", "TTY", "HOST", "LOGIN", "TIME"); 40 printf("%-10s %-14s %-18s %-12.12s %s\n", "USER", "TTY", "HOST", "LOGIN", "TIME");
49 while ((n = safe_read(file, (void*)&ut, sizeof(struct utmp))) != 0) { 41 while ((n = safe_read(file, (void*)&ut, sizeof(struct utmp))) != 0) {
diff --git a/miscutils/less.c b/miscutils/less.c
index 596490483..9dd9b9e56 100644
--- a/miscutils/less.c
+++ b/miscutils/less.c
@@ -31,12 +31,6 @@
31*/ 31*/
32 32
33#include "busybox.h" 33#include "busybox.h"
34#include <stdio.h>
35#include <stdlib.h>
36#include <string.h>
37#include <termios.h>
38#include <unistd.h>
39#include <ctype.h>
40 34
41#ifdef CONFIG_FEATURE_LESS_REGEXP 35#ifdef CONFIG_FEATURE_LESS_REGEXP
42#include "xregex.h" 36#include "xregex.h"
@@ -196,7 +190,7 @@ static void add_linenumbers(void)
196 190
197 for (i = 0; i <= num_flines; i++) { 191 for (i = 0; i <= num_flines; i++) {
198 safe_strncpy(current_line, flines[i], 256); 192 safe_strncpy(current_line, flines[i], 256);
199 flines[i] = bb_xasprintf("%5d %s", i + 1, current_line); 193 flines[i] = xasprintf("%5d %s", i + 1, current_line);
200 } 194 }
201} 195}
202 196
@@ -206,15 +200,15 @@ static void data_readlines(void)
206 char current_line[256]; 200 char current_line[256];
207 FILE *fp; 201 FILE *fp;
208 202
209 fp = (inp_stdin) ? stdin : bb_xfopen(filename, "r"); 203 fp = (inp_stdin) ? stdin : xfopen(filename, "r");
210 flines = NULL; 204 flines = NULL;
211 for (i = 0; (feof(fp)==0) && (i <= MAXLINES); i++) { 205 for (i = 0; (feof(fp)==0) && (i <= MAXLINES); i++) {
212 strcpy(current_line, ""); 206 strcpy(current_line, "");
213 fgets(current_line, 256, fp); 207 fgets(current_line, 256, fp);
214 if (fp != stdin) 208 if (fp != stdin)
215 bb_xferror(fp, filename); 209 xferror(fp, filename);
216 flines = xrealloc(flines, (i+1) * sizeof(char *)); 210 flines = xrealloc(flines, (i+1) * sizeof(char *));
217 flines[i] = bb_xstrdup(current_line); 211 flines[i] = xstrdup(current_line);
218 } 212 }
219 num_flines = i - 2; 213 num_flines = i - 2;
220 214
@@ -226,7 +220,7 @@ static void data_readlines(void)
226 fclose(fp); 220 fclose(fp);
227 221
228 if (inp == NULL) 222 if (inp == NULL)
229 inp = (inp_stdin) ? bb_xfopen(CURRENT_TTY, "r") : stdin; 223 inp = (inp_stdin) ? xfopen(CURRENT_TTY, "r") : stdin;
230 224
231 if (flags & FLAG_N) 225 if (flags & FLAG_N)
232 add_linenumbers(); 226 add_linenumbers();
@@ -357,12 +351,12 @@ static void buffer_init(void)
357 /* Fill the buffer until the end of the file or the 351 /* Fill the buffer until the end of the file or the
358 end of the buffer is reached */ 352 end of the buffer is reached */
359 for (i = 0; (i < (height - 1)) && (i <= num_flines); i++) { 353 for (i = 0; (i < (height - 1)) && (i <= num_flines); i++) {
360 buffer[i] = bb_xstrdup(flines[i]); 354 buffer[i] = xstrdup(flines[i]);
361 } 355 }
362 356
363 /* If the buffer still isn't full, fill it with blank lines */ 357 /* If the buffer still isn't full, fill it with blank lines */
364 for (; i < (height - 1); i++) { 358 for (; i < (height - 1); i++) {
365 buffer[i] = bb_xstrdup(""); 359 buffer[i] = xstrdup("");
366 } 360 }
367} 361}
368 362
@@ -376,7 +370,7 @@ static void buffer_down(int nlines)
376 line_pos += nlines; 370 line_pos += nlines;
377 for (i = 0; i < (height - 1); i++) { 371 for (i = 0; i < (height - 1); i++) {
378 free(buffer[i]); 372 free(buffer[i]);
379 buffer[i] = bb_xstrdup(flines[line_pos + i]); 373 buffer[i] = xstrdup(flines[line_pos + i]);
380 } 374 }
381 } 375 }
382 else { 376 else {
@@ -386,7 +380,7 @@ static void buffer_down(int nlines)
386 line_pos += 1; 380 line_pos += 1;
387 for (i = 0; i < (height - 1); i++) { 381 for (i = 0; i < (height - 1); i++) {
388 free(buffer[i]); 382 free(buffer[i]);
389 buffer[i] = bb_xstrdup(flines[line_pos + i]); 383 buffer[i] = xstrdup(flines[line_pos + i]);
390 } 384 }
391 } 385 }
392 } 386 }
@@ -407,7 +401,7 @@ static void buffer_up(int nlines)
407 line_pos -= nlines; 401 line_pos -= nlines;
408 for (i = 0; i < (height - 1); i++) { 402 for (i = 0; i < (height - 1); i++) {
409 free(buffer[i]); 403 free(buffer[i]);
410 buffer[i] = bb_xstrdup(flines[line_pos + i]); 404 buffer[i] = xstrdup(flines[line_pos + i]);
411 } 405 }
412 } 406 }
413 else { 407 else {
@@ -417,7 +411,7 @@ static void buffer_up(int nlines)
417 line_pos -= 1; 411 line_pos -= 1;
418 for (i = 0; i < (height - 1); i++) { 412 for (i = 0; i < (height - 1); i++) {
419 free(buffer[i]); 413 free(buffer[i]);
420 buffer[i] = bb_xstrdup(flines[line_pos + i]); 414 buffer[i] = xstrdup(flines[line_pos + i]);
421 } 415 }
422 } 416 }
423 } 417 }
@@ -439,10 +433,10 @@ static void buffer_up(int nlines)
439 for (i = 0; i < (height - 1); i++) { 433 for (i = 0; i < (height - 1); i++) {
440 free(buffer[i]); 434 free(buffer[i]);
441 if (i < tilde_line - nlines + 1) 435 if (i < tilde_line - nlines + 1)
442 buffer[i] = bb_xstrdup(flines[line_pos + i]); 436 buffer[i] = xstrdup(flines[line_pos + i]);
443 else { 437 else {
444 if (line_pos >= num_flines - height + 2) 438 if (line_pos >= num_flines - height + 2)
445 buffer[i] = bb_xstrdup("~\n"); 439 buffer[i] = xstrdup("~\n");
446 } 440 }
447 } 441 }
448 } 442 }
@@ -461,7 +455,7 @@ static void buffer_line(int linenum)
461 else if (linenum < (num_flines - height - 2)) { 455 else if (linenum < (num_flines - height - 2)) {
462 for (i = 0; i < (height - 1); i++) { 456 for (i = 0; i < (height - 1); i++) {
463 free(buffer[i]); 457 free(buffer[i]);
464 buffer[i] = bb_xstrdup(flines[linenum + i]); 458 buffer[i] = xstrdup(flines[linenum + i]);
465 } 459 }
466 line_pos = linenum; 460 line_pos = linenum;
467 buffer_print(); 461 buffer_print();
@@ -470,9 +464,9 @@ static void buffer_line(int linenum)
470 for (i = 0; i < (height - 1); i++) { 464 for (i = 0; i < (height - 1); i++) {
471 free(buffer[i]); 465 free(buffer[i]);
472 if (linenum + i < num_flines + 2) 466 if (linenum + i < num_flines + 2)
473 buffer[i] = bb_xstrdup(flines[linenum + i]); 467 buffer[i] = xstrdup(flines[linenum + i]);
474 else 468 else
475 buffer[i] = bb_xstrdup((flags & FLAG_TILDE) ? "\n" : "~\n"); 469 buffer[i] = xstrdup((flags & FLAG_TILDE) ? "\n" : "~\n");
476 } 470 }
477 line_pos = linenum; 471 line_pos = linenum;
478 /* Set past_eof so buffer_down and buffer_up act differently */ 472 /* Set past_eof so buffer_down and buffer_up act differently */
@@ -508,7 +502,7 @@ static void examine_file(void)
508 newline_offset = strlen(filename) - 1; 502 newline_offset = strlen(filename) - 1;
509 filename[newline_offset] = '\0'; 503 filename[newline_offset] = '\0';
510 504
511 files[num_files] = bb_xstrdup(filename); 505 files[num_files] = xstrdup(filename);
512 current_file = num_files + 1; 506 current_file = num_files + 1;
513 num_files++; 507 num_files++;
514 508
@@ -612,7 +606,7 @@ static char *process_regex_on_line(char *line, regex_t *pattern, int action)
612 char *growline = ""; 606 char *growline = "";
613 regmatch_t match_structs; 607 regmatch_t match_structs;
614 608
615 line2 = bb_xstrdup(line); 609 line2 = xstrdup(line);
616 610
617 match_found = 0; 611 match_found = 0;
618 match_status = regexec(pattern, line2, 1, &match_structs, 0); 612 match_status = regexec(pattern, line2, 1, &match_structs, 0);
@@ -622,17 +616,17 @@ static char *process_regex_on_line(char *line, regex_t *pattern, int action)
622 match_found = 1; 616 match_found = 1;
623 617
624 if (action) { 618 if (action) {
625 growline = bb_xasprintf("%s%.*s%s%.*s%s", growline, match_structs.rm_so, line2, HIGHLIGHT, match_structs.rm_eo - match_structs.rm_so, line2 + match_structs.rm_so, NORMAL); 619 growline = xasprintf("%s%.*s%s%.*s%s", growline, match_structs.rm_so, line2, HIGHLIGHT, match_structs.rm_eo - match_structs.rm_so, line2 + match_structs.rm_so, NORMAL);
626 } 620 }
627 else { 621 else {
628 growline = bb_xasprintf("%s%.*s%.*s", growline, match_structs.rm_so - 4, line2, match_structs.rm_eo - match_structs.rm_so, line2 + match_structs.rm_so); 622 growline = xasprintf("%s%.*s%.*s", growline, match_structs.rm_so - 4, line2, match_structs.rm_eo - match_structs.rm_so, line2 + match_structs.rm_so);
629 } 623 }
630 624
631 line2 += match_structs.rm_eo; 625 line2 += match_structs.rm_eo;
632 match_status = regexec(pattern, line2, 1, &match_structs, REG_NOTBOL); 626 match_status = regexec(pattern, line2, 1, &match_structs, REG_NOTBOL);
633 } 627 }
634 628
635 growline = bb_xasprintf("%s%s", growline, line2); 629 growline = xasprintf("%s%s", growline, line2);
636 630
637 return (match_found ? growline : line); 631 return (match_found ? growline : line);
638 632
@@ -679,7 +673,7 @@ static void regex_process(void)
679 /* Get rid of all the highlights we added previously */ 673 /* Get rid of all the highlights we added previously */
680 for (i = 0; i <= num_flines; i++) { 674 for (i = 0; i <= num_flines; i++) {
681 current_line = process_regex_on_line(flines[i], &old_pattern, 0); 675 current_line = process_regex_on_line(flines[i], &old_pattern, 0);
682 flines[i] = bb_xstrdup(current_line); 676 flines[i] = xstrdup(current_line);
683 } 677 }
684 } 678 }
685 old_pattern = pattern; 679 old_pattern = pattern;
@@ -693,7 +687,7 @@ static void regex_process(void)
693 /* Run the regex on each line of the current file here */ 687 /* Run the regex on each line of the current file here */
694 for (i = 0; i <= num_flines; i++) { 688 for (i = 0; i <= num_flines; i++) {
695 current_line = process_regex_on_line(flines[i], &pattern, 1); 689 current_line = process_regex_on_line(flines[i], &pattern, 1);
696 flines[i] = bb_xstrdup(current_line); 690 flines[i] = xstrdup(current_line);
697 if (match_found) { 691 if (match_found) {
698 match_lines = xrealloc(match_lines, (j + 1) * sizeof(int)); 692 match_lines = xrealloc(match_lines, (j + 1) * sizeof(int));
699 match_lines[j] = i; 693 match_lines[j] = i;
@@ -864,7 +858,7 @@ static void save_input_to_file(void)
864 fgets(current_line, 256, inp); 858 fgets(current_line, 256, inp);
865 current_line[strlen(current_line) - 1] = '\0'; 859 current_line[strlen(current_line) - 1] = '\0';
866 if (strlen(current_line) > 1) { 860 if (strlen(current_line) > 1) {
867 fp = bb_xfopen(current_line, "w"); 861 fp = xfopen(current_line, "w");
868 for (i = 0; i < num_flines; i++) 862 for (i = 0; i < num_flines; i++)
869 fprintf(fp, "%s", flines[i]); 863 fprintf(fp, "%s", flines[i]);
870 fclose(fp); 864 fclose(fp);
diff --git a/miscutils/makedevs.c b/miscutils/makedevs.c
index 776bcaa8d..0ebb0538f 100644
--- a/miscutils/makedevs.c
+++ b/miscutils/makedevs.c
@@ -8,15 +8,6 @@
8 */ 8 */
9 9
10#include "busybox.h" 10#include "busybox.h"
11#include <stdio.h>
12#include <stdlib.h>
13#include <string.h>
14#include <fcntl.h>
15#include <time.h>
16#include <ctype.h>
17#include <unistd.h>
18#include <sys/types.h>
19#include <sys/sysmacros.h> /* major() and minor() */
20 11
21#ifdef CONFIG_FEATURE_MAKEDEVS_LEAF 12#ifdef CONFIG_FEATURE_MAKEDEVS_LEAF
22int makedevs_main(int argc, char **argv) 13int makedevs_main(int argc, char **argv)
@@ -88,13 +79,13 @@ int makedevs_main(int argc, char **argv)
88 unsigned long flags; 79 unsigned long flags;
89 flags = bb_getopt_ulflags(argc, argv, "d:", &line); 80 flags = bb_getopt_ulflags(argc, argv, "d:", &line);
90 if (line) 81 if (line)
91 table = bb_xfopen(line, "r"); 82 table = xfopen(line, "r");
92 83
93 if (optind >= argc || (rootdir=argv[optind])==NULL) { 84 if (optind >= argc || (rootdir=argv[optind])==NULL) {
94 bb_error_msg_and_die("root directory not specified"); 85 bb_error_msg_and_die("root directory not specified");
95 } 86 }
96 87
97 bb_xchdir(rootdir); 88 xchdir(rootdir);
98 89
99 umask(0); 90 umask(0);
100 91
diff --git a/miscutils/mountpoint.c b/miscutils/mountpoint.c
index 6265a20e1..3e5fb4b46 100644
--- a/miscutils/mountpoint.c
+++ b/miscutils/mountpoint.c
@@ -10,10 +10,6 @@
10 */ 10 */
11 11
12#include "busybox.h" 12#include "busybox.h"
13#include <sys/stat.h>
14#include <errno.h> /* errno */
15#include <string.h> /* strerror */
16#include <getopt.h> /* optind */
17 13
18int mountpoint_main(int argc, char **argv) 14int mountpoint_main(int argc, char **argv)
19{ 15{
@@ -46,7 +42,7 @@ int mountpoint_main(int argc, char **argv)
46 if (S_ISDIR(st.st_mode)) { 42 if (S_ISDIR(st.st_mode)) {
47 dev_t st_dev = st.st_dev; 43 dev_t st_dev = st.st_dev;
48 ino_t st_ino = st.st_ino; 44 ino_t st_ino = st.st_ino;
49 char *p = bb_xasprintf("%s/..", arg); 45 char *p = xasprintf("%s/..", arg);
50 46
51 if (stat(p, &st) == 0) { 47 if (stat(p, &st) == 0) {
52 short ret = (st_dev != st.st_dev) || 48 short ret = (st_dev != st.st_dev) ||
diff --git a/miscutils/mt.c b/miscutils/mt.c
index 2720f7eab..f562a91a2 100644
--- a/miscutils/mt.c
+++ b/miscutils/mt.c
@@ -4,11 +4,7 @@
4 */ 4 */
5 5
6#include "busybox.h" 6#include "busybox.h"
7#include <stdio.h>
8#include <stdlib.h>
9#include <string.h>
10#include <sys/mtio.h> 7#include <sys/mtio.h>
11#include <fcntl.h>
12 8
13struct mt_opcodes { 9struct mt_opcodes {
14 char *name; 10 char *name;
@@ -105,7 +101,7 @@ int mt_main(int argc, char **argv)
105 break; 101 break;
106 } 102 }
107 103
108 fd = bb_xopen3(file, mode, 0); 104 fd = xopen3(file, mode, 0);
109 105
110 switch (code->value) { 106 switch (code->value) {
111 case MTTELL: 107 case MTTELL:
diff --git a/miscutils/rx.c b/miscutils/rx.c
index 41673b60e..4cc4913e6 100644
--- a/miscutils/rx.c
+++ b/miscutils/rx.c
@@ -21,18 +21,6 @@
21 */ 21 */
22 22
23#include "busybox.h" 23#include "busybox.h"
24#include <stdlib.h>
25#include <stdarg.h>
26#include <stdio.h>
27#include <unistd.h>
28#include <errno.h>
29#include <termios.h>
30#include <signal.h>
31#include <sys/types.h>
32#include <sys/stat.h>
33#include <fcntl.h>
34#include <string.h>
35
36 24
37#define SOH 0x01 25#define SOH 0x01
38#define STX 0x02 26#define STX 0x02
@@ -274,8 +262,8 @@ int rx_main(int argc, char **argv)
274 bb_show_usage(); 262 bb_show_usage();
275 263
276 fn = argv[1]; 264 fn = argv[1];
277 ttyfd = bb_xopen3(CURRENT_TTY, O_RDWR, 0); 265 ttyfd = xopen3(CURRENT_TTY, O_RDWR, 0);
278 filefd = bb_xopen3(fn, O_RDWR|O_CREAT|O_TRUNC, 0666); 266 filefd = xopen3(fn, O_RDWR|O_CREAT|O_TRUNC, 0666);
279 267
280 if (tcgetattr(ttyfd, &tty) < 0) 268 if (tcgetattr(ttyfd, &tty) < 0)
281 bb_error_msg_and_die("%s: tcgetattr failed: %m\n", argv[0]); 269 bb_error_msg_and_die("%s: tcgetattr failed: %m\n", argv[0]);
diff --git a/miscutils/watchdog.c b/miscutils/watchdog.c
index ddd349d9b..ebbab2df3 100644
--- a/miscutils/watchdog.c
+++ b/miscutils/watchdog.c
@@ -9,11 +9,6 @@
9 */ 9 */
10 10
11#include "busybox.h" 11#include "busybox.h"
12#include <stdio.h>
13#include <fcntl.h>
14#include <unistd.h>
15#include <stdlib.h>
16#include <signal.h>
17 12
18#define OPT_FOREGROUND 0x01 13#define OPT_FOREGROUND 0x01
19#define OPT_TIMER 0x02 14#define OPT_TIMER 0x02
@@ -47,13 +42,13 @@ int watchdog_main(int argc, char **argv)
47 if (!(opts & OPT_FOREGROUND)) 42 if (!(opts & OPT_FOREGROUND))
48 vfork_daemon_rexec(0, 1, argc, argv, "-F"); 43 vfork_daemon_rexec(0, 1, argc, argv, "-F");
49#else 44#else
50 bb_xdaemon(0, 1); 45 xdaemon(0, 1);
51#endif 46#endif
52 47
53 signal(SIGHUP, watchdog_shutdown); 48 signal(SIGHUP, watchdog_shutdown);
54 signal(SIGINT, watchdog_shutdown); 49 signal(SIGINT, watchdog_shutdown);
55 50
56 fd = bb_xopen(argv[argc - 1], O_WRONLY); 51 fd = xopen(argv[argc - 1], O_WRONLY);
57 52
58 while (1) { 53 while (1) {
59 /* 54 /*