diff options
143 files changed, 710 insertions, 1720 deletions
diff --git a/archival/ar.c b/archival/ar.c index fd2ab99a0..09d0cd7e4 100644 --- a/archival/ar.c +++ b/archival/ar.c | |||
@@ -14,16 +14,8 @@ | |||
14 | * http://www.unix-systems.org/single_unix_specification_v2/xcu/ar.html | 14 | * http://www.unix-systems.org/single_unix_specification_v2/xcu/ar.html |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <fcntl.h> | ||
18 | #include <stdio.h> | ||
19 | #include <stdlib.h> | ||
20 | #include <string.h> | ||
21 | #include <time.h> | ||
22 | #include <utime.h> | ||
23 | #include <unistd.h> | ||
24 | |||
25 | #include "unarchive.h" | ||
26 | #include "busybox.h" | 17 | #include "busybox.h" |
18 | #include "unarchive.h" | ||
27 | 19 | ||
28 | static void header_verbose_list_ar(const file_header_t *file_header) | 20 | static void header_verbose_list_ar(const file_header_t *file_header) |
29 | { | 21 | { |
@@ -81,7 +73,7 @@ int ar_main(int argc, char **argv) | |||
81 | bb_error_msg_and_die(msg_unsupported_err, "insertion"); | 73 | bb_error_msg_and_die(msg_unsupported_err, "insertion"); |
82 | } | 74 | } |
83 | 75 | ||
84 | archive_handle->src_fd = bb_xopen(argv[optind++], O_RDONLY); | 76 | archive_handle->src_fd = xopen(argv[optind++], O_RDONLY); |
85 | 77 | ||
86 | while (optind < argc) { | 78 | while (optind < argc) { |
87 | archive_handle->filter = filter_accept_list; | 79 | archive_handle->filter = filter_accept_list; |
diff --git a/archival/bunzip2.c b/archival/bunzip2.c index 714dac077..a970aeb20 100644 --- a/archival/bunzip2.c +++ b/archival/bunzip2.c | |||
@@ -6,12 +6,6 @@ | |||
6 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 6 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <fcntl.h> | ||
10 | #include <stdio.h> | ||
11 | #include <stdlib.h> | ||
12 | #include <string.h> | ||
13 | #include <unistd.h> | ||
14 | |||
15 | #include "busybox.h" | 9 | #include "busybox.h" |
16 | #include "unarchive.h" | 10 | #include "unarchive.h" |
17 | 11 | ||
@@ -30,7 +24,7 @@ int bunzip2_main(int argc, char **argv) | |||
30 | filename = argv[optind]; | 24 | filename = argv[optind]; |
31 | if ((filename) && (filename[0] != '-') && (filename[1] != '\0')) { | 25 | if ((filename) && (filename[0] != '-') && (filename[1] != '\0')) { |
32 | /* Open input file */ | 26 | /* Open input file */ |
33 | src_fd = bb_xopen(filename, O_RDONLY); | 27 | src_fd = xopen(filename, O_RDONLY); |
34 | } else { | 28 | } else { |
35 | src_fd = STDIN_FILENO; | 29 | src_fd = STDIN_FILENO; |
36 | filename = 0; | 30 | filename = 0; |
@@ -53,7 +47,7 @@ int bunzip2_main(int argc, char **argv) | |||
53 | } | 47 | } |
54 | xstat(filename, &stat_buf); | 48 | xstat(filename, &stat_buf); |
55 | *extension=0; | 49 | *extension=0; |
56 | dst_fd = bb_xopen3(filename, O_WRONLY | O_CREAT, stat_buf.st_mode); | 50 | dst_fd = xopen3(filename, O_WRONLY | O_CREAT, stat_buf.st_mode); |
57 | } else dst_fd = STDOUT_FILENO; | 51 | } else dst_fd = STDOUT_FILENO; |
58 | status = uncompressStream(src_fd, dst_fd); | 52 | status = uncompressStream(src_fd, dst_fd); |
59 | if(filename) { | 53 | if(filename) { |
diff --git a/archival/dpkg.c b/archival/dpkg.c index 558e3cd48..0e5772062 100644 --- a/archival/dpkg.c +++ b/archival/dpkg.c | |||
@@ -1,44 +1,39 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | 1 | /* vi: set sw=4 ts=4: */ |
2 | /* | 2 | /* |
3 | * Mini dpkg implementation for busybox. | 3 | * mini dpkg implementation for busybox. |
4 | * This is not meant as a replacement for dpkg | 4 | * this is not meant as a replacement for dpkg |
5 | * | 5 | * |
6 | * Written By Glenn McGrath with the help of others | 6 | * written by glenn mcgrath with the help of others |
7 | * Copyright (C) 2001 by Glenn McGrath | 7 | * copyright (c) 2001 by glenn mcgrath |
8 | * | 8 | * |
9 | * Started life as a busybox implementation of udpkg | 9 | * started life as a busybox implementation of udpkg |
10 | * | 10 | * |
11 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 11 | * licensed under gplv2 or later, see file license in this tarball for details. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | /* | 14 | /* |
15 | * Known difference between busybox dpkg and the official dpkg that i don't | 15 | * known difference between busybox dpkg and the official dpkg that i don't |
16 | * consider important, its worth keeping a note of differences anyway, just to | 16 | * consider important, its worth keeping a note of differences anyway, just to |
17 | * make it easier to maintain. | 17 | * make it easier to maintain. |
18 | * - The first value for the Confflile: field isnt placed on a new line. | 18 | * - the first value for the confflile: field isnt placed on a new line. |
19 | * - When installing a package the Status: field is placed at the end of the | 19 | * - when installing a package the status: field is placed at the end of the |
20 | * section, rather than just after the Package: field. | 20 | * section, rather than just after the package: field. |
21 | * | 21 | * |
22 | * Bugs that need to be fixed | 22 | * bugs that need to be fixed |
23 | * - (unknown, please let me know when you find any) | 23 | * - (unknown, please let me know when you find any) |
24 | * | 24 | * |
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include <fcntl.h> | ||
28 | #include <getopt.h> | ||
29 | #include <stdlib.h> | ||
30 | #include <string.h> | ||
31 | #include <unistd.h> | ||
32 | #include "unarchive.h" | ||
33 | #include "busybox.h" | 27 | #include "busybox.h" |
28 | #include "unarchive.h" | ||
34 | 29 | ||
35 | /* NOTE: If you vary HASH_PRIME sizes be aware, | 30 | /* note: if you vary hash_prime sizes be aware, |
36 | * 1) Tweaking these will have a big effect on how much memory this program uses. | 31 | * 1) tweaking these will have a big effect on how much memory this program uses. |
37 | * 2) For computational efficiency these hash tables should be at least 20% | 32 | * 2) for computational efficiency these hash tables should be at least 20% |
38 | * larger than the maximum number of elements stored in it. | 33 | * larger than the maximum number of elements stored in it. |
39 | * 3) All _HASH_PRIME's must be a prime number or chaos is assured, if your looking | 34 | * 3) all _hash_prime's must be a prime number or chaos is assured, if your looking |
40 | * for a prime, try http://www.utm.edu/research/primes/lists/small/10000.txt | 35 | * for a prime, try http://www.utm.edu/research/primes/lists/small/10000.txt |
41 | * 4) If you go bigger than 15 bits you may get into trouble (untested) as its | 36 | * 4) if you go bigger than 15 bits you may get into trouble (untested) as its |
42 | * sometimes cast to an unsigned int, if you go to 16 bit you will overlap | 37 | * sometimes cast to an unsigned int, if you go to 16 bit you will overlap |
43 | * int's and chaos is assured, 16381 is the max prime for 14 bit field | 38 | * int's and chaos is assured, 16381 is the max prime for 14 bit field |
44 | */ | 39 | */ |
@@ -163,7 +158,7 @@ static int search_name_hashtable(const char *key) | |||
163 | } | 158 | } |
164 | } | 159 | } |
165 | } | 160 | } |
166 | name_hashtable[probe_address] = bb_xstrdup(key); | 161 | name_hashtable[probe_address] = xstrdup(key); |
167 | return(probe_address); | 162 | return(probe_address); |
168 | } | 163 | } |
169 | 164 | ||
@@ -204,10 +199,10 @@ static int version_compare_part(const char *version1, const char *version2) | |||
204 | int ret; | 199 | int ret; |
205 | 200 | ||
206 | if (version1 == NULL) { | 201 | if (version1 == NULL) { |
207 | version1 = bb_xstrdup(""); | 202 | version1 = xstrdup(""); |
208 | } | 203 | } |
209 | if (version2 == NULL) { | 204 | if (version2 == NULL) { |
210 | version2 = bb_xstrdup(""); | 205 | version2 = xstrdup(""); |
211 | } | 206 | } |
212 | upstream_len1 = strlen(version1); | 207 | upstream_len1 = strlen(version1); |
213 | upstream_len2 = strlen(version2); | 208 | upstream_len2 = strlen(version2); |
@@ -215,10 +210,10 @@ static int version_compare_part(const char *version1, const char *version2) | |||
215 | while ((len1 < upstream_len1) || (len2 < upstream_len2)) { | 210 | while ((len1 < upstream_len1) || (len2 < upstream_len2)) { |
216 | /* Compare non-digit section */ | 211 | /* Compare non-digit section */ |
217 | tmp_int = strcspn(&version1[len1], "0123456789"); | 212 | tmp_int = strcspn(&version1[len1], "0123456789"); |
218 | name1_char = bb_xstrndup(&version1[len1], tmp_int); | 213 | name1_char = xstrndup(&version1[len1], tmp_int); |
219 | len1 += tmp_int; | 214 | len1 += tmp_int; |
220 | tmp_int = strcspn(&version2[len2], "0123456789"); | 215 | tmp_int = strcspn(&version2[len2], "0123456789"); |
221 | name2_char = bb_xstrndup(&version2[len2], tmp_int); | 216 | name2_char = xstrndup(&version2[len2], tmp_int); |
222 | len2 += tmp_int; | 217 | len2 += tmp_int; |
223 | tmp_int = strcmp(name1_char, name2_char); | 218 | tmp_int = strcmp(name1_char, name2_char); |
224 | free(name1_char); | 219 | free(name1_char); |
@@ -230,10 +225,10 @@ static int version_compare_part(const char *version1, const char *version2) | |||
230 | 225 | ||
231 | /* Compare digits */ | 226 | /* Compare digits */ |
232 | tmp_int = strspn(&version1[len1], "0123456789"); | 227 | tmp_int = strspn(&version1[len1], "0123456789"); |
233 | name1_char = bb_xstrndup(&version1[len1], tmp_int); | 228 | name1_char = xstrndup(&version1[len1], tmp_int); |
234 | len1 += tmp_int; | 229 | len1 += tmp_int; |
235 | tmp_int = strspn(&version2[len2], "0123456789"); | 230 | tmp_int = strspn(&version2[len2], "0123456789"); |
236 | name2_char = bb_xstrndup(&version2[len2], tmp_int); | 231 | name2_char = xstrndup(&version2[len2], tmp_int); |
237 | len2 += tmp_int; | 232 | len2 += tmp_int; |
238 | ver_num1 = atoi(name1_char); | 233 | ver_num1 = atoi(name1_char); |
239 | ver_num2 = atoi(name2_char); | 234 | ver_num2 = atoi(name2_char); |
@@ -292,8 +287,8 @@ static int version_compare(const unsigned int ver1, const unsigned int ver2) | |||
292 | } | 287 | } |
293 | 288 | ||
294 | /* Compare upstream version */ | 289 | /* Compare upstream version */ |
295 | upstream_ver1 = bb_xstrdup(ver1_ptr); | 290 | upstream_ver1 = xstrdup(ver1_ptr); |
296 | upstream_ver2 = bb_xstrdup(ver2_ptr); | 291 | upstream_ver2 = xstrdup(ver2_ptr); |
297 | 292 | ||
298 | /* Chop off debian version, and store for later use */ | 293 | /* Chop off debian version, and store for later use */ |
299 | deb_ver1 = strrchr(upstream_ver1, '-'); | 294 | deb_ver1 = strrchr(upstream_ver1, '-'); |
@@ -429,7 +424,7 @@ static void add_edge_to_node(common_node_t *node, edge_t *edge) | |||
429 | */ | 424 | */ |
430 | static void add_split_dependencies(common_node_t *parent_node, const char *whole_line, unsigned int edge_type) | 425 | static void add_split_dependencies(common_node_t *parent_node, const char *whole_line, unsigned int edge_type) |
431 | { | 426 | { |
432 | char *line = bb_xstrdup(whole_line); | 427 | char *line = xstrdup(whole_line); |
433 | char *line2; | 428 | char *line2; |
434 | char *line_ptr1 = NULL; | 429 | char *line_ptr1 = NULL; |
435 | char *line_ptr2 = NULL; | 430 | char *line_ptr2 = NULL; |
@@ -444,7 +439,7 @@ static void add_split_dependencies(common_node_t *parent_node, const char *whole | |||
444 | do { | 439 | do { |
445 | /* skip leading spaces */ | 440 | /* skip leading spaces */ |
446 | field += strspn(field, " "); | 441 | field += strspn(field, " "); |
447 | line2 = bb_xstrdup(field); | 442 | line2 = xstrdup(field); |
448 | field2 = strtok_r(line2, "|", &line_ptr2); | 443 | field2 = strtok_r(line2, "|", &line_ptr2); |
449 | if ( (edge_type == EDGE_DEPENDS || edge_type == EDGE_PRE_DEPENDS) && | 444 | if ( (edge_type == EDGE_DEPENDS || edge_type == EDGE_PRE_DEPENDS) && |
450 | (strcmp(field, field2) != 0)) { | 445 | (strcmp(field, field2) != 0)) { |
@@ -538,6 +533,93 @@ static void free_package(common_node_t *node) | |||
538 | } | 533 | } |
539 | } | 534 | } |
540 | 535 | ||
536 | /* | ||
537 | * Gets the next package field from package_buffer, seperated into the field name | ||
538 | * and field value, it returns the int offset to the first character of the next field | ||
539 | */ | ||
540 | static int read_package_field(const char *package_buffer, char **field_name, char **field_value) | ||
541 | { | ||
542 | int offset_name_start = 0; | ||
543 | int offset_name_end = 0; | ||
544 | int offset_value_start = 0; | ||
545 | int offset_value_end = 0; | ||
546 | int offset = 0; | ||
547 | int next_offset; | ||
548 | int name_length; | ||
549 | int value_length; | ||
550 | int exit_flag = FALSE; | ||
551 | |||
552 | if (package_buffer == NULL) { | ||
553 | *field_name = NULL; | ||
554 | *field_value = NULL; | ||
555 | return(-1); | ||
556 | } | ||
557 | while (1) { | ||
558 | next_offset = offset + 1; | ||
559 | switch (package_buffer[offset]) { | ||
560 | case('\0'): | ||
561 | exit_flag = TRUE; | ||
562 | break; | ||
563 | case(':'): | ||
564 | if (offset_name_end == 0) { | ||
565 | offset_name_end = offset; | ||
566 | offset_value_start = next_offset; | ||
567 | } | ||
568 | /* TODO: Name might still have trailing spaces if ':' isnt | ||
569 | * immediately after name */ | ||
570 | break; | ||
571 | case('\n'): | ||
572 | /* TODO: The char next_offset may be out of bounds */ | ||
573 | if (package_buffer[next_offset] != ' ') { | ||
574 | exit_flag = TRUE; | ||
575 | break; | ||
576 | } | ||
577 | case('\t'): | ||
578 | case(' '): | ||
579 | /* increment the value start point if its a just filler */ | ||
580 | if (offset_name_start == offset) { | ||
581 | offset_name_start++; | ||
582 | } | ||
583 | if (offset_value_start == offset) { | ||
584 | offset_value_start++; | ||
585 | } | ||
586 | break; | ||
587 | } | ||
588 | if (exit_flag) { | ||
589 | /* Check that the names are valid */ | ||
590 | offset_value_end = offset; | ||
591 | name_length = offset_name_end - offset_name_start; | ||
592 | value_length = offset_value_end - offset_value_start; | ||
593 | if (name_length == 0) { | ||
594 | break; | ||
595 | } | ||
596 | if ((name_length > 0) && (value_length > 0)) { | ||
597 | break; | ||
598 | } | ||
599 | |||
600 | /* If not valid, start fresh with next field */ | ||
601 | exit_flag = FALSE; | ||
602 | offset_name_start = offset + 1; | ||
603 | offset_name_end = 0; | ||
604 | offset_value_start = offset + 1; | ||
605 | offset_value_end = offset + 1; | ||
606 | offset++; | ||
607 | } | ||
608 | offset++; | ||
609 | } | ||
610 | if (name_length == 0) { | ||
611 | *field_name = NULL; | ||
612 | } else { | ||
613 | *field_name = xstrndup(&package_buffer[offset_name_start], name_length); | ||
614 | } | ||
615 | if (value_length > 0) { | ||
616 | *field_value = xstrndup(&package_buffer[offset_value_start], value_length); | ||
617 | } else { | ||
618 | *field_value = NULL; | ||
619 | } | ||
620 | return(next_offset); | ||
621 | } | ||
622 | |||
541 | static unsigned int fill_package_struct(char *control_buffer) | 623 | static unsigned int fill_package_struct(char *control_buffer) |
542 | { | 624 | { |
543 | static const char *const field_names[] = { "Package", "Version", | 625 | static const char *const field_names[] = { "Package", "Version", |
@@ -631,7 +713,7 @@ static unsigned int get_status(const unsigned int status_node, const int num) | |||
631 | status_string += strspn(status_string, " "); | 713 | status_string += strspn(status_string, " "); |
632 | } | 714 | } |
633 | len = strcspn(status_string, " \n\0"); | 715 | len = strcspn(status_string, " \n\0"); |
634 | state_sub_string = bb_xstrndup(status_string, len); | 716 | state_sub_string = xstrndup(status_string, len); |
635 | state_sub_num = search_name_hashtable(state_sub_string); | 717 | state_sub_num = search_name_hashtable(state_sub_string); |
636 | free(state_sub_string); | 718 | free(state_sub_string); |
637 | return(state_sub_num); | 719 | return(state_sub_num); |
@@ -666,7 +748,7 @@ static void set_status(const unsigned int status_node_num, const char *new_value | |||
666 | bb_error_msg_and_die("DEBUG ONLY: this shouldnt happen"); | 748 | bb_error_msg_and_die("DEBUG ONLY: this shouldnt happen"); |
667 | } | 749 | } |
668 | 750 | ||
669 | new_status = bb_xasprintf("%s %s %s", name_hashtable[want], name_hashtable[flag], name_hashtable[status]); | 751 | new_status = xasprintf("%s %s %s", name_hashtable[want], name_hashtable[flag], name_hashtable[status]); |
670 | status_hashtable[status_node_num]->status = search_name_hashtable(new_status); | 752 | status_hashtable[status_node_num]->status = search_name_hashtable(new_status); |
671 | free(new_status); | 753 | free(new_status); |
672 | return; | 754 | return; |
@@ -705,7 +787,7 @@ static void index_status_file(const char *filename) | |||
705 | status_node_t *status_node = NULL; | 787 | status_node_t *status_node = NULL; |
706 | unsigned int status_num; | 788 | unsigned int status_num; |
707 | 789 | ||
708 | status_file = bb_xfopen(filename, "r"); | 790 | status_file = xfopen(filename, "r"); |
709 | while ((control_buffer = fgets_str(status_file, "\n\n")) != NULL) { | 791 | while ((control_buffer = fgets_str(status_file, "\n\n")) != NULL) { |
710 | const unsigned int package_num = fill_package_struct(control_buffer); | 792 | const unsigned int package_num = fill_package_struct(control_buffer); |
711 | if (package_num != -1) { | 793 | if (package_num != -1) { |
@@ -715,7 +797,7 @@ static void index_status_file(const char *filename) | |||
715 | if (status_line != NULL) { | 797 | if (status_line != NULL) { |
716 | status_line += 7; | 798 | status_line += 7; |
717 | status_line += strspn(status_line, " \n\t"); | 799 | status_line += strspn(status_line, " \n\t"); |
718 | status_line = bb_xstrndup(status_line, strcspn(status_line, "\n\0")); | 800 | status_line = xstrndup(status_line, strcspn(status_line, "\n\0")); |
719 | status_node->status = search_name_hashtable(status_line); | 801 | status_node->status = search_name_hashtable(status_line); |
720 | free(status_line); | 802 | free(status_line); |
721 | } | 803 | } |
@@ -749,8 +831,8 @@ static void write_buffer_no_status(FILE *new_status_file, const char *control_bu | |||
749 | /* This could do with a cleanup */ | 831 | /* This could do with a cleanup */ |
750 | static void write_status_file(deb_file_t **deb_file) | 832 | static void write_status_file(deb_file_t **deb_file) |
751 | { | 833 | { |
752 | FILE *old_status_file = bb_xfopen("/var/lib/dpkg/status", "r"); | 834 | FILE *old_status_file = xfopen("/var/lib/dpkg/status", "r"); |
753 | FILE *new_status_file = bb_xfopen("/var/lib/dpkg/status.udeb", "w"); | 835 | FILE *new_status_file = xfopen("/var/lib/dpkg/status.udeb", "w"); |
754 | char *package_name; | 836 | char *package_name; |
755 | char *status_from_file; | 837 | char *status_from_file; |
756 | char *control_buffer = NULL; | 838 | char *control_buffer = NULL; |
@@ -768,14 +850,14 @@ static void write_status_file(deb_file_t **deb_file) | |||
768 | 850 | ||
769 | tmp_string += 8; | 851 | tmp_string += 8; |
770 | tmp_string += strspn(tmp_string, " \n\t"); | 852 | tmp_string += strspn(tmp_string, " \n\t"); |
771 | package_name = bb_xstrndup(tmp_string, strcspn(tmp_string, "\n\0")); | 853 | package_name = xstrndup(tmp_string, strcspn(tmp_string, "\n\0")); |
772 | write_flag = FALSE; | 854 | write_flag = FALSE; |
773 | tmp_string = strstr(control_buffer, "Status:"); | 855 | tmp_string = strstr(control_buffer, "Status:"); |
774 | if (tmp_string != NULL) { | 856 | if (tmp_string != NULL) { |
775 | /* Seperate the status value from the control buffer */ | 857 | /* Seperate the status value from the control buffer */ |
776 | tmp_string += 7; | 858 | tmp_string += 7; |
777 | tmp_string += strspn(tmp_string, " \n\t"); | 859 | tmp_string += strspn(tmp_string, " \n\t"); |
778 | status_from_file = bb_xstrndup(tmp_string, strcspn(tmp_string, "\n")); | 860 | status_from_file = xstrndup(tmp_string, strcspn(tmp_string, "\n")); |
779 | } else { | 861 | } else { |
780 | status_from_file = NULL; | 862 | status_from_file = NULL; |
781 | } | 863 | } |
@@ -1181,7 +1263,7 @@ static int run_package_script(const char *package_name, const char *script_type) | |||
1181 | char *script_path; | 1263 | char *script_path; |
1182 | int result; | 1264 | int result; |
1183 | 1265 | ||
1184 | script_path = bb_xasprintf("/var/lib/dpkg/info/%s.%s", package_name, script_type); | 1266 | script_path = xasprintf("/var/lib/dpkg/info/%s.%s", package_name, script_type); |
1185 | 1267 | ||
1186 | /* If the file doesnt exist is isnt a fatal */ | 1268 | /* If the file doesnt exist is isnt a fatal */ |
1187 | result = lstat(script_path, &path_stat) < 0 ? EXIT_SUCCESS : system(script_path); | 1269 | result = lstat(script_path, &path_stat) < 0 ? EXIT_SUCCESS : system(script_path); |
@@ -1200,7 +1282,7 @@ static char **all_control_list(const char *package_name) | |||
1200 | /* Create a list of all /var/lib/dpkg/info/<package> files */ | 1282 | /* Create a list of all /var/lib/dpkg/info/<package> files */ |
1201 | remove_files = xzalloc(sizeof(all_control_files)); | 1283 | remove_files = xzalloc(sizeof(all_control_files)); |
1202 | while (all_control_files[i]) { | 1284 | while (all_control_files[i]) { |
1203 | remove_files[i] = bb_xasprintf("/var/lib/dpkg/info/%s.%s", package_name, all_control_files[i]); | 1285 | remove_files[i] = xasprintf("/var/lib/dpkg/info/%s.%s", package_name, all_control_files[i]); |
1204 | i++; | 1286 | i++; |
1205 | } | 1287 | } |
1206 | 1288 | ||
@@ -1296,8 +1378,8 @@ static void remove_package(const unsigned int package_num, int noisy) | |||
1296 | 1378 | ||
1297 | /* Create a list of files in /var/lib/dpkg/info/<package>.* to keep */ | 1379 | /* Create a list of files in /var/lib/dpkg/info/<package>.* to keep */ |
1298 | exclude_files = xzalloc(sizeof(char*) * 3); | 1380 | exclude_files = xzalloc(sizeof(char*) * 3); |
1299 | exclude_files[0] = bb_xstrdup(conffile_name); | 1381 | exclude_files[0] = xstrdup(conffile_name); |
1300 | exclude_files[1] = bb_xasprintf("/var/lib/dpkg/info/%s.postrm", package_name); | 1382 | exclude_files[1] = xasprintf("/var/lib/dpkg/info/%s.postrm", package_name); |
1301 | 1383 | ||
1302 | /* Create a list of all /var/lib/dpkg/info/<package> files */ | 1384 | /* Create a list of all /var/lib/dpkg/info/<package> files */ |
1303 | remove_files = all_control_list(package_name); | 1385 | remove_files = all_control_list(package_name); |
@@ -1361,7 +1443,7 @@ static archive_handle_t *init_archive_deb_ar(const char *filename) | |||
1361 | /* Setup an ar archive handle that refers to the gzip sub archive */ | 1443 | /* Setup an ar archive handle that refers to the gzip sub archive */ |
1362 | ar_handle = init_handle(); | 1444 | ar_handle = init_handle(); |
1363 | ar_handle->filter = filter_accept_list_reassign; | 1445 | ar_handle->filter = filter_accept_list_reassign; |
1364 | ar_handle->src_fd = bb_xopen(filename, O_RDONLY); | 1446 | ar_handle->src_fd = xopen(filename, O_RDONLY); |
1365 | 1447 | ||
1366 | return(ar_handle); | 1448 | return(ar_handle); |
1367 | } | 1449 | } |
@@ -1428,7 +1510,7 @@ static void data_extract_all_prefix(archive_handle_t *archive_handle) | |||
1428 | 1510 | ||
1429 | name_ptr += strspn(name_ptr, "./"); | 1511 | name_ptr += strspn(name_ptr, "./"); |
1430 | if (name_ptr[0] != '\0') { | 1512 | if (name_ptr[0] != '\0') { |
1431 | archive_handle->file_header->name = bb_xasprintf("%s%s", archive_handle->buffer, name_ptr); | 1513 | archive_handle->file_header->name = xasprintf("%s%s", archive_handle->buffer, name_ptr); |
1432 | data_extract_all(archive_handle); | 1514 | data_extract_all(archive_handle); |
1433 | } | 1515 | } |
1434 | return; | 1516 | return; |
@@ -1457,12 +1539,12 @@ static void unpack_package(deb_file_t *deb_file) | |||
1457 | } | 1539 | } |
1458 | 1540 | ||
1459 | /* Extract control.tar.gz to /var/lib/dpkg/info/<package>.filename */ | 1541 | /* Extract control.tar.gz to /var/lib/dpkg/info/<package>.filename */ |
1460 | info_prefix = bb_xasprintf("/var/lib/dpkg/info/%s.", package_name); | 1542 | info_prefix = xasprintf("/var/lib/dpkg/info/%s.", package_name); |
1461 | archive_handle = init_archive_deb_ar(deb_file->filename); | 1543 | archive_handle = init_archive_deb_ar(deb_file->filename); |
1462 | init_archive_deb_control(archive_handle); | 1544 | init_archive_deb_control(archive_handle); |
1463 | 1545 | ||
1464 | while(all_control_files[i]) { | 1546 | while(all_control_files[i]) { |
1465 | char *c = bb_xasprintf("./%s", all_control_files[i]); | 1547 | char *c = xasprintf("./%s", all_control_files[i]); |
1466 | llist_add_to(&accept_list, c); | 1548 | llist_add_to(&accept_list, c); |
1467 | i++; | 1549 | i++; |
1468 | } | 1550 | } |
@@ -1489,7 +1571,7 @@ static void unpack_package(deb_file_t *deb_file) | |||
1489 | 1571 | ||
1490 | /* Create the list file */ | 1572 | /* Create the list file */ |
1491 | strcat(info_prefix, "list"); | 1573 | strcat(info_prefix, "list"); |
1492 | out_stream = bb_xfopen(info_prefix, "w"); | 1574 | out_stream = xfopen(info_prefix, "w"); |
1493 | while (archive_handle->sub_archive->passed) { | 1575 | while (archive_handle->sub_archive->passed) { |
1494 | /* the leading . has been stripped by data_extract_all_prefix already */ | 1576 | /* the leading . has been stripped by data_extract_all_prefix already */ |
1495 | fputs(archive_handle->sub_archive->passed->data, out_stream); | 1577 | fputs(archive_handle->sub_archive->passed->data, out_stream); |
@@ -1600,7 +1682,7 @@ int dpkg_main(int argc, char **argv) | |||
1600 | if (deb_file[deb_count]->control_file == NULL) { | 1682 | if (deb_file[deb_count]->control_file == NULL) { |
1601 | bb_error_msg_and_die("Couldnt extract control file"); | 1683 | bb_error_msg_and_die("Couldnt extract control file"); |
1602 | } | 1684 | } |
1603 | deb_file[deb_count]->filename = bb_xstrdup(argv[optind]); | 1685 | deb_file[deb_count]->filename = xstrdup(argv[optind]); |
1604 | package_num = fill_package_struct(deb_file[deb_count]->control_file); | 1686 | package_num = fill_package_struct(deb_file[deb_count]->control_file); |
1605 | 1687 | ||
1606 | if (package_num == -1) { | 1688 | if (package_num == -1) { |
diff --git a/archival/dpkg_deb.c b/archival/dpkg_deb.c index 48a1ac161..ce65e219a 100644 --- a/archival/dpkg_deb.c +++ b/archival/dpkg_deb.c | |||
@@ -4,13 +4,8 @@ | |||
4 | * | 4 | * |
5 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 5 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
6 | */ | 6 | */ |
7 | #include <fcntl.h> | ||
8 | #include <stdlib.h> | ||
9 | #include <string.h> | ||
10 | #include <unistd.h> | ||
11 | |||
12 | #include "unarchive.h" | ||
13 | #include "busybox.h" | 7 | #include "busybox.h" |
8 | #include "unarchive.h" | ||
14 | 9 | ||
15 | #define DPKG_DEB_OPT_CONTENTS 1 | 10 | #define DPKG_DEB_OPT_CONTENTS 1 |
16 | #define DPKG_DEB_OPT_CONTROL 2 | 11 | #define DPKG_DEB_OPT_CONTROL 2 |
@@ -81,7 +76,7 @@ int dpkg_deb_main(int argc, char **argv) | |||
81 | bb_show_usage(); | 76 | bb_show_usage(); |
82 | } | 77 | } |
83 | 78 | ||
84 | tar_archive->src_fd = ar_archive->src_fd = bb_xopen(argv[optind++], O_RDONLY); | 79 | tar_archive->src_fd = ar_archive->src_fd = xopen(argv[optind++], O_RDONLY); |
85 | 80 | ||
86 | /* Workout where to extract the files */ | 81 | /* Workout where to extract the files */ |
87 | /* 2nd argument is a dir name */ | 82 | /* 2nd argument is a dir name */ |
@@ -90,7 +85,7 @@ int dpkg_deb_main(int argc, char **argv) | |||
90 | } | 85 | } |
91 | if (extract_dir) { | 86 | if (extract_dir) { |
92 | mkdir(extract_dir, 0777); /* bb_make_directory(extract_dir, 0777, 0) */ | 87 | mkdir(extract_dir, 0777); /* bb_make_directory(extract_dir, 0777, 0) */ |
93 | bb_xchdir(extract_dir); | 88 | xchdir(extract_dir); |
94 | } | 89 | } |
95 | unpack_ar_archive(ar_archive); | 90 | unpack_ar_archive(ar_archive); |
96 | 91 | ||
diff --git a/archival/gunzip.c b/archival/gunzip.c index bd6047e13..3a1d1cb61 100644 --- a/archival/gunzip.c +++ b/archival/gunzip.c | |||
@@ -27,13 +27,6 @@ | |||
27 | * See the file algorithm.doc for the compression algorithms and file formats. | 27 | * See the file algorithm.doc for the compression algorithms and file formats. |
28 | */ | 28 | */ |
29 | 29 | ||
30 | #include <stdlib.h> | ||
31 | #include <string.h> | ||
32 | #include <unistd.h> | ||
33 | #include <sys/types.h> | ||
34 | #include <sys/stat.h> | ||
35 | #include <fcntl.h> | ||
36 | |||
37 | #include "busybox.h" | 30 | #include "busybox.h" |
38 | #include "unarchive.h" | 31 | #include "unarchive.h" |
39 | 32 | ||
@@ -67,7 +60,7 @@ int gunzip_main(int argc, char **argv) | |||
67 | src_fd = STDIN_FILENO; | 60 | src_fd = STDIN_FILENO; |
68 | opt |= GUNZIP_OPT_STDOUT; | 61 | opt |= GUNZIP_OPT_STDOUT; |
69 | } else { | 62 | } else { |
70 | src_fd = bb_xopen(old_path, O_RDONLY); | 63 | src_fd = xopen(old_path, O_RDONLY); |
71 | 64 | ||
72 | /* Get the time stamp on the input file. */ | 65 | /* Get the time stamp on the input file. */ |
73 | xstat(old_path, &stat_buf); | 66 | xstat(old_path, &stat_buf); |
@@ -81,13 +74,13 @@ int gunzip_main(int argc, char **argv) | |||
81 | 74 | ||
82 | /* Set output filename and number */ | 75 | /* Set output filename and number */ |
83 | if (opt & GUNZIP_OPT_TEST) { | 76 | if (opt & GUNZIP_OPT_TEST) { |
84 | dst_fd = bb_xopen(bb_dev_null, O_WRONLY); /* why does test use filenum 2 ? */ | 77 | dst_fd = xopen(bb_dev_null, O_WRONLY); /* why does test use filenum 2 ? */ |
85 | } else if (opt & GUNZIP_OPT_STDOUT) { | 78 | } else if (opt & GUNZIP_OPT_STDOUT) { |
86 | dst_fd = STDOUT_FILENO; | 79 | dst_fd = STDOUT_FILENO; |
87 | } else { | 80 | } else { |
88 | char *extension; | 81 | char *extension; |
89 | 82 | ||
90 | new_path = bb_xstrdup(old_path); | 83 | new_path = xstrdup(old_path); |
91 | 84 | ||
92 | extension = strrchr(new_path, '.'); | 85 | extension = strrchr(new_path, '.'); |
93 | #ifdef CONFIG_FEATURE_GUNZIP_UNCOMPRESS | 86 | #ifdef CONFIG_FEATURE_GUNZIP_UNCOMPRESS |
@@ -105,7 +98,7 @@ int gunzip_main(int argc, char **argv) | |||
105 | } | 98 | } |
106 | 99 | ||
107 | /* Open output file (with correct permissions) */ | 100 | /* Open output file (with correct permissions) */ |
108 | dst_fd = bb_xopen3(new_path, O_WRONLY | O_CREAT, stat_buf.st_mode); | 101 | dst_fd = xopen3(new_path, O_WRONLY | O_CREAT, stat_buf.st_mode); |
109 | 102 | ||
110 | /* If unzip succeeds remove the old file */ | 103 | /* If unzip succeeds remove the old file */ |
111 | delete_path = old_path; | 104 | delete_path = old_path; |
diff --git a/archival/libunarchive/data_extract_all.c b/archival/libunarchive/data_extract_all.c index 6337e0c85..5d1ec302a 100644 --- a/archival/libunarchive/data_extract_all.c +++ b/archival/libunarchive/data_extract_all.c | |||
@@ -3,16 +3,6 @@ | |||
3 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 3 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
4 | */ | 4 | */ |
5 | 5 | ||
6 | #include <sys/types.h> | ||
7 | |||
8 | #include <errno.h> | ||
9 | #include <fcntl.h> | ||
10 | #include <stdlib.h> | ||
11 | #include <string.h> | ||
12 | #include <utime.h> | ||
13 | #include <unistd.h> | ||
14 | #include <stdlib.h> | ||
15 | |||
16 | #include "libbb.h" | 6 | #include "libbb.h" |
17 | #include "unarchive.h" | 7 | #include "unarchive.h" |
18 | 8 | ||
@@ -23,7 +13,7 @@ void data_extract_all(archive_handle_t *archive_handle) | |||
23 | int res; | 13 | int res; |
24 | 14 | ||
25 | if (archive_handle->flags & ARCHIVE_CREATE_LEADING_DIRS) { | 15 | if (archive_handle->flags & ARCHIVE_CREATE_LEADING_DIRS) { |
26 | char *name = bb_xstrdup(file_header->name); | 16 | char *name = xstrdup(file_header->name); |
27 | bb_make_directory (dirname(name), -1, FILEUTILS_RECUR); | 17 | bb_make_directory (dirname(name), -1, FILEUTILS_RECUR); |
28 | free(name); | 18 | free(name); |
29 | } | 19 | } |
@@ -68,7 +58,7 @@ void data_extract_all(archive_handle_t *archive_handle) | |||
68 | switch(file_header->mode & S_IFMT) { | 58 | switch(file_header->mode & S_IFMT) { |
69 | case S_IFREG: { | 59 | case S_IFREG: { |
70 | /* Regular file */ | 60 | /* Regular file */ |
71 | dst_fd = bb_xopen(file_header->name, O_WRONLY | O_CREAT | O_EXCL); | 61 | dst_fd = xopen(file_header->name, O_WRONLY | O_CREAT | O_EXCL); |
72 | bb_copyfd_size(archive_handle->src_fd, dst_fd, file_header->size); | 62 | bb_copyfd_size(archive_handle->src_fd, dst_fd, file_header->size); |
73 | close(dst_fd); | 63 | close(dst_fd); |
74 | break; | 64 | break; |
diff --git a/archival/libunarchive/decompress_bunzip2.c b/archival/libunarchive/decompress_bunzip2.c index ae96ea375..657d4ab01 100644 --- a/archival/libunarchive/decompress_bunzip2.c +++ b/archival/libunarchive/decompress_bunzip2.c | |||
@@ -28,15 +28,7 @@ | |||
28 | Manuel | 28 | Manuel |
29 | */ | 29 | */ |
30 | 30 | ||
31 | #include <setjmp.h> | ||
32 | #include <stdio.h> | ||
33 | #include <stdlib.h> | ||
34 | #include <string.h> | ||
35 | #include <unistd.h> | ||
36 | #include <limits.h> | ||
37 | |||
38 | #include "libbb.h" | 31 | #include "libbb.h" |
39 | |||
40 | #include "unarchive.h" | 32 | #include "unarchive.h" |
41 | 33 | ||
42 | /* Constants for Huffman coding */ | 34 | /* Constants for Huffman coding */ |
@@ -655,7 +647,7 @@ static int start_bunzip(bunzip_data **bdp, int in_fd, unsigned char *inbuf, | |||
655 | 647 | ||
656 | /* Init the CRC32 table (big endian) */ | 648 | /* Init the CRC32 table (big endian) */ |
657 | 649 | ||
658 | bd->crc32Table = bb_crc32_filltable(1); | 650 | bd->crc32Table = crc32_filltable(1); |
659 | 651 | ||
660 | /* Setup for I/O error handling via longjmp */ | 652 | /* Setup for I/O error handling via longjmp */ |
661 | 653 | ||
diff --git a/archival/libunarchive/decompress_unzip.c b/archival/libunarchive/decompress_unzip.c index 8f33e6e6c..7362da8c2 100644 --- a/archival/libunarchive/decompress_unzip.c +++ b/archival/libunarchive/decompress_unzip.c | |||
@@ -34,8 +34,6 @@ | |||
34 | */ | 34 | */ |
35 | 35 | ||
36 | #include "libbb.h" | 36 | #include "libbb.h" |
37 | #include <sys/wait.h> | ||
38 | #include <signal.h> | ||
39 | #include "unarchive.h" | 37 | #include "unarchive.h" |
40 | 38 | ||
41 | typedef struct huft_s { | 39 | typedef struct huft_s { |
@@ -853,7 +851,7 @@ int inflate_unzip(int in, int out) | |||
853 | gunzip_bb = 0; | 851 | gunzip_bb = 0; |
854 | 852 | ||
855 | /* Create the crc table */ | 853 | /* Create the crc table */ |
856 | gunzip_crc_table = bb_crc32_filltable(0); | 854 | gunzip_crc_table = crc32_filltable(0); |
857 | gunzip_crc = ~0; | 855 | gunzip_crc = ~0; |
858 | 856 | ||
859 | /* Allocate space for buffer */ | 857 | /* Allocate space for buffer */ |
diff --git a/archival/libunarchive/get_header_ar.c b/archival/libunarchive/get_header_ar.c index 4627695e4..cabb4101b 100644 --- a/archival/libunarchive/get_header_ar.c +++ b/archival/libunarchive/get_header_ar.c | |||
@@ -4,12 +4,8 @@ | |||
4 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 4 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <stdio.h> | ||
8 | #include <stdlib.h> | ||
9 | #include <string.h> | ||
10 | #include <unistd.h> | ||
11 | #include "unarchive.h" | ||
12 | #include "libbb.h" | 7 | #include "libbb.h" |
8 | #include "unarchive.h" | ||
13 | 9 | ||
14 | char get_header_ar(archive_handle_t *archive_handle) | 10 | char get_header_ar(archive_handle_t *archive_handle) |
15 | { | 11 | { |
@@ -31,7 +27,7 @@ char get_header_ar(archive_handle_t *archive_handle) | |||
31 | static unsigned int ar_long_name_size; | 27 | static unsigned int ar_long_name_size; |
32 | #endif | 28 | #endif |
33 | 29 | ||
34 | /* dont use bb_xread as we want to handle the error ourself */ | 30 | /* dont use xread as we want to handle the error ourself */ |
35 | if (read(archive_handle->src_fd, ar.raw, 60) != 60) { | 31 | if (read(archive_handle->src_fd, ar.raw, 60) != 60) { |
36 | /* End Of File */ | 32 | /* End Of File */ |
37 | return(EXIT_FAILURE); | 33 | return(EXIT_FAILURE); |
@@ -85,14 +81,14 @@ char get_header_ar(archive_handle_t *archive_handle) | |||
85 | if (long_offset >= ar_long_name_size) { | 81 | if (long_offset >= ar_long_name_size) { |
86 | bb_error_msg_and_die("Cant resolve long filename"); | 82 | bb_error_msg_and_die("Cant resolve long filename"); |
87 | } | 83 | } |
88 | typed->name = bb_xstrdup(ar_long_names + long_offset); | 84 | typed->name = xstrdup(ar_long_names + long_offset); |
89 | } | 85 | } |
90 | #else | 86 | #else |
91 | bb_error_msg_and_die("long filenames not supported"); | 87 | bb_error_msg_and_die("long filenames not supported"); |
92 | #endif | 88 | #endif |
93 | } else { | 89 | } else { |
94 | /* short filenames */ | 90 | /* short filenames */ |
95 | typed->name = bb_xstrndup(ar.formatted.name, 16); | 91 | typed->name = xstrndup(ar.formatted.name, 16); |
96 | } | 92 | } |
97 | 93 | ||
98 | typed->name[strcspn(typed->name, " /")] = '\0'; | 94 | typed->name[strcspn(typed->name, " /")] = '\0'; |
diff --git a/archival/libunarchive/get_header_cpio.c b/archival/libunarchive/get_header_cpio.c index 28c743589..d405d0e1b 100644 --- a/archival/libunarchive/get_header_cpio.c +++ b/archival/libunarchive/get_header_cpio.c | |||
@@ -4,13 +4,8 @@ | |||
4 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 4 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <stdio.h> | ||
8 | #include <stdlib.h> | ||
9 | #include <string.h> | ||
10 | #include <unistd.h> | ||
11 | #include <sys/sysmacros.h> /* major() and minor() */ | ||
12 | #include "unarchive.h" | ||
13 | #include "libbb.h" | 7 | #include "libbb.h" |
8 | #include "unarchive.h" | ||
14 | 9 | ||
15 | typedef struct hardlinks_s { | 10 | typedef struct hardlinks_s { |
16 | file_header_t *entry; | 11 | file_header_t *entry; |
@@ -123,7 +118,7 @@ char get_header_cpio(archive_handle_t *archive_handle) | |||
123 | pending_hardlinks = 1; | 118 | pending_hardlinks = 1; |
124 | while (tmp) { | 119 | while (tmp) { |
125 | if (tmp->inode == inode) { | 120 | if (tmp->inode == inode) { |
126 | tmp->entry->link_name = bb_xstrdup(file_header->name); | 121 | tmp->entry->link_name = xstrdup(file_header->name); |
127 | nlink--; | 122 | nlink--; |
128 | } | 123 | } |
129 | tmp = tmp->next; | 124 | tmp = tmp->next; |
diff --git a/archival/libunarchive/get_header_tar.c b/archival/libunarchive/get_header_tar.c index fb7e9ae8f..0c622f44a 100644 --- a/archival/libunarchive/get_header_tar.c +++ b/archival/libunarchive/get_header_tar.c | |||
@@ -11,12 +11,8 @@ | |||
11 | * http://www.opengroup.org/onlinepubs/007904975/utilities/pax.html | 11 | * http://www.opengroup.org/onlinepubs/007904975/utilities/pax.html |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <stdio.h> | ||
15 | #include <stdlib.h> | ||
16 | #include <string.h> | ||
17 | #include <sys/sysmacros.h> /* For makedev */ | ||
18 | #include "unarchive.h" | ||
19 | #include "libbb.h" | 14 | #include "libbb.h" |
15 | #include "unarchive.h" | ||
20 | 16 | ||
21 | #ifdef CONFIG_FEATURE_TAR_GNU_EXTENSIONS | 17 | #ifdef CONFIG_FEATURE_TAR_GNU_EXTENSIONS |
22 | static char *longname = NULL; | 18 | static char *longname = NULL; |
@@ -106,7 +102,7 @@ char get_header_tar(archive_handle_t *archive_handle) | |||
106 | } else | 102 | } else |
107 | #endif | 103 | #endif |
108 | { | 104 | { |
109 | file_header->name = bb_xstrndup(tar.formatted.name,100); | 105 | file_header->name = xstrndup(tar.formatted.name,100); |
110 | 106 | ||
111 | if (tar.formatted.prefix[0]) { | 107 | if (tar.formatted.prefix[0]) { |
112 | char *temp = file_header->name; | 108 | char *temp = file_header->name; |
@@ -120,7 +116,7 @@ char get_header_tar(archive_handle_t *archive_handle) | |||
120 | file_header->size = strtol(tar.formatted.size, NULL, 8); | 116 | file_header->size = strtol(tar.formatted.size, NULL, 8); |
121 | file_header->mtime = strtol(tar.formatted.mtime, NULL, 8); | 117 | file_header->mtime = strtol(tar.formatted.mtime, NULL, 8); |
122 | file_header->link_name = (tar.formatted.linkname[0] != '\0') ? | 118 | file_header->link_name = (tar.formatted.linkname[0] != '\0') ? |
123 | bb_xstrdup(tar.formatted.linkname) : NULL; | 119 | xstrdup(tar.formatted.linkname) : NULL; |
124 | file_header->device = makedev(strtol(tar.formatted.devmajor, NULL, 8), | 120 | file_header->device = makedev(strtol(tar.formatted.devmajor, NULL, 8), |
125 | strtol(tar.formatted.devminor, NULL, 8)); | 121 | strtol(tar.formatted.devminor, NULL, 8)); |
126 | 122 | ||
diff --git a/archival/rpm.c b/archival/rpm.c index 3b70439a7..7b27c0250 100644 --- a/archival/rpm.c +++ b/archival/rpm.c | |||
@@ -7,16 +7,6 @@ | |||
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <stdio.h> | ||
11 | #include <unistd.h> | ||
12 | #include <signal.h> | ||
13 | #include <stdlib.h> | ||
14 | #include <fcntl.h> | ||
15 | #include <netinet/in.h> /* For ntohl & htonl function */ | ||
16 | #include <string.h> /* For strncmp */ | ||
17 | #include <sys/mman.h> /* For mmap */ | ||
18 | #include <time.h> /* For ctime */ | ||
19 | |||
20 | #include "busybox.h" | 10 | #include "busybox.h" |
21 | #include "unarchive.h" | 11 | #include "unarchive.h" |
22 | 12 | ||
@@ -127,7 +117,7 @@ int rpm_main(int argc, char **argv) | |||
127 | 117 | ||
128 | if (optind == argc) bb_show_usage(); | 118 | if (optind == argc) bb_show_usage(); |
129 | while (optind < argc) { | 119 | while (optind < argc) { |
130 | rpm_fd = bb_xopen(argv[optind], O_RDONLY); | 120 | rpm_fd = xopen(argv[optind], O_RDONLY); |
131 | mytags = rpm_gettags(rpm_fd, (int *) &tagcount); | 121 | mytags = rpm_gettags(rpm_fd, (int *) &tagcount); |
132 | offset = lseek(rpm_fd, 0, SEEK_CUR); | 122 | offset = lseek(rpm_fd, 0, SEEK_CUR); |
133 | if (!mytags) { printf("Error reading rpm header\n"); exit(-1); } | 123 | if (!mytags) { printf("Error reading rpm header\n"); exit(-1); } |
@@ -198,7 +188,7 @@ void extract_cpio_gz(int fd) { | |||
198 | bb_error_msg_and_die("Invalid gzip magic"); | 188 | bb_error_msg_and_die("Invalid gzip magic"); |
199 | } | 189 | } |
200 | check_header_gzip(archive_handle->src_fd); | 190 | check_header_gzip(archive_handle->src_fd); |
201 | bb_xchdir("/"); // Install RPM's to root | 191 | xchdir("/"); // Install RPM's to root |
202 | 192 | ||
203 | archive_handle->src_fd = open_transformer(archive_handle->src_fd, inflate_gunzip); | 193 | archive_handle->src_fd = open_transformer(archive_handle->src_fd, inflate_gunzip); |
204 | archive_handle->offset = 0; | 194 | archive_handle->offset = 0; |
@@ -302,7 +292,7 @@ void fileaction_dobackup(char *filename, int fileref) | |||
302 | if (rpm_getint(RPMTAG_FILEFLAGS, fileref) & RPMFILE_CONFIG) { /* Only need to backup config files */ | 292 | if (rpm_getint(RPMTAG_FILEFLAGS, fileref) & RPMFILE_CONFIG) { /* Only need to backup config files */ |
303 | stat_res = lstat (filename, &oldfile); | 293 | stat_res = lstat (filename, &oldfile); |
304 | if (stat_res == 0 && S_ISREG(oldfile.st_mode)) { /* File already exists - really should check MD5's etc to see if different */ | 294 | if (stat_res == 0 && S_ISREG(oldfile.st_mode)) { /* File already exists - really should check MD5's etc to see if different */ |
305 | newname = bb_xstrdup(filename); | 295 | newname = xstrdup(filename); |
306 | newname = strcat(newname, ".rpmorig"); | 296 | newname = strcat(newname, ".rpmorig"); |
307 | copy_file(filename, newname, FILEUTILS_RECUR | FILEUTILS_PRESERVE_STATUS); | 297 | copy_file(filename, newname, FILEUTILS_RECUR | FILEUTILS_PRESERVE_STATUS); |
308 | remove_file(filename, FILEUTILS_RECUR | FILEUTILS_FORCE); | 298 | remove_file(filename, FILEUTILS_RECUR | FILEUTILS_FORCE); |
@@ -328,7 +318,7 @@ void loop_through_files(int filetag, void (*fileaction)(char *filename, int file | |||
328 | { | 318 | { |
329 | int count = 0; | 319 | int count = 0; |
330 | while (rpm_getstring(filetag, count)) { | 320 | while (rpm_getstring(filetag, count)) { |
331 | char * filename = bb_xasprintf("%s%s", | 321 | char * filename = xasprintf("%s%s", |
332 | rpm_getstring(RPMTAG_DIRNAMES, rpm_getint(RPMTAG_DIRINDEXES, | 322 | rpm_getstring(RPMTAG_DIRNAMES, rpm_getint(RPMTAG_DIRINDEXES, |
333 | count)), rpm_getstring(RPMTAG_BASENAMES, count)); | 323 | count)), rpm_getstring(RPMTAG_BASENAMES, count)); |
334 | fileaction(filename, count++); | 324 | fileaction(filename, count++); |
diff --git a/archival/rpm2cpio.c b/archival/rpm2cpio.c index 6aae150e2..3ae8458dd 100644 --- a/archival/rpm2cpio.c +++ b/archival/rpm2cpio.c | |||
@@ -6,11 +6,6 @@ | |||
6 | * | 6 | * |
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
8 | */ | 8 | */ |
9 | #include <sys/types.h> | ||
10 | #include <netinet/in.h> /* For ntohl & htonl function */ | ||
11 | #include <fcntl.h> | ||
12 | #include <unistd.h> | ||
13 | #include <string.h> | ||
14 | #include "busybox.h" | 9 | #include "busybox.h" |
15 | #include "unarchive.h" | 10 | #include "unarchive.h" |
16 | 11 | ||
@@ -63,7 +58,7 @@ int rpm2cpio_main(int argc, char **argv) | |||
63 | if (argc == 1) { | 58 | if (argc == 1) { |
64 | rpm_fd = STDIN_FILENO; | 59 | rpm_fd = STDIN_FILENO; |
65 | } else { | 60 | } else { |
66 | rpm_fd = bb_xopen(argv[1], O_RDONLY); | 61 | rpm_fd = xopen(argv[1], O_RDONLY); |
67 | } | 62 | } |
68 | 63 | ||
69 | xread(rpm_fd, &lead, sizeof(struct rpm_lead)); | 64 | xread(rpm_fd, &lead, sizeof(struct rpm_lead)); |
diff --git a/archival/uncompress.c b/archival/uncompress.c index 801293fd9..ca775c787 100644 --- a/archival/uncompress.c +++ b/archival/uncompress.c | |||
@@ -5,13 +5,6 @@ | |||
5 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 5 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <stdlib.h> | ||
9 | #include <string.h> | ||
10 | #include <unistd.h> | ||
11 | #include <sys/types.h> | ||
12 | #include <sys/stat.h> | ||
13 | #include <fcntl.h> | ||
14 | |||
15 | #include "busybox.h" | 8 | #include "busybox.h" |
16 | #include "unarchive.h" | 9 | #include "unarchive.h" |
17 | 10 | ||
@@ -36,7 +29,7 @@ int uncompress_main(int argc, char **argv) | |||
36 | src_fd = STDIN_FILENO; | 29 | src_fd = STDIN_FILENO; |
37 | flags |= GUNZIP_TO_STDOUT; | 30 | flags |= GUNZIP_TO_STDOUT; |
38 | } else { | 31 | } else { |
39 | src_fd = bb_xopen(compressed_file, O_RDONLY); | 32 | src_fd = xopen(compressed_file, O_RDONLY); |
40 | } | 33 | } |
41 | 34 | ||
42 | /* Check that the input is sane. */ | 35 | /* Check that the input is sane. */ |
@@ -52,7 +45,7 @@ int uncompress_main(int argc, char **argv) | |||
52 | struct stat stat_buf; | 45 | struct stat stat_buf; |
53 | char *extension; | 46 | char *extension; |
54 | 47 | ||
55 | uncompressed_file = bb_xstrdup(compressed_file); | 48 | uncompressed_file = xstrdup(compressed_file); |
56 | 49 | ||
57 | extension = strrchr(uncompressed_file, '.'); | 50 | extension = strrchr(uncompressed_file, '.'); |
58 | if (!extension || (strcmp(extension, ".Z") != 0)) { | 51 | if (!extension || (strcmp(extension, ".Z") != 0)) { |
@@ -62,7 +55,7 @@ int uncompress_main(int argc, char **argv) | |||
62 | 55 | ||
63 | /* Open output file */ | 56 | /* Open output file */ |
64 | xstat(compressed_file, &stat_buf); | 57 | xstat(compressed_file, &stat_buf); |
65 | dst_fd = bb_xopen3(uncompressed_file, O_WRONLY | O_CREAT, | 58 | dst_fd = xopen3(uncompressed_file, O_WRONLY | O_CREAT, |
66 | stat_buf.st_mode); | 59 | stat_buf.st_mode); |
67 | 60 | ||
68 | /* If unzip succeeds remove the old file */ | 61 | /* If unzip succeeds remove the old file */ |
diff --git a/archival/unlzma.c b/archival/unlzma.c index bb4b9db6b..fbd207ca1 100644 --- a/archival/unlzma.c +++ b/archival/unlzma.c | |||
@@ -8,12 +8,6 @@ | |||
8 | * Licensed under GPL v2, see file LICENSE in this tarball for details. | 8 | * Licensed under GPL v2, see file LICENSE in this tarball for details. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <fcntl.h> | ||
12 | #include <stdio.h> | ||
13 | #include <stdlib.h> | ||
14 | #include <string.h> | ||
15 | #include <unistd.h> | ||
16 | |||
17 | #include "busybox.h" | 11 | #include "busybox.h" |
18 | #include "unarchive.h" | 12 | #include "unarchive.h" |
19 | 13 | ||
@@ -31,7 +25,7 @@ int unlzma_main(int argc, char **argv) | |||
31 | filename = argv[optind]; | 25 | filename = argv[optind]; |
32 | if ((filename) && (filename[0] != '-') && (filename[1] != '\0')) { | 26 | if ((filename) && (filename[0] != '-') && (filename[1] != '\0')) { |
33 | /* Open input file */ | 27 | /* Open input file */ |
34 | src_fd = bb_xopen(filename, O_RDONLY); | 28 | src_fd = xopen(filename, O_RDONLY); |
35 | } else { | 29 | } else { |
36 | src_fd = STDIN_FILENO; | 30 | src_fd = STDIN_FILENO; |
37 | filename = 0; | 31 | filename = 0; |
@@ -50,7 +44,7 @@ int unlzma_main(int argc, char **argv) | |||
50 | } | 44 | } |
51 | xstat(filename, &stat_buf); | 45 | xstat(filename, &stat_buf); |
52 | *extension = 0; | 46 | *extension = 0; |
53 | dst_fd = bb_xopen3(filename, O_WRONLY | O_CREAT, stat_buf.st_mode); | 47 | dst_fd = xopen3(filename, O_WRONLY | O_CREAT, stat_buf.st_mode); |
54 | } else | 48 | } else |
55 | dst_fd = STDOUT_FILENO; | 49 | dst_fd = STDOUT_FILENO; |
56 | status = unlzma(src_fd, dst_fd); | 50 | status = unlzma(src_fd, dst_fd); |
diff --git a/archival/unzip.c b/archival/unzip.c index 012f355e2..68083e987 100644 --- a/archival/unzip.c +++ b/archival/unzip.c | |||
@@ -24,13 +24,8 @@ | |||
24 | * - central directory | 24 | * - central directory |
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include <fcntl.h> | ||
28 | #include <stdlib.h> | ||
29 | #include <string.h> | ||
30 | #include <unistd.h> | ||
31 | #include <errno.h> | ||
32 | #include "unarchive.h" | ||
33 | #include "busybox.h" | 27 | #include "busybox.h" |
28 | #include "unarchive.h" | ||
34 | 29 | ||
35 | #define ZIP_FILEHEADER_MAGIC SWAP_LE32(0x04034b50) | 30 | #define ZIP_FILEHEADER_MAGIC SWAP_LE32(0x04034b50) |
36 | #define ZIP_CDS_MAGIC SWAP_LE32(0x02014b50) | 31 | #define ZIP_CDS_MAGIC SWAP_LE32(0x02014b50) |
@@ -68,7 +63,7 @@ static void unzip_skip(int fd, off_t skip) | |||
68 | static void unzip_create_leading_dirs(char *fn) | 63 | static void unzip_create_leading_dirs(char *fn) |
69 | { | 64 | { |
70 | /* Create all leading directories */ | 65 | /* Create all leading directories */ |
71 | char *name = bb_xstrdup(fn); | 66 | char *name = xstrdup(fn); |
72 | if (bb_make_directory(dirname(name), 0777, FILEUTILS_RECUR)) { | 67 | if (bb_make_directory(dirname(name), 0777, FILEUTILS_RECUR)) { |
73 | bb_error_msg_and_die("Exiting"); /* bb_make_directory is noisy */ | 68 | bb_error_msg_and_die("Exiting"); /* bb_make_directory is noisy */ |
74 | } | 69 | } |
@@ -143,7 +138,7 @@ int unzip_main(int argc, char **argv) | |||
143 | break; | 138 | break; |
144 | 139 | ||
145 | case 1 : /* The zip file */ | 140 | case 1 : /* The zip file */ |
146 | src_fn = bb_xstrndup(optarg, strlen(optarg)+4); | 141 | src_fn = xstrndup(optarg, strlen(optarg)+4); |
147 | opt_range++; | 142 | opt_range++; |
148 | break; | 143 | break; |
149 | 144 | ||
@@ -212,7 +207,7 @@ int unzip_main(int argc, char **argv) | |||
212 | 207 | ||
213 | /* Change dir if necessary */ | 208 | /* Change dir if necessary */ |
214 | if (base_dir) | 209 | if (base_dir) |
215 | bb_xchdir(base_dir); | 210 | xchdir(base_dir); |
216 | 211 | ||
217 | if (verbosity != v_silent) | 212 | if (verbosity != v_silent) |
218 | printf("Archive: %s\n", src_fn); | 213 | printf("Archive: %s\n", src_fn); |
@@ -338,7 +333,7 @@ int unzip_main(int argc, char **argv) | |||
338 | overwrite = o_always; | 333 | overwrite = o_always; |
339 | case 'y': /* Open file and fall into unzip */ | 334 | case 'y': /* Open file and fall into unzip */ |
340 | unzip_create_leading_dirs(dst_fn); | 335 | unzip_create_leading_dirs(dst_fn); |
341 | dst_fd = bb_xopen(dst_fn, O_WRONLY | O_CREAT); | 336 | dst_fd = xopen(dst_fn, O_WRONLY | O_CREAT); |
342 | case -1: /* Unzip */ | 337 | case -1: /* Unzip */ |
343 | if (verbosity == v_normal) { | 338 | if (verbosity == v_normal) { |
344 | printf(" inflating: %s\n", dst_fn); | 339 | printf(" inflating: %s\n", dst_fn); |
@@ -366,7 +361,7 @@ int unzip_main(int argc, char **argv) | |||
366 | bb_perror_msg_and_die("Cannot read input"); | 361 | bb_perror_msg_and_die("Cannot read input"); |
367 | } | 362 | } |
368 | free(dst_fn); | 363 | free(dst_fn); |
369 | dst_fn = bb_xstrdup(key_buf); | 364 | dst_fn = xstrdup(key_buf); |
370 | chomp(dst_fn); | 365 | chomp(dst_fn); |
371 | goto _check_file; | 366 | goto _check_file; |
372 | 367 | ||
diff --git a/console-tools/dumpkmap.c b/console-tools/dumpkmap.c index 62313e77f..7c6633ae8 100644 --- a/console-tools/dumpkmap.c +++ b/console-tools/dumpkmap.c | |||
@@ -8,13 +8,6 @@ | |||
8 | * | 8 | * |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <errno.h> | ||
12 | #include <fcntl.h> | ||
13 | #include <stdio.h> | ||
14 | #include <unistd.h> | ||
15 | #include <string.h> | ||
16 | #include <stdlib.h> | ||
17 | #include <sys/ioctl.h> | ||
18 | #include "busybox.h" | 11 | #include "busybox.h" |
19 | 12 | ||
20 | /* From <linux/kd.h> */ | 13 | /* From <linux/kd.h> */ |
@@ -38,7 +31,7 @@ int dumpkmap_main(int argc, char **argv) | |||
38 | if (argc >= 2 && *argv[1] == '-') | 31 | if (argc >= 2 && *argv[1] == '-') |
39 | bb_show_usage(); | 32 | bb_show_usage(); |
40 | 33 | ||
41 | fd = bb_xopen(CURRENT_VC, O_RDWR); | 34 | fd = xopen(CURRENT_VC, O_RDWR); |
42 | 35 | ||
43 | write(1, magic, 7); | 36 | write(1, magic, 7); |
44 | 37 | ||
diff --git a/console-tools/loadfont.c b/console-tools/loadfont.c index 2421cadcf..3d8588565 100644 --- a/console-tools/loadfont.c +++ b/console-tools/loadfont.c | |||
@@ -7,18 +7,8 @@ | |||
7 | * Loads the console font, and possibly the corresponding screen map(s). | 7 | * Loads the console font, and possibly the corresponding screen map(s). |
8 | * (Adapted for busybox by Matej Vela.) | 8 | * (Adapted for busybox by Matej Vela.) |
9 | */ | 9 | */ |
10 | #include <stdio.h> | ||
11 | #include <string.h> | ||
12 | #include <fcntl.h> | ||
13 | #include <stdlib.h> | ||
14 | #include <unistd.h> | ||
15 | #include <sys/types.h> | ||
16 | #include <dirent.h> | ||
17 | #include <errno.h> | ||
18 | #include <sys/ioctl.h> | ||
19 | #include <sys/kd.h> | ||
20 | #include <endian.h> | ||
21 | #include "busybox.h" | 10 | #include "busybox.h" |
11 | #include <sys/kd.h> | ||
22 | 12 | ||
23 | enum{ | 13 | enum{ |
24 | PSF_MAGIC1 = 0x36, | 14 | PSF_MAGIC1 = 0x36, |
@@ -47,7 +37,7 @@ int loadfont_main(int argc, char **argv) | |||
47 | if (argc != 1) | 37 | if (argc != 1) |
48 | bb_show_usage(); | 38 | bb_show_usage(); |
49 | 39 | ||
50 | fd = bb_xopen(CURRENT_VC, O_RDWR); | 40 | fd = xopen(CURRENT_VC, O_RDWR); |
51 | loadnewfont(fd); | 41 | loadnewfont(fd); |
52 | 42 | ||
53 | return EXIT_SUCCESS; | 43 | return EXIT_SUCCESS; |
diff --git a/console-tools/loadkmap.c b/console-tools/loadkmap.c index 69d33bd95..ec55c3990 100644 --- a/console-tools/loadkmap.c +++ b/console-tools/loadkmap.c | |||
@@ -8,13 +8,6 @@ | |||
8 | * | 8 | * |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <errno.h> | ||
12 | #include <fcntl.h> | ||
13 | #include <stdio.h> | ||
14 | #include <string.h> | ||
15 | #include <stdlib.h> | ||
16 | #include <unistd.h> | ||
17 | #include <sys/ioctl.h> | ||
18 | #include "busybox.h" | 11 | #include "busybox.h" |
19 | 12 | ||
20 | #define BINARY_KEYMAP_MAGIC "bkeymap" | 13 | #define BINARY_KEYMAP_MAGIC "bkeymap" |
@@ -43,7 +36,7 @@ int loadkmap_main(int argc, char **argv) | |||
43 | if (argc != 1) | 36 | if (argc != 1) |
44 | bb_show_usage(); | 37 | bb_show_usage(); |
45 | 38 | ||
46 | fd = bb_xopen(CURRENT_VC, O_RDWR); | 39 | fd = xopen(CURRENT_VC, O_RDWR); |
47 | 40 | ||
48 | xread(0, buff, 7); | 41 | xread(0, buff, 7); |
49 | if (strncmp(buff, BINARY_KEYMAP_MAGIC, 7)) | 42 | if (strncmp(buff, BINARY_KEYMAP_MAGIC, 7)) |
diff --git a/console-tools/openvt.c b/console-tools/openvt.c index 948dba767..0c0cef23c 100644 --- a/console-tools/openvt.c +++ b/console-tools/openvt.c | |||
@@ -40,7 +40,7 @@ int openvt_main(int argc, char **argv) | |||
40 | close(0); /* so that new vt becomes stdin */ | 40 | close(0); /* so that new vt becomes stdin */ |
41 | 41 | ||
42 | /* and grab new one */ | 42 | /* and grab new one */ |
43 | fd = bb_xopen(vtname, O_RDWR); | 43 | fd = xopen(vtname, O_RDWR); |
44 | 44 | ||
45 | /* Reassign stdout and sterr */ | 45 | /* Reassign stdout and sterr */ |
46 | dup2(fd, STDOUT_FILENO); | 46 | dup2(fd, STDOUT_FILENO); |
diff --git a/console-tools/setconsole.c b/console-tools/setconsole.c index 79a4313f0..71fe928da 100644 --- a/console-tools/setconsole.c +++ b/console-tools/setconsole.c | |||
@@ -7,13 +7,6 @@ | |||
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <sys/ioctl.h> | ||
11 | #include <sys/stat.h> | ||
12 | #include <sys/types.h> | ||
13 | #include <fcntl.h> | ||
14 | #include <stdio.h> | ||
15 | #include <getopt.h> /* struct option */ | ||
16 | |||
17 | #include "busybox.h" | 10 | #include "busybox.h" |
18 | 11 | ||
19 | #if ENABLE_FEATURE_SETCONSOLE_LONG_OPTIONS | 12 | #if ENABLE_FEATURE_SETCONSOLE_LONG_OPTIONS |
@@ -47,7 +40,7 @@ int setconsole_main(int argc, char **argv) | |||
47 | device = CONSOLE_DEV; | 40 | device = CONSOLE_DEV; |
48 | } | 41 | } |
49 | 42 | ||
50 | if (-1 == ioctl(bb_xopen(device, O_RDONLY), TIOCCONS)) { | 43 | if (-1 == ioctl(xopen(device, O_RDONLY), TIOCCONS)) { |
51 | bb_perror_msg_and_die("TIOCCONS"); | 44 | bb_perror_msg_and_die("TIOCCONS"); |
52 | } | 45 | } |
53 | return EXIT_SUCCESS; | 46 | return EXIT_SUCCESS; |
diff --git a/console-tools/setlogcons.c b/console-tools/setlogcons.c index 62a654777..6667eb622 100644 --- a/console-tools/setlogcons.c +++ b/console-tools/setlogcons.c | |||
@@ -9,10 +9,6 @@ | |||
9 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 9 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <stdio.h> | ||
13 | #include <stdlib.h> | ||
14 | #include <fcntl.h> | ||
15 | #include <sys/ioctl.h> | ||
16 | #include "busybox.h" | 12 | #include "busybox.h" |
17 | 13 | ||
18 | extern int setlogcons_main(int argc, char **argv) | 14 | extern int setlogcons_main(int argc, char **argv) |
@@ -28,7 +24,7 @@ extern int setlogcons_main(int argc, char **argv) | |||
28 | if (argc == 2) | 24 | if (argc == 2) |
29 | arg.subarg = atoi(argv[1]); | 25 | arg.subarg = atoi(argv[1]); |
30 | 26 | ||
31 | if (ioctl(bb_xopen(VC_1, O_RDONLY), TIOCLINUX, &arg)) | 27 | if (ioctl(xopen(VC_1, O_RDONLY), TIOCLINUX, &arg)) |
32 | bb_perror_msg_and_die("TIOCLINUX");; | 28 | bb_perror_msg_and_die("TIOCLINUX");; |
33 | 29 | ||
34 | return 0; | 30 | return 0; |
diff --git a/coreutils/cal.c b/coreutils/cal.c index 5d61b6ccf..9628459fe 100644 --- a/coreutils/cal.c +++ b/coreutils/cal.c | |||
@@ -17,20 +17,8 @@ | |||
17 | * Major size reduction... over 50% (>1.5k) on i386. | 17 | * Major size reduction... over 50% (>1.5k) on i386. |
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include <sys/types.h> | ||
21 | #include <ctype.h> | ||
22 | #include <stdio.h> | ||
23 | #include <stdlib.h> | ||
24 | #include <string.h> | ||
25 | #include <time.h> | ||
26 | #include <unistd.h> | ||
27 | |||
28 | #include "busybox.h" | 20 | #include "busybox.h" |
29 | 21 | ||
30 | #ifdef CONFIG_LOCALE_SUPPORT | ||
31 | #include <locale.h> | ||
32 | #endif | ||
33 | |||
34 | #define THURSDAY 4 /* for reformation */ | 22 | #define THURSDAY 4 /* for reformation */ |
35 | #define SATURDAY 6 /* 1 Jan 1 was a Saturday */ | 23 | #define SATURDAY 6 /* 1 Jan 1 was a Saturday */ |
36 | 24 | ||
@@ -135,7 +123,7 @@ int cal_main(int argc, char **argv) | |||
135 | do { | 123 | do { |
136 | zero_tm.tm_mon = i; | 124 | zero_tm.tm_mon = i; |
137 | strftime(buf, sizeof(buf), "%B", &zero_tm); | 125 | strftime(buf, sizeof(buf), "%B", &zero_tm); |
138 | month_names[i] = bb_xstrdup(buf); | 126 | month_names[i] = xstrdup(buf); |
139 | 127 | ||
140 | if (i < 7) { | 128 | if (i < 7) { |
141 | zero_tm.tm_wday = i; | 129 | zero_tm.tm_wday = i; |
diff --git a/coreutils/catv.c b/coreutils/catv.c index dd4aa44e3..e18203915 100644 --- a/coreutils/catv.c +++ b/coreutils/catv.c | |||
@@ -11,8 +11,6 @@ | |||
11 | * http://cm.bell-labs.com/cm/cs/doc/84/kp.ps.gz */ | 11 | * http://cm.bell-labs.com/cm/cs/doc/84/kp.ps.gz */ |
12 | 12 | ||
13 | #include "busybox.h" | 13 | #include "busybox.h" |
14 | #include <unistd.h> | ||
15 | #include <fcntl.h> | ||
16 | 14 | ||
17 | int catv_main(int argc, char **argv) | 15 | int catv_main(int argc, char **argv) |
18 | { | 16 | { |
@@ -28,7 +26,7 @@ int catv_main(int argc, char **argv) | |||
28 | // Read from stdin if there's nothing else to do. | 26 | // Read from stdin if there's nothing else to do. |
29 | 27 | ||
30 | fd = 0; | 28 | fd = 0; |
31 | if (*argv && 0>(fd = bb_xopen(*argv, O_RDONLY))) retval = EXIT_FAILURE; | 29 | if (*argv && 0>(fd = xopen(*argv, O_RDONLY))) retval = EXIT_FAILURE; |
32 | else for(;;) { | 30 | else for(;;) { |
33 | int i, res; | 31 | int i, res; |
34 | 32 | ||
diff --git a/coreutils/chroot.c b/coreutils/chroot.c index 8ad680c02..62cfdc244 100644 --- a/coreutils/chroot.c +++ b/coreutils/chroot.c | |||
@@ -9,10 +9,6 @@ | |||
9 | 9 | ||
10 | /* BB_AUDIT SUSv3 N/A -- Matches GNU behavior. */ | 10 | /* BB_AUDIT SUSv3 N/A -- Matches GNU behavior. */ |
11 | 11 | ||
12 | #include <stdlib.h> | ||
13 | #include <stdio.h> | ||
14 | #include <unistd.h> | ||
15 | #include <errno.h> | ||
16 | #include "busybox.h" | 12 | #include "busybox.h" |
17 | 13 | ||
18 | int chroot_main(int argc, char **argv) | 14 | int chroot_main(int argc, char **argv) |
@@ -25,7 +21,7 @@ int chroot_main(int argc, char **argv) | |||
25 | if (chroot(*argv)) { | 21 | if (chroot(*argv)) { |
26 | bb_perror_msg_and_die("cannot change root directory to %s", *argv); | 22 | bb_perror_msg_and_die("cannot change root directory to %s", *argv); |
27 | } | 23 | } |
28 | bb_xchdir("/"); | 24 | xchdir("/"); |
29 | 25 | ||
30 | ++argv; | 26 | ++argv; |
31 | if (argc == 2) { | 27 | if (argc == 2) { |
diff --git a/coreutils/cksum.c b/coreutils/cksum.c index 1396a5d5b..5849ddab2 100644 --- a/coreutils/cksum.c +++ b/coreutils/cksum.c | |||
@@ -6,14 +6,11 @@ | |||
6 | * | 6 | * |
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. */ | 7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. */ |
8 | 8 | ||
9 | #include <stdio.h> | ||
10 | #include <unistd.h> | ||
11 | #include <fcntl.h> | ||
12 | #include "busybox.h" | 9 | #include "busybox.h" |
13 | 10 | ||
14 | int cksum_main(int argc, char **argv) { | 11 | int cksum_main(int argc, char **argv) { |
15 | 12 | ||
16 | uint32_t *crc32_table = bb_crc32_filltable(1); | 13 | uint32_t *crc32_table = crc32_filltable(1); |
17 | 14 | ||
18 | FILE *fp; | 15 | FILE *fp; |
19 | uint32_t crc; | 16 | uint32_t crc; |
diff --git a/coreutils/cmp.c b/coreutils/cmp.c index 016158bfe..a569eb3fe 100644 --- a/coreutils/cmp.c +++ b/coreutils/cmp.c | |||
@@ -21,9 +21,6 @@ | |||
21 | * in the '-l' case. | 21 | * in the '-l' case. |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <stdio.h> | ||
25 | #include <stdlib.h> | ||
26 | #include <unistd.h> | ||
27 | #include "busybox.h" | 24 | #include "busybox.h" |
28 | 25 | ||
29 | static FILE *cmp_xfopen_input(const char *filename) | 26 | static FILE *cmp_xfopen_input(const char *filename) |
@@ -105,12 +102,12 @@ int cmp_main(int argc, char **argv) | |||
105 | c1 = c2; | 102 | c1 = c2; |
106 | } | 103 | } |
107 | if (c1 == EOF) { | 104 | if (c1 == EOF) { |
108 | bb_xferror(fp1, filename1); | 105 | xferror(fp1, filename1); |
109 | fmt = fmt_eof; /* Well, no error, so it must really be EOF. */ | 106 | fmt = fmt_eof; /* Well, no error, so it must really be EOF. */ |
110 | outfile = stderr; | 107 | outfile = stderr; |
111 | /* There may have been output to stdout (option -l), so | 108 | /* There may have been output to stdout (option -l), so |
112 | * make sure we fflush before writing to stderr. */ | 109 | * make sure we fflush before writing to stderr. */ |
113 | bb_xfflush_stdout(); | 110 | xfflush_stdout(); |
114 | } | 111 | } |
115 | if (opt_flags != OPT_s) { | 112 | if (opt_flags != OPT_s) { |
116 | if (opt_flags == OPT_l) { | 113 | if (opt_flags == OPT_l) { |
@@ -129,8 +126,8 @@ int cmp_main(int argc, char **argv) | |||
129 | } | 126 | } |
130 | } while (c1 != EOF); | 127 | } while (c1 != EOF); |
131 | 128 | ||
132 | bb_xferror(fp1, filename1); | 129 | xferror(fp1, filename1); |
133 | bb_xferror(fp2, filename2); | 130 | xferror(fp2, filename2); |
134 | 131 | ||
135 | bb_fflush_stdout_and_exit(exit_val); | 132 | bb_fflush_stdout_and_exit(exit_val); |
136 | } | 133 | } |
diff --git a/coreutils/comm.c b/coreutils/comm.c index 8b9380175..7524a7b25 100644 --- a/coreutils/comm.c +++ b/coreutils/comm.c | |||
@@ -7,10 +7,6 @@ | |||
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <stdio.h> | ||
11 | #include <stdlib.h> | ||
12 | #include <string.h> | ||
13 | #include <unistd.h> | ||
14 | #include "busybox.h" | 10 | #include "busybox.h" |
15 | 11 | ||
16 | #define COMM_OPT_1 0x01 | 12 | #define COMM_OPT_1 0x01 |
@@ -57,7 +53,7 @@ static void cmp_files(char **infiles) | |||
57 | int i; | 53 | int i; |
58 | 54 | ||
59 | for (i = 0; i < 2; ++i) { | 55 | for (i = 0; i < 2; ++i) { |
60 | streams[i] = ((infiles[i][0] == '=' && infiles[i][1]) ? stdin : bb_xfopen(infiles[i], "r")); | 56 | streams[i] = ((infiles[i][0] == '=' && infiles[i][1]) ? stdin : xfopen(infiles[i], "r")); |
61 | fgets(thisline[i], LINE_LEN, streams[i]); | 57 | fgets(thisline[i], LINE_LEN, streams[i]); |
62 | } | 58 | } |
63 | 59 | ||
diff --git a/coreutils/dd.c b/coreutils/dd.c index 3d6f7cd2d..052cd2902 100644 --- a/coreutils/dd.c +++ b/coreutils/dd.c | |||
@@ -8,14 +8,6 @@ | |||
8 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 8 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <sys/types.h> | ||
12 | #include <sys/stat.h> | ||
13 | #include <stdlib.h> | ||
14 | #include <stdio.h> | ||
15 | #include <unistd.h> | ||
16 | #include <string.h> | ||
17 | #include <fcntl.h> | ||
18 | #include <signal.h> // For FEATURE_DD_SIGNAL_HANDLING | ||
19 | #include "busybox.h" | 11 | #include "busybox.h" |
20 | 12 | ||
21 | static const struct suffix_mult dd_suffixes[] = { | 13 | static const struct suffix_mult dd_suffixes[] = { |
@@ -110,7 +102,7 @@ int dd_main(int argc, char **argv) | |||
110 | else obuf = ibuf; | 102 | else obuf = ibuf; |
111 | 103 | ||
112 | if (infile != NULL) { | 104 | if (infile != NULL) { |
113 | ifd = bb_xopen(infile, O_RDONLY); | 105 | ifd = xopen(infile, O_RDONLY); |
114 | } else { | 106 | } else { |
115 | ifd = STDIN_FILENO; | 107 | ifd = STDIN_FILENO; |
116 | infile = bb_msg_standard_input; | 108 | infile = bb_msg_standard_input; |
@@ -123,7 +115,7 @@ int dd_main(int argc, char **argv) | |||
123 | oflag |= O_TRUNC; | 115 | oflag |= O_TRUNC; |
124 | } | 116 | } |
125 | 117 | ||
126 | ofd = bb_xopen3(outfile, oflag, 0666); | 118 | ofd = xopen3(outfile, oflag, 0666); |
127 | 119 | ||
128 | if (seek && trunc_flag) { | 120 | if (seek && trunc_flag) { |
129 | if (ftruncate(ofd, seek * obs) < 0) { | 121 | if (ftruncate(ofd, seek * obs) < 0) { |
diff --git a/coreutils/diff.c b/coreutils/diff.c index 368efd383..22c157412 100644 --- a/coreutils/diff.c +++ b/coreutils/diff.c | |||
@@ -12,23 +12,6 @@ | |||
12 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 12 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <time.h> | ||
16 | #include <sys/types.h> | ||
17 | #include <sys/param.h> | ||
18 | #include <sys/stat.h> | ||
19 | #include <ctype.h> | ||
20 | #include <errno.h> | ||
21 | #include <signal.h> | ||
22 | #include <stdlib.h> | ||
23 | #include <stdio.h> | ||
24 | #include <stdarg.h> | ||
25 | #include <string.h> | ||
26 | #include <unistd.h> | ||
27 | #include <sys/wait.h> | ||
28 | #include <fcntl.h> | ||
29 | #include <stddef.h> | ||
30 | #include <paths.h> | ||
31 | #include <dirent.h> | ||
32 | #include "busybox.h" | 15 | #include "busybox.h" |
33 | 16 | ||
34 | #define FSIZE_MAX 32768 | 17 | #define FSIZE_MAX 32768 |
@@ -917,21 +900,21 @@ static int diffreg(char *ofile1, char *ofile2, int flags) | |||
917 | goto closem; | 900 | goto closem; |
918 | 901 | ||
919 | if (flags & D_EMPTY1) | 902 | if (flags & D_EMPTY1) |
920 | f1 = bb_xfopen(bb_dev_null, "r"); | 903 | f1 = xfopen(bb_dev_null, "r"); |
921 | else { | 904 | else { |
922 | if (strcmp(file1, "-") == 0) | 905 | if (strcmp(file1, "-") == 0) |
923 | f1 = stdin; | 906 | f1 = stdin; |
924 | else | 907 | else |
925 | f1 = bb_xfopen(file1, "r"); | 908 | f1 = xfopen(file1, "r"); |
926 | } | 909 | } |
927 | 910 | ||
928 | if (flags & D_EMPTY2) | 911 | if (flags & D_EMPTY2) |
929 | f2 = bb_xfopen(bb_dev_null, "r"); | 912 | f2 = xfopen(bb_dev_null, "r"); |
930 | else { | 913 | else { |
931 | if (strcmp(file2, "-") == 0) | 914 | if (strcmp(file2, "-") == 0) |
932 | f2 = stdin; | 915 | f2 = stdin; |
933 | else | 916 | else |
934 | f2 = bb_xfopen(file2, "r"); | 917 | f2 = xfopen(file2, "r"); |
935 | } | 918 | } |
936 | 919 | ||
937 | if ((i = files_differ(f1, f2, flags)) == 0) | 920 | if ((i = files_differ(f1, f2, flags)) == 0) |
@@ -1004,19 +987,19 @@ static void do_diff(char *dir1, char *path1, char *dir2, char *path2) | |||
1004 | int flags = D_HEADER; | 987 | int flags = D_HEADER; |
1005 | int val; | 988 | int val; |
1006 | 989 | ||
1007 | char *fullpath1 = bb_xasprintf("%s/%s", dir1, path1); | 990 | char *fullpath1 = xasprintf("%s/%s", dir1, path1); |
1008 | char *fullpath2 = bb_xasprintf("%s/%s", dir2, path2); | 991 | char *fullpath2 = xasprintf("%s/%s", dir2, path2); |
1009 | 992 | ||
1010 | if (stat(fullpath1, &stb1) != 0) { | 993 | if (stat(fullpath1, &stb1) != 0) { |
1011 | flags |= D_EMPTY1; | 994 | flags |= D_EMPTY1; |
1012 | memset(&stb1, 0, sizeof(stb1)); | 995 | memset(&stb1, 0, sizeof(stb1)); |
1013 | fullpath1 = bb_xasprintf("%s/%s", dir1, path2); | 996 | fullpath1 = xasprintf("%s/%s", dir1, path2); |
1014 | } | 997 | } |
1015 | if (stat(fullpath2, &stb2) != 0) { | 998 | if (stat(fullpath2, &stb2) != 0) { |
1016 | flags |= D_EMPTY2; | 999 | flags |= D_EMPTY2; |
1017 | memset(&stb2, 0, sizeof(stb2)); | 1000 | memset(&stb2, 0, sizeof(stb2)); |
1018 | stb2.st_mode = stb1.st_mode; | 1001 | stb2.st_mode = stb1.st_mode; |
1019 | fullpath2 = bb_xasprintf("%s/%s", dir2, path1); | 1002 | fullpath2 = xasprintf("%s/%s", dir2, path1); |
1020 | } | 1003 | } |
1021 | 1004 | ||
1022 | if (stb1.st_mode == 0) | 1005 | if (stb1.st_mode == 0) |
@@ -1051,7 +1034,7 @@ static int add_to_dirlist(const char *filename, | |||
1051 | { | 1034 | { |
1052 | dl_count++; | 1035 | dl_count++; |
1053 | dl = xrealloc(dl, dl_count * sizeof(char *)); | 1036 | dl = xrealloc(dl, dl_count * sizeof(char *)); |
1054 | dl[dl_count - 1] = bb_xstrdup(filename); | 1037 | dl[dl_count - 1] = xstrdup(filename); |
1055 | if (cmd_flags & FLAG_r) { | 1038 | if (cmd_flags & FLAG_r) { |
1056 | int *pp = (int *) userdata; | 1039 | int *pp = (int *) userdata; |
1057 | int path_len = *pp + 1; | 1040 | int path_len = *pp + 1; |
@@ -1077,7 +1060,7 @@ static char **get_dir(char *path) | |||
1077 | int path_len = strlen(path); | 1060 | int path_len = strlen(path); |
1078 | void *userdata = &path_len; | 1061 | void *userdata = &path_len; |
1079 | 1062 | ||
1080 | /* Reset dl_count - there's no need to free dl as bb_xrealloc does | 1063 | /* Reset dl_count - there's no need to free dl as xrealloc does |
1081 | * the job nicely. */ | 1064 | * the job nicely. */ |
1082 | dl_count = 0; | 1065 | dl_count = 0; |
1083 | 1066 | ||
@@ -1089,7 +1072,7 @@ static char **get_dir(char *path) | |||
1089 | DIR *dp; | 1072 | DIR *dp; |
1090 | struct dirent *ep; | 1073 | struct dirent *ep; |
1091 | 1074 | ||
1092 | dp = bb_opendir(path); | 1075 | dp = warn_opendir(path); |
1093 | while ((ep = readdir(dp))) { | 1076 | while ((ep = readdir(dp))) { |
1094 | if ((!strcmp(ep->d_name, "..")) || (!strcmp(ep->d_name, "."))) | 1077 | if ((!strcmp(ep->d_name, "..")) || (!strcmp(ep->d_name, "."))) |
1095 | continue; | 1078 | continue; |
@@ -1104,7 +1087,7 @@ static char **get_dir(char *path) | |||
1104 | /* Copy dl so that we can return it. */ | 1087 | /* Copy dl so that we can return it. */ |
1105 | retval = xmalloc(dl_count * sizeof(char *)); | 1088 | retval = xmalloc(dl_count * sizeof(char *)); |
1106 | for (i = 0; i < dl_count; i++) | 1089 | for (i = 0; i < dl_count; i++) |
1107 | retval[i] = bb_xstrdup(dl[i]); | 1090 | retval[i] = xstrdup(dl[i]); |
1108 | 1091 | ||
1109 | return retval; | 1092 | return retval; |
1110 | } | 1093 | } |
diff --git a/coreutils/dos2unix.c b/coreutils/dos2unix.c index 5bf16e5af..19f1a3257 100644 --- a/coreutils/dos2unix.c +++ b/coreutils/dos2unix.c | |||
@@ -12,10 +12,6 @@ | |||
12 | * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. | 12 | * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <string.h> | ||
16 | #include <unistd.h> | ||
17 | #include <stdint.h> | ||
18 | #include <fcntl.h> | ||
19 | #include "busybox.h" | 15 | #include "busybox.h" |
20 | 16 | ||
21 | enum ConvType { | 17 | enum ConvType { |
@@ -30,7 +26,7 @@ static int convert(char *fn) | |||
30 | int i; | 26 | int i; |
31 | 27 | ||
32 | if (fn != NULL) { | 28 | if (fn != NULL) { |
33 | in = bb_xfopen(fn, "rw"); | 29 | in = xfopen(fn, "rw"); |
34 | /* | 30 | /* |
35 | The file is then created with mode read/write and | 31 | The file is then created with mode read/write and |
36 | permissions 0666 for glibc 2.0.6 and earlier or | 32 | permissions 0666 for glibc 2.0.6 and earlier or |
diff --git a/coreutils/expr.c b/coreutils/expr.c index 725196039..0a1baa19d 100644 --- a/coreutils/expr.c +++ b/coreutils/expr.c | |||
@@ -25,14 +25,8 @@ | |||
25 | 25 | ||
26 | /* no getopt needed */ | 26 | /* no getopt needed */ |
27 | 27 | ||
28 | #include <stdio.h> | ||
29 | #include <string.h> | ||
30 | #include <stdlib.h> | ||
31 | #include <regex.h> | ||
32 | #include <sys/types.h> | ||
33 | #include <errno.h> | ||
34 | #include "busybox.h" | 28 | #include "busybox.h" |
35 | 29 | #include "xregex.h" | |
36 | 30 | ||
37 | /* The kinds of value we can have. */ | 31 | /* The kinds of value we can have. */ |
38 | enum valtype { | 32 | enum valtype { |
@@ -116,9 +110,9 @@ static VALUE *str_value (char *s) | |||
116 | { | 110 | { |
117 | VALUE *v; | 111 | VALUE *v; |
118 | 112 | ||
119 | v = xmalloc (sizeof(VALUE)); | 113 | v = xmalloc(sizeof(VALUE)); |
120 | v->type = string; | 114 | v->type = string; |
121 | v->u.s = bb_xstrdup (s); | 115 | v->u.s = xstrdup(s); |
122 | return v; | 116 | return v; |
123 | } | 117 | } |
124 | 118 | ||
@@ -148,7 +142,7 @@ static int null (VALUE *v) | |||
148 | static void tostring (VALUE *v) | 142 | static void tostring (VALUE *v) |
149 | { | 143 | { |
150 | if (v->type == integer) { | 144 | if (v->type == integer) { |
151 | v->u.s = bb_xasprintf ("%" PF_REZ "d", PF_REZ_TYPE v->u.i); | 145 | v->u.s = xasprintf("%" PF_REZ "d", PF_REZ_TYPE v->u.i); |
152 | v->type = string; | 146 | v->type = string; |
153 | } | 147 | } |
154 | } | 148 | } |
@@ -366,7 +360,7 @@ static VALUE *eval6 (void) | |||
366 | else { | 360 | else { |
367 | v = xmalloc (sizeof(VALUE)); | 361 | v = xmalloc (sizeof(VALUE)); |
368 | v->type = string; | 362 | v->type = string; |
369 | v->u.s = bb_xstrndup(l->u.s + i1->u.i - 1, i2->u.i); | 363 | v->u.s = xstrndup(l->u.s + i1->u.i - 1, i2->u.i); |
370 | } | 364 | } |
371 | freev (l); | 365 | freev (l); |
372 | freev (i1); | 366 | freev (i1); |
diff --git a/coreutils/fold.c b/coreutils/fold.c index 665b93e6e..aff7bb1d9 100644 --- a/coreutils/fold.c +++ b/coreutils/fold.c | |||
@@ -10,13 +10,6 @@ | |||
10 | Licensed under the GPL v2 or later, see the file LICENSE in this tarball. | 10 | Licensed under the GPL v2 or later, see the file LICENSE in this tarball. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <ctype.h> | ||
14 | #include <errno.h> | ||
15 | #include <stdio.h> | ||
16 | #include <stdlib.h> | ||
17 | #include <string.h> | ||
18 | #include <sys/types.h> | ||
19 | #include <unistd.h> | ||
20 | #include "busybox.h" | 13 | #include "busybox.h" |
21 | 14 | ||
22 | static unsigned long flags; | 15 | static unsigned long flags; |
@@ -61,7 +54,7 @@ int fold_main(int argc, char **argv) | |||
61 | if (*a == '-' && !a[1]) | 54 | if (*a == '-' && !a[1]) |
62 | break; | 55 | break; |
63 | if (isdigit(*a)) { | 56 | if (isdigit(*a)) { |
64 | argv[i] = bb_xasprintf("-w%s", a); | 57 | argv[i] = xasprintf("-w%s", a); |
65 | } | 58 | } |
66 | } | 59 | } |
67 | } | 60 | } |
diff --git a/coreutils/head.c b/coreutils/head.c index 184e8161c..e961ca6b6 100644 --- a/coreutils/head.c +++ b/coreutils/head.c | |||
@@ -11,11 +11,6 @@ | |||
11 | /* BB_AUDIT GNU compatible -c, -q, and -v options in 'fancy' configuration. */ | 11 | /* BB_AUDIT GNU compatible -c, -q, and -v options in 'fancy' configuration. */ |
12 | /* http://www.opengroup.org/onlinepubs/007904975/utilities/head.html */ | 12 | /* http://www.opengroup.org/onlinepubs/007904975/utilities/head.html */ |
13 | 13 | ||
14 | #include <stdio.h> | ||
15 | #include <stdlib.h> | ||
16 | #include <limits.h> | ||
17 | #include <ctype.h> | ||
18 | #include <unistd.h> | ||
19 | #include "busybox.h" | 14 | #include "busybox.h" |
20 | 15 | ||
21 | static const char head_opts[] = | 16 | static const char head_opts[] = |
@@ -137,7 +132,7 @@ int head_main(int argc, char **argv) | |||
137 | bb_perror_msg("%s", *argv); /* Avoid multibyte problems. */ | 132 | bb_perror_msg("%s", *argv); /* Avoid multibyte problems. */ |
138 | retval = EXIT_FAILURE; | 133 | retval = EXIT_FAILURE; |
139 | } | 134 | } |
140 | bb_xferror_stdout(); | 135 | xferror_stdout(); |
141 | } | 136 | } |
142 | fmt = header_fmt_str; | 137 | fmt = header_fmt_str; |
143 | } while (*++argv); | 138 | } while (*++argv); |
diff --git a/coreutils/ln.c b/coreutils/ln.c index 54ced0b89..df183581e 100644 --- a/coreutils/ln.c +++ b/coreutils/ln.c | |||
@@ -11,10 +11,6 @@ | |||
11 | /* BB_AUDIT GNU options missing: -d, -F, -i, and -v. */ | 11 | /* BB_AUDIT GNU options missing: -d, -F, -i, and -v. */ |
12 | /* http://www.opengroup.org/onlinepubs/007904975/utilities/ln.html */ | 12 | /* http://www.opengroup.org/onlinepubs/007904975/utilities/ln.html */ |
13 | 13 | ||
14 | #include <stdio.h> | ||
15 | #include <stdlib.h> | ||
16 | #include <unistd.h> | ||
17 | #include <errno.h> | ||
18 | #include "busybox.h" | 14 | #include "busybox.h" |
19 | 15 | ||
20 | #define LN_SYMLINK 1 | 16 | #define LN_SYMLINK 1 |
@@ -45,7 +41,7 @@ int ln_main(int argc, char **argv) | |||
45 | 41 | ||
46 | if (argc == optind + 1) { | 42 | if (argc == optind + 1) { |
47 | *--argv = last; | 43 | *--argv = last; |
48 | last = bb_get_last_path_component(bb_xstrdup(last)); | 44 | last = bb_get_last_path_component(xstrdup(last)); |
49 | } | 45 | } |
50 | 46 | ||
51 | do { | 47 | do { |
@@ -55,7 +51,7 @@ int ln_main(int argc, char **argv) | |||
55 | if (is_directory(src, | 51 | if (is_directory(src, |
56 | (flag & LN_NODEREFERENCE) ^ LN_NODEREFERENCE, | 52 | (flag & LN_NODEREFERENCE) ^ LN_NODEREFERENCE, |
57 | NULL)) { | 53 | NULL)) { |
58 | src_name = bb_xstrdup(*argv); | 54 | src_name = xstrdup(*argv); |
59 | src = concat_path_file(src, bb_get_last_path_component(src_name)); | 55 | src = concat_path_file(src, bb_get_last_path_component(src_name)); |
60 | free(src_name); | 56 | free(src_name); |
61 | src_name = src; | 57 | src_name = src; |
@@ -69,7 +65,7 @@ int ln_main(int argc, char **argv) | |||
69 | 65 | ||
70 | if (flag & LN_BACKUP) { | 66 | if (flag & LN_BACKUP) { |
71 | char *backup; | 67 | char *backup; |
72 | backup = bb_xasprintf("%s%s", src, suffix); | 68 | backup = xasprintf("%s%s", src, suffix); |
73 | if (rename(src, backup) < 0 && errno != ENOENT) { | 69 | if (rename(src, backup) < 0 && errno != ENOENT) { |
74 | bb_perror_msg("%s", src); | 70 | bb_perror_msg("%s", src); |
75 | status = EXIT_FAILURE; | 71 | status = EXIT_FAILURE; |
diff --git a/coreutils/ls.c b/coreutils/ls.c index de8405dab..6b9fbbfc9 100644 --- a/coreutils/ls.c +++ b/coreutils/ls.c | |||
@@ -37,15 +37,7 @@ enum { | |||
37 | /************************************************************************/ | 37 | /************************************************************************/ |
38 | 38 | ||
39 | #include "busybox.h" | 39 | #include "busybox.h" |
40 | #include <unistd.h> | 40 | #include <getopt.h> |
41 | #include <errno.h> | ||
42 | #include <string.h> | ||
43 | #include <fcntl.h> | ||
44 | #include <signal.h> | ||
45 | #include <getopt.h> /* struct option */ | ||
46 | #include <sys/ioctl.h> | ||
47 | #include <sys/sysmacros.h> /* major() and minor() */ | ||
48 | #include <time.h> | ||
49 | 41 | ||
50 | /* what is the overall style of the listing */ | 42 | /* what is the overall style of the listing */ |
51 | #define STYLE_COLUMNS (1U<<21) /* fill columns */ | 43 | #define STYLE_COLUMNS (1U<<21) /* fill columns */ |
@@ -535,7 +527,7 @@ static struct dnode **list_dir(const char *path) | |||
535 | 527 | ||
536 | dn = NULL; | 528 | dn = NULL; |
537 | nfiles = 0; | 529 | nfiles = 0; |
538 | dir = bb_opendir(path); | 530 | dir = warn_opendir(path); |
539 | if (dir == NULL) { | 531 | if (dir == NULL) { |
540 | status = EXIT_FAILURE; | 532 | status = EXIT_FAILURE; |
541 | return (NULL); /* could not open the dir */ | 533 | return (NULL); /* could not open the dir */ |
diff --git a/coreutils/md5_sha1_sum.c b/coreutils/md5_sha1_sum.c index aea43ff8c..49766a925 100644 --- a/coreutils/md5_sha1_sum.c +++ b/coreutils/md5_sha1_sum.c | |||
@@ -6,14 +6,6 @@ | |||
6 | * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. | 6 | * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <fcntl.h> | ||
10 | #include <limits.h> | ||
11 | #include <stdio.h> | ||
12 | #include <stdint.h> | ||
13 | #include <stdlib.h> | ||
14 | #include <string.h> | ||
15 | #include <unistd.h> | ||
16 | |||
17 | #include "busybox.h" | 9 | #include "busybox.h" |
18 | 10 | ||
19 | typedef enum { HASH_SHA1, HASH_MD5 } hash_algo_t; | 11 | typedef enum { HASH_SHA1, HASH_MD5 } hash_algo_t; |
@@ -129,7 +121,7 @@ static int hash_files(int argc, char **argv, hash_algo_t hash_algo) | |||
129 | if (strcmp(file_ptr, "-") == 0) { | 121 | if (strcmp(file_ptr, "-") == 0) { |
130 | pre_computed_stream = stdin; | 122 | pre_computed_stream = stdin; |
131 | } else { | 123 | } else { |
132 | pre_computed_stream = bb_xfopen(file_ptr, "r"); | 124 | pre_computed_stream = xfopen(file_ptr, "r"); |
133 | } | 125 | } |
134 | 126 | ||
135 | while ((line = bb_get_chomped_line_from_file(pre_computed_stream)) != NULL) { | 127 | while ((line = bb_get_chomped_line_from_file(pre_computed_stream)) != NULL) { |
diff --git a/coreutils/nohup.c b/coreutils/nohup.c index 41c4b779c..86d788683 100644 --- a/coreutils/nohup.c +++ b/coreutils/nohup.c | |||
@@ -9,9 +9,6 @@ | |||
9 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 9 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <fcntl.h> | ||
13 | #include <signal.h> | ||
14 | #include <unistd.h> | ||
15 | #include "busybox.h" | 12 | #include "busybox.h" |
16 | 13 | ||
17 | int nohup_main(int argc, char *argv[]) | 14 | int nohup_main(int argc, char *argv[]) |
@@ -25,7 +22,7 @@ int nohup_main(int argc, char *argv[]) | |||
25 | 22 | ||
26 | if (argc<2) bb_show_usage(); | 23 | if (argc<2) bb_show_usage(); |
27 | 24 | ||
28 | nullfd = bb_xopen(bb_dev_null, O_WRONLY|O_APPEND); | 25 | nullfd = xopen(bb_dev_null, O_WRONLY|O_APPEND); |
29 | // If stdin is a tty, detach from it. | 26 | // If stdin is a tty, detach from it. |
30 | 27 | ||
31 | if (isatty(0)) dup2(nullfd, 0); | 28 | if (isatty(0)) dup2(nullfd, 0); |
@@ -38,7 +35,7 @@ int nohup_main(int argc, char *argv[]) | |||
38 | home = getenv("HOME"); | 35 | home = getenv("HOME"); |
39 | if (home) { | 36 | if (home) { |
40 | home = concat_path_file(home, nohupout); | 37 | home = concat_path_file(home, nohupout); |
41 | bb_xopen3(nohupout, O_CREAT|O_WRONLY|O_APPEND, S_IRUSR|S_IWUSR); | 38 | xopen3(nohupout, O_CREAT|O_WRONLY|O_APPEND, S_IRUSR|S_IWUSR); |
42 | } | 39 | } |
43 | } | 40 | } |
44 | } else dup2(nullfd, 1); | 41 | } else dup2(nullfd, 1); |
diff --git a/coreutils/sort.c b/coreutils/sort.c index 3354385a4..195e13d13 100644 --- a/coreutils/sort.c +++ b/coreutils/sort.c | |||
@@ -12,13 +12,6 @@ | |||
12 | * http://www.opengroup.org/onlinepubs/007904975/utilities/sort.html | 12 | * http://www.opengroup.org/onlinepubs/007904975/utilities/sort.html |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <ctype.h> | ||
16 | #include <math.h> | ||
17 | #include <stdio.h> | ||
18 | #include <stdlib.h> | ||
19 | #include <string.h> | ||
20 | #include <time.h> | ||
21 | #include <unistd.h> | ||
22 | #include "busybox.h" | 15 | #include "busybox.h" |
23 | 16 | ||
24 | static int global_flags; | 17 | static int global_flags; |
@@ -104,7 +97,7 @@ static char *get_key(char *str, struct sort_key *key, int flags) | |||
104 | } | 97 | } |
105 | /* Make the copy */ | 98 | /* Make the copy */ |
106 | if(end<start) end=start; | 99 | if(end<start) end=start; |
107 | str=bb_xstrndup(str+start,end-start); | 100 | str=xstrndup(str+start,end-start); |
108 | /* Handle -d */ | 101 | /* Handle -d */ |
109 | if(flags&FLAG_d) { | 102 | if(flags&FLAG_d) { |
110 | for(start=end=0;str[end];end++) | 103 | for(start=end=0;str[end];end++) |
@@ -222,7 +215,6 @@ static int compare_keys(const void *xarg, const void *yarg) | |||
222 | /* Perform fallback sort if necessary */ | 215 | /* Perform fallback sort if necessary */ |
223 | if(!retval && !(global_flags&FLAG_s)) | 216 | if(!retval && !(global_flags&FLAG_s)) |
224 | retval=strcmp(*(char **)xarg, *(char **)yarg); | 217 | retval=strcmp(*(char **)xarg, *(char **)yarg); |
225 | //dprintf(2,"reverse=%d\n",flags&FLAG_r); | ||
226 | return ((flags&FLAG_r)?-1:1)*retval; | 218 | return ((flags&FLAG_r)?-1:1)*retval; |
227 | } | 219 | } |
228 | 220 | ||
@@ -242,7 +234,7 @@ int sort_main(int argc, char **argv) | |||
242 | #ifdef CONFIG_FEATURE_SORT_BIG | 234 | #ifdef CONFIG_FEATURE_SORT_BIG |
243 | case 'o': | 235 | case 'o': |
244 | if(outfile) bb_error_msg_and_die("Too many -o."); | 236 | if(outfile) bb_error_msg_and_die("Too many -o."); |
245 | outfile=bb_xfopen(optarg,"w"); | 237 | outfile=xfopen(optarg,"w"); |
246 | break; | 238 | break; |
247 | case 't': | 239 | case 't': |
248 | if(key_separator || optarg[1]) | 240 | if(key_separator || optarg[1]) |
@@ -289,7 +281,7 @@ int sort_main(int argc, char **argv) | |||
289 | /* Open input files and read data */ | 281 | /* Open input files and read data */ |
290 | for(i=argv[optind] ? optind : optind-1;argv[i];i++) { | 282 | for(i=argv[optind] ? optind : optind-1;argv[i];i++) { |
291 | if(i<optind || (*argv[i]=='-' && !argv[i][1])) fp=stdin; | 283 | if(i<optind || (*argv[i]=='-' && !argv[i][1])) fp=stdin; |
292 | else fp=bb_xfopen(argv[i],"r"); | 284 | else fp=xfopen(argv[i],"r"); |
293 | for(;;) { | 285 | for(;;) { |
294 | line=GET_LINE(fp); | 286 | line=GET_LINE(fp); |
295 | if(!line) break; | 287 | if(!line) break; |
diff --git a/coreutils/stat.c b/coreutils/stat.c index 7e39d5ecd..8e0121849 100644 --- a/coreutils/stat.c +++ b/coreutils/stat.c | |||
@@ -12,18 +12,6 @@ | |||
12 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 12 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <stdio.h> | ||
16 | #include <stdint.h> | ||
17 | #include <sys/types.h> | ||
18 | #include <pwd.h> | ||
19 | #include <grp.h> | ||
20 | #include <sys/vfs.h> | ||
21 | #include <time.h> | ||
22 | #include <getopt.h> /* optind */ | ||
23 | #include <sys/stat.h> | ||
24 | #include <sys/statfs.h> | ||
25 | #include <sys/statvfs.h> | ||
26 | #include <string.h> | ||
27 | #include "busybox.h" | 15 | #include "busybox.h" |
28 | 16 | ||
29 | /* vars to control behavior */ | 17 | /* vars to control behavior */ |
@@ -321,7 +309,7 @@ static void print_it(char const *masterformat, char const *filename, | |||
321 | char *b; | 309 | char *b; |
322 | 310 | ||
323 | /* create a working copy of the format string */ | 311 | /* create a working copy of the format string */ |
324 | char *format = bb_xstrdup(masterformat); | 312 | char *format = xstrdup(masterformat); |
325 | 313 | ||
326 | /* Add 2 to accommodate our conversion of the stat `%s' format string | 314 | /* Add 2 to accommodate our conversion of the stat `%s' format string |
327 | * to the printf `%llu' one. */ | 315 | * to the printf `%llu' one. */ |
diff --git a/coreutils/stty.c b/coreutils/stty.c index b78368e7b..073de847b 100644 --- a/coreutils/stty.c +++ b/coreutils/stty.c | |||
@@ -21,31 +21,7 @@ | |||
21 | 21 | ||
22 | */ | 22 | */ |
23 | 23 | ||
24 | //#define TEST | ||
25 | |||
26 | #include "busybox.h" | 24 | #include "busybox.h" |
27 | #include <stddef.h> | ||
28 | #include <termios.h> | ||
29 | #include <sys/ioctl.h> | ||
30 | |||
31 | #include <sys/param.h> | ||
32 | #include <unistd.h> | ||
33 | |||
34 | #ifndef STDIN_FILENO | ||
35 | # define STDIN_FILENO 0 | ||
36 | #endif | ||
37 | |||
38 | #ifndef STDOUT_FILENO | ||
39 | # define STDOUT_FILENO 1 | ||
40 | #endif | ||
41 | |||
42 | #include <stdlib.h> | ||
43 | #include <string.h> | ||
44 | #include <assert.h> | ||
45 | #include <ctype.h> | ||
46 | #include <errno.h> | ||
47 | #include <limits.h> | ||
48 | #include <fcntl.h> | ||
49 | 25 | ||
50 | #define STREQ(a, b) (strcmp ((a), (b)) == 0) | 26 | #define STREQ(a, b) (strcmp ((a), (b)) == 0) |
51 | 27 | ||
@@ -469,11 +445,7 @@ static const struct suffix_mult stty_suffixes[] = { | |||
469 | {NULL, 0 } | 445 | {NULL, 0 } |
470 | }; | 446 | }; |
471 | 447 | ||
472 | #ifndef TEST | ||
473 | int stty_main(int argc, char **argv) | 448 | int stty_main(int argc, char **argv) |
474 | #else | ||
475 | int main(int argc, char **argv) | ||
476 | #endif | ||
477 | { | 449 | { |
478 | struct termios mode; | 450 | struct termios mode; |
479 | void (*output_func)(struct termios *); | 451 | void (*output_func)(struct termios *); |
@@ -541,7 +513,7 @@ int main(int argc, char **argv) | |||
541 | 513 | ||
542 | device_name = file_name; | 514 | device_name = file_name; |
543 | fclose(stdin); | 515 | fclose(stdin); |
544 | bb_xopen(device_name, O_RDONLY | O_NONBLOCK); | 516 | xopen(device_name, O_RDONLY | O_NONBLOCK); |
545 | if ((fdflags = fcntl(STDIN_FILENO, F_GETFL)) == -1 | 517 | if ((fdflags = fcntl(STDIN_FILENO, F_GETFL)) == -1 |
546 | || fcntl(STDIN_FILENO, F_SETFL, fdflags & ~O_NONBLOCK) < 0) | 518 | || fcntl(STDIN_FILENO, F_SETFL, fdflags & ~O_NONBLOCK) < 0) |
547 | perror_on_device("%s: couldn't reset non-blocking mode"); | 519 | perror_on_device("%s: couldn't reset non-blocking mode"); |
@@ -1299,9 +1271,3 @@ static const char *visible(unsigned int ch) | |||
1299 | *bpout = '\0'; | 1271 | *bpout = '\0'; |
1300 | return (const char *) buf; | 1272 | return (const char *) buf; |
1301 | } | 1273 | } |
1302 | |||
1303 | #ifdef TEST | ||
1304 | |||
1305 | const char *bb_applet_name = "stty"; | ||
1306 | |||
1307 | #endif | ||
diff --git a/coreutils/tee.c b/coreutils/tee.c index 30496eefa..4d0e6ff85 100644 --- a/coreutils/tee.c +++ b/coreutils/tee.c | |||
@@ -10,10 +10,6 @@ | |||
10 | /* BB_AUDIT SUSv3 compliant */ | 10 | /* BB_AUDIT SUSv3 compliant */ |
11 | /* http://www.opengroup.org/onlinepubs/007904975/utilities/tee.html */ | 11 | /* http://www.opengroup.org/onlinepubs/007904975/utilities/tee.html */ |
12 | 12 | ||
13 | #include <stdio.h> | ||
14 | #include <stdlib.h> | ||
15 | #include <signal.h> | ||
16 | #include <unistd.h> | ||
17 | #include "busybox.h" | 13 | #include "busybox.h" |
18 | 14 | ||
19 | int tee_main(int argc, char **argv) | 15 | int tee_main(int argc, char **argv) |
@@ -96,7 +92,7 @@ int tee_main(int argc, char **argv) | |||
96 | do { /* Now check for (input and) output errors. */ | 92 | do { /* Now check for (input and) output errors. */ |
97 | /* Checking ferror should be sufficient, but we may want to fclose. | 93 | /* Checking ferror should be sufficient, but we may want to fclose. |
98 | * If we do, remember not to close stdin! */ | 94 | * If we do, remember not to close stdin! */ |
99 | bb_xferror(*p, filenames[(int)(p - files)]); | 95 | xferror(*p, filenames[(int)(p - files)]); |
100 | } while (*++p); | 96 | } while (*++p); |
101 | 97 | ||
102 | bb_fflush_stdout_and_exit(retval); | 98 | bb_fflush_stdout_and_exit(retval); |
diff --git a/coreutils/uniq.c b/coreutils/uniq.c index 956c50796..26afc00f4 100644 --- a/coreutils/uniq.c +++ b/coreutils/uniq.c | |||
@@ -11,9 +11,6 @@ | |||
11 | /* http://www.opengroup.org/onlinepubs/007904975/utilities/uniq.html */ | 11 | /* http://www.opengroup.org/onlinepubs/007904975/utilities/uniq.html */ |
12 | 12 | ||
13 | #include "busybox.h" | 13 | #include "busybox.h" |
14 | #include <string.h> | ||
15 | #include <ctype.h> | ||
16 | #include <unistd.h> | ||
17 | 14 | ||
18 | static const char uniq_opts[] = "f:s:" "cdu\0\1\2\4"; | 15 | static const char uniq_opts[] = "f:s:" "cdu\0\1\2\4"; |
19 | 16 | ||
@@ -23,7 +20,7 @@ static FILE *xgetoptfile_uniq_s(char **argv, int read0write2) | |||
23 | 20 | ||
24 | if ((n = *argv) != NULL) { | 21 | if ((n = *argv) != NULL) { |
25 | if ((*n != '-') || n[1]) { | 22 | if ((*n != '-') || n[1]) { |
26 | return bb_xfopen(n, "r\0w" + read0write2); | 23 | return xfopen(n, "r\0w" + read0write2); |
27 | } | 24 | } |
28 | } | 25 | } |
29 | return (read0write2) ? stdout : stdin; | 26 | return (read0write2) ? stdout : stdin; |
@@ -100,7 +97,7 @@ int uniq_main(int argc, char **argv) | |||
100 | } | 97 | } |
101 | } while (s1); | 98 | } while (s1); |
102 | 99 | ||
103 | bb_xferror(in, input_filename); | 100 | xferror(in, input_filename); |
104 | 101 | ||
105 | bb_fflush_stdout_and_exit(EXIT_SUCCESS); | 102 | bb_fflush_stdout_and_exit(EXIT_SUCCESS); |
106 | } | 103 | } |
diff --git a/coreutils/uudecode.c b/coreutils/uudecode.c index 06b2fc1c1..6050c0af7 100644 --- a/coreutils/uudecode.c +++ b/coreutils/uudecode.c | |||
@@ -12,11 +12,6 @@ | |||
12 | */ | 12 | */ |
13 | 13 | ||
14 | 14 | ||
15 | #include <stdio.h> | ||
16 | #include <errno.h> | ||
17 | #include <getopt.h> /* optind */ | ||
18 | #include <string.h> | ||
19 | #include <stdlib.h> | ||
20 | #include "busybox.h" | 15 | #include "busybox.h" |
21 | 16 | ||
22 | static int read_stduu(FILE *src_stream, FILE *dst_stream) | 17 | static int read_stduu(FILE *src_stream, FILE *dst_stream) |
@@ -141,7 +136,7 @@ int uudecode_main(int argc, char **argv) | |||
141 | if (optind == argc) { | 136 | if (optind == argc) { |
142 | src_stream = stdin; | 137 | src_stream = stdin; |
143 | } else if (optind + 1 == argc) { | 138 | } else if (optind + 1 == argc) { |
144 | src_stream = bb_xfopen(argv[optind], "r"); | 139 | src_stream = xfopen(argv[optind], "r"); |
145 | } else { | 140 | } else { |
146 | bb_show_usage(); | 141 | bb_show_usage(); |
147 | } | 142 | } |
@@ -174,7 +169,7 @@ int uudecode_main(int argc, char **argv) | |||
174 | if (strcmp(outname, "-") == 0) { | 169 | if (strcmp(outname, "-") == 0) { |
175 | dst_stream = stdout; | 170 | dst_stream = stdout; |
176 | } else { | 171 | } else { |
177 | dst_stream = bb_xfopen(outname, "w"); | 172 | dst_stream = xfopen(outname, "w"); |
178 | chmod(outname, mode & (S_IRWXU | S_IRWXG | S_IRWXO)); | 173 | chmod(outname, mode & (S_IRWXU | S_IRWXG | S_IRWXO)); |
179 | } | 174 | } |
180 | free(line); | 175 | free(line); |
diff --git a/coreutils/uuencode.c b/coreutils/uuencode.c index fee408605..1449d9aeb 100644 --- a/coreutils/uuencode.c +++ b/coreutils/uuencode.c | |||
@@ -7,12 +7,7 @@ | |||
7 | * | 7 | * |
8 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 8 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
9 | */ | 9 | */ |
10 | #include <stdio.h> | 10 | |
11 | #include <string.h> | ||
12 | #include <stdlib.h> | ||
13 | #include <sys/types.h> | ||
14 | #include <sys/stat.h> | ||
15 | #include <unistd.h> | ||
16 | #include "busybox.h" | 11 | #include "busybox.h" |
17 | 12 | ||
18 | /* Conversion table. for base 64 */ | 13 | /* Conversion table. for base 64 */ |
@@ -92,7 +87,7 @@ int uuencode_main(int argc, char **argv) | |||
92 | 87 | ||
93 | switch (argc - optind) { | 88 | switch (argc - optind) { |
94 | case 2: | 89 | case 2: |
95 | src_stream = bb_xfopen(argv[optind], "r"); | 90 | src_stream = xfopen(argv[optind], "r"); |
96 | xstat(argv[optind], &stat_buf); | 91 | xstat(argv[optind], &stat_buf); |
97 | mode = stat_buf.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO); | 92 | mode = stat_buf.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO); |
98 | if (src_stream == stdout) { | 93 | if (src_stream == stdout) { |
@@ -128,7 +123,7 @@ int uuencode_main(int argc, char **argv) | |||
128 | } | 123 | } |
129 | bb_printf(tbl == tbl_std ? "\n`\nend\n" : "\n====\n"); | 124 | bb_printf(tbl == tbl_std ? "\n`\nend\n" : "\n====\n"); |
130 | 125 | ||
131 | bb_xferror(src_stream, "source"); /* TODO - Fix this! */ | 126 | xferror(src_stream, "source"); /* TODO - Fix this! */ |
132 | 127 | ||
133 | bb_fflush_stdout_and_exit(EXIT_SUCCESS); | 128 | bb_fflush_stdout_and_exit(EXIT_SUCCESS); |
134 | } | 129 | } |
diff --git a/coreutils/watch.c b/coreutils/watch.c index b783d34de..c8b16b908 100644 --- a/coreutils/watch.c +++ b/coreutils/watch.c | |||
@@ -16,14 +16,6 @@ | |||
16 | * reduced size. | 16 | * reduced size. |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <stdio.h> | ||
20 | #include <stdlib.h> | ||
21 | #include <string.h> | ||
22 | #include <limits.h> | ||
23 | #include <time.h> | ||
24 | #include <assert.h> | ||
25 | #include <unistd.h> | ||
26 | #include <sys/wait.h> | ||
27 | #include "busybox.h" | 19 | #include "busybox.h" |
28 | 20 | ||
29 | int watch_main(int argc, char **argv) | 21 | int watch_main(int argc, char **argv) |
@@ -62,7 +54,7 @@ int watch_main(int argc, char **argv) | |||
62 | 54 | ||
63 | printf("\033[H\033[J%s %s\n", header, thyme); | 55 | printf("\033[H\033[J%s %s\n", header, thyme); |
64 | 56 | ||
65 | waitpid(bb_xspawn(watched_argv),0,0); | 57 | waitpid(xspawn(watched_argv),0,0); |
66 | sleep(period); | 58 | sleep(period); |
67 | } | 59 | } |
68 | } | 60 | } |
diff --git a/debianutils/start_stop_daemon.c b/debianutils/start_stop_daemon.c index 733fb4112..6f8fb2dc8 100644 --- a/debianutils/start_stop_daemon.c +++ b/debianutils/start_stop_daemon.c | |||
@@ -3,31 +3,22 @@ | |||
3 | * Mini start-stop-daemon implementation(s) for busybox | 3 | * Mini start-stop-daemon implementation(s) for busybox |
4 | * | 4 | * |
5 | * Written by Marek Michalkiewicz <marekm@i17linuxb.ists.pwr.wroc.pl>, | 5 | * Written by Marek Michalkiewicz <marekm@i17linuxb.ists.pwr.wroc.pl>, |
6 | * public domain. | ||
7 | * Adapted for busybox David Kimdon <dwhedon@gordian.com> | 6 | * Adapted for busybox David Kimdon <dwhedon@gordian.com> |
7 | * | ||
8 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | ||
8 | */ | 9 | */ |
9 | 10 | ||
10 | #include "busybox.h" | 11 | #include "busybox.h" |
11 | #include <stdio.h> | 12 | #include <getopt.h> |
12 | #include <stdlib.h> | ||
13 | #include <string.h> | ||
14 | #include <stdarg.h> | ||
15 | #include <signal.h> | ||
16 | #include <errno.h> | ||
17 | #include <sys/stat.h> | ||
18 | #include <dirent.h> | ||
19 | #include <unistd.h> | ||
20 | #include <getopt.h> /* struct option */ | ||
21 | #include "pwd_.h" | ||
22 | 13 | ||
23 | static int signal_nr = 15; | 14 | static int signal_nr = 15; |
24 | static int user_id = -1; | 15 | static int user_id = -1; |
25 | static int quiet; | 16 | static int quiet; |
26 | static char *userspec = NULL; | 17 | static char *userspec; |
27 | static char *chuid = NULL; | 18 | static char *chuid; |
28 | static char *cmdname = NULL; | 19 | static char *cmdname; |
29 | static char *execname = NULL; | 20 | static char *execname; |
30 | static char *pidfile = NULL; | 21 | static char *pidfile; |
31 | 22 | ||
32 | struct pid_list { | 23 | struct pid_list { |
33 | struct pid_list *next; | 24 | struct pid_list *next; |
@@ -136,7 +127,7 @@ static void do_procinit(void) | |||
136 | return; | 127 | return; |
137 | } | 128 | } |
138 | 129 | ||
139 | procdir = bb_xopendir("/proc"); | 130 | procdir = xopendir("/proc"); |
140 | 131 | ||
141 | foundany = 0; | 132 | foundany = 0; |
142 | while ((entry = readdir(procdir)) != NULL) { | 133 | while ((entry = readdir(procdir)) != NULL) { |
@@ -292,12 +283,12 @@ int start_stop_daemon_main(int argc, char **argv) | |||
292 | } | 283 | } |
293 | *--argv = startas; | 284 | *--argv = startas; |
294 | if (opt & SSD_OPT_BACKGROUND) { | 285 | if (opt & SSD_OPT_BACKGROUND) { |
295 | bb_xdaemon(0, 0); | 286 | xdaemon(0, 0); |
296 | setsid(); | 287 | setsid(); |
297 | } | 288 | } |
298 | if (opt & SSD_OPT_MAKEPID) { | 289 | if (opt & SSD_OPT_MAKEPID) { |
299 | /* user wants _us_ to make the pidfile */ | 290 | /* user wants _us_ to make the pidfile */ |
300 | FILE *pidf = bb_xfopen(pidfile, "w"); | 291 | FILE *pidf = xfopen(pidfile, "w"); |
301 | 292 | ||
302 | pid_t pidt = getpid(); | 293 | pid_t pidt = getpid(); |
303 | fprintf(pidf, "%d\n", pidt); | 294 | fprintf(pidf, "%d\n", pidt); |
diff --git a/e2fsprogs/e2p/feature.c b/e2fsprogs/e2p/feature.c index 602c2ff02..b45754f97 100644 --- a/e2fsprogs/e2p/feature.c +++ b/e2fsprogs/e2p/feature.c | |||
@@ -155,7 +155,7 @@ int e2p_edit_feature(const char *str, __u32 *compat_array, __u32 *ok_array) | |||
155 | unsigned int mask; | 155 | unsigned int mask; |
156 | int compat_type; | 156 | int compat_type; |
157 | 157 | ||
158 | buf = bb_xstrdup(str); | 158 | buf = xstrdup(str); |
159 | cp = buf; | 159 | cp = buf; |
160 | while (cp && *cp) { | 160 | while (cp && *cp) { |
161 | neg = 0; | 161 | neg = 0; |
diff --git a/e2fsprogs/e2p/mntopts.c b/e2fsprogs/e2p/mntopts.c index 1ec3402f7..17c26c480 100644 --- a/e2fsprogs/e2p/mntopts.c +++ b/e2fsprogs/e2p/mntopts.c | |||
@@ -100,7 +100,7 @@ int e2p_edit_mntopts(const char *str, __u32 *mntopts, __u32 ok) | |||
100 | int neg; | 100 | int neg; |
101 | unsigned int mask; | 101 | unsigned int mask; |
102 | 102 | ||
103 | buf = bb_xstrdup(str); | 103 | buf = xstrdup(str); |
104 | cp = buf; | 104 | cp = buf; |
105 | while (cp && *cp) { | 105 | while (cp && *cp) { |
106 | neg = 0; | 106 | neg = 0; |
diff --git a/e2fsprogs/e2p/ostype.c b/e2fsprogs/e2p/ostype.c index d55f98bb2..0e111d408 100644 --- a/e2fsprogs/e2p/ostype.c +++ b/e2fsprogs/e2p/ostype.c | |||
@@ -33,7 +33,7 @@ char *e2p_os2string(int os_type) | |||
33 | else | 33 | else |
34 | os = "(unknown os)"; | 34 | os = "(unknown os)"; |
35 | 35 | ||
36 | ret = bb_xstrdup(os); | 36 | ret = xstrdup(os); |
37 | return ret; | 37 | return ret; |
38 | } | 38 | } |
39 | 39 | ||
diff --git a/e2fsprogs/fsck.c b/e2fsprogs/fsck.c index 3290d00ef..afb6f0c7d 100644 --- a/e2fsprogs/fsck.c +++ b/e2fsprogs/fsck.c | |||
@@ -129,7 +129,7 @@ static char *base_device(const char *device) | |||
129 | int len; | 129 | int len; |
130 | #endif | 130 | #endif |
131 | 131 | ||
132 | cp = str = bb_xstrdup(device); | 132 | cp = str = xstrdup(device); |
133 | 133 | ||
134 | /* Skip over /dev/; if it's not present, give up. */ | 134 | /* Skip over /dev/; if it's not present, give up. */ |
135 | if (strncmp(cp, "/dev/", 5) != 0) | 135 | if (strncmp(cp, "/dev/", 5) != 0) |
@@ -544,7 +544,7 @@ static char *find_fsck(char *type) | |||
544 | tpl = (strncmp(type, "fsck.", 5) ? "%s/fsck.%s" : "%s/%s"); | 544 | tpl = (strncmp(type, "fsck.", 5) ? "%s/fsck.%s" : "%s/%s"); |
545 | 545 | ||
546 | for(s = strtok(p, ":"); s; s = strtok(NULL, ":")) { | 546 | for(s = strtok(p, ":"); s; s = strtok(NULL, ":")) { |
547 | s = bb_xasprintf(tpl, s, type); | 547 | s = xasprintf(tpl, s, type); |
548 | if (stat(s, &st) == 0) break; | 548 | if (stat(s, &st) == 0) break; |
549 | free(s); | 549 | free(s); |
550 | } | 550 | } |
@@ -583,7 +583,7 @@ static int execute(const char *type, const char *device, const char *mntpt, | |||
583 | return ENOMEM; | 583 | return ENOMEM; |
584 | memset(inst, 0, sizeof(struct fsck_instance)); | 584 | memset(inst, 0, sizeof(struct fsck_instance)); |
585 | 585 | ||
586 | prog = bb_xasprintf("fsck.%s", type); | 586 | prog = xasprintf("fsck.%s", type); |
587 | argv[0] = prog; | 587 | argv[0] = prog; |
588 | argc = 1; | 588 | argc = 1; |
589 | 589 | ||
diff --git a/e2fsprogs/mke2fs.c b/e2fsprogs/mke2fs.c index f1e40832d..ea6afb92c 100644 --- a/e2fsprogs/mke2fs.c +++ b/e2fsprogs/mke2fs.c | |||
@@ -226,7 +226,7 @@ static void read_bb_file(ext2_filsys fs, badblocks_list *bb_list, | |||
226 | FILE *f; | 226 | FILE *f; |
227 | errcode_t retval; | 227 | errcode_t retval; |
228 | 228 | ||
229 | f = bb_xfopen(bad_blocks_file, "r"); | 229 | f = xfopen(bad_blocks_file, "r"); |
230 | retval = ext2fs_read_bb_FILE(fs, f, bb_list, invalid_block); | 230 | retval = ext2fs_read_bb_FILE(fs, f, bb_list, invalid_block); |
231 | fclose (f); | 231 | fclose (f); |
232 | mke2fs_error_msg_and_die(retval, "read bad blocks from list"); | 232 | mke2fs_error_msg_and_die(retval, "read bad blocks from list"); |
@@ -692,7 +692,7 @@ static void parse_extended_opts(struct ext2_super_block *sb_param, | |||
692 | char *buf, *token, *next, *p, *arg; | 692 | char *buf, *token, *next, *p, *arg; |
693 | int r_usage = 0; | 693 | int r_usage = 0; |
694 | 694 | ||
695 | buf = bb_xstrdup(opts); | 695 | buf = xstrdup(opts); |
696 | for (token = buf; token && *token; token = next) { | 696 | for (token = buf; token && *token; token = next) { |
697 | p = strchr(token, ','); | 697 | p = strchr(token, ','); |
698 | next = 0; | 698 | next = 0; |
diff --git a/e2fsprogs/util.c b/e2fsprogs/util.c index 6b72d0e0c..113ef9c8f 100644 --- a/e2fsprogs/util.c +++ b/e2fsprogs/util.c | |||
@@ -111,7 +111,7 @@ void parse_journal_opts(char **journal_device, int *journal_flags, | |||
111 | { | 111 | { |
112 | char *buf, *token, *next, *p, *arg; | 112 | char *buf, *token, *next, *p, *arg; |
113 | int journal_usage = 0; | 113 | int journal_usage = 0; |
114 | buf = bb_xstrdup(opts); | 114 | buf = xstrdup(opts); |
115 | for (token = buf; token && *token; token = next) { | 115 | for (token = buf; token && *token; token = next) { |
116 | p = strchr(token, ','); | 116 | p = strchr(token, ','); |
117 | next = 0; | 117 | next = 0; |
@@ -264,7 +264,7 @@ char *e2fs_set_sbin_path(void) | |||
264 | /* Update our PATH to include /sbin */ | 264 | /* Update our PATH to include /sbin */ |
265 | #define PATH_SET "/sbin" | 265 | #define PATH_SET "/sbin" |
266 | if (oldpath) | 266 | if (oldpath) |
267 | oldpath = bb_xasprintf("%s:%s", PATH_SET, oldpath); | 267 | oldpath = xasprintf("%s:%s", PATH_SET, oldpath); |
268 | else | 268 | else |
269 | oldpath = PATH_SET; | 269 | oldpath = PATH_SET; |
270 | putenv (oldpath); | 270 | putenv (oldpath); |
diff --git a/editors/awk.c b/editors/awk.c index 16c871f8c..5d43e1d9e 100644 --- a/editors/awk.c +++ b/editors/awk.c | |||
@@ -7,19 +7,9 @@ | |||
7 | * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. | 7 | * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <stdio.h> | ||
11 | #include <stdlib.h> | ||
12 | #include <unistd.h> | ||
13 | #include <errno.h> | ||
14 | #include <string.h> | ||
15 | #include <strings.h> | ||
16 | #include <time.h> | ||
17 | #include <math.h> | ||
18 | #include <ctype.h> | ||
19 | #include <getopt.h> | ||
20 | |||
21 | #include "xregex.h" | ||
22 | #include "busybox.h" | 10 | #include "busybox.h" |
11 | #include "xregex.h" | ||
12 | #include <math.h> | ||
23 | 13 | ||
24 | 14 | ||
25 | #define MAXVARFMT 240 | 15 | #define MAXVARFMT 240 |
@@ -610,7 +600,7 @@ static inline int isalnum_(int c) | |||
610 | 600 | ||
611 | static FILE *afopen(const char *path, const char *mode) | 601 | static FILE *afopen(const char *path, const char *mode) |
612 | { | 602 | { |
613 | return (*path == '-' && *(path+1) == '\0') ? stdin : bb_xfopen(path, mode); | 603 | return (*path == '-' && *(path+1) == '\0') ? stdin : xfopen(path, mode); |
614 | } | 604 | } |
615 | 605 | ||
616 | /* -------- working with variables (set/get/copy/etc) -------- */ | 606 | /* -------- working with variables (set/get/copy/etc) -------- */ |
@@ -672,7 +662,7 @@ static var *setvar_p(var *v, char *value) | |||
672 | /* same as setvar_p but make a copy of string */ | 662 | /* same as setvar_p but make a copy of string */ |
673 | static var *setvar_s(var *v, const char *value) | 663 | static var *setvar_s(var *v, const char *value) |
674 | { | 664 | { |
675 | return setvar_p(v, (value && *value) ? bb_xstrdup(value) : NULL); | 665 | return setvar_p(v, (value && *value) ? xstrdup(value) : NULL); |
676 | } | 666 | } |
677 | 667 | ||
678 | /* same as setvar_s but set USER flag */ | 668 | /* same as setvar_s but set USER flag */ |
@@ -709,7 +699,7 @@ static char *getvar_s(var *v) | |||
709 | /* if v is numeric and has no cached string, convert it to string */ | 699 | /* if v is numeric and has no cached string, convert it to string */ |
710 | if ((v->type & (VF_NUMBER | VF_CACHED)) == VF_NUMBER) { | 700 | if ((v->type & (VF_NUMBER | VF_CACHED)) == VF_NUMBER) { |
711 | fmt_num(buf, MAXVARFMT, getvar_s(V[CONVFMT]), v->number, TRUE); | 701 | fmt_num(buf, MAXVARFMT, getvar_s(V[CONVFMT]), v->number, TRUE); |
712 | v->string = bb_xstrdup(buf); | 702 | v->string = xstrdup(buf); |
713 | v->type |= VF_CACHED; | 703 | v->type |= VF_CACHED; |
714 | } | 704 | } |
715 | return (v->string == NULL) ? "" : v->string; | 705 | return (v->string == NULL) ? "" : v->string; |
@@ -744,7 +734,7 @@ static var *copyvar(var *dest, const var *src) | |||
744 | dest->type |= (src->type & ~VF_DONTTOUCH); | 734 | dest->type |= (src->type & ~VF_DONTTOUCH); |
745 | dest->number = src->number; | 735 | dest->number = src->number; |
746 | if (src->string) | 736 | if (src->string) |
747 | dest->string = bb_xstrdup(src->string); | 737 | dest->string = xstrdup(src->string); |
748 | } | 738 | } |
749 | handle_special(dest); | 739 | handle_special(dest); |
750 | return dest; | 740 | return dest; |
@@ -1144,7 +1134,7 @@ static node *chain_node(uint32_t info) | |||
1144 | if (seq->programname != programname) { | 1134 | if (seq->programname != programname) { |
1145 | seq->programname = programname; | 1135 | seq->programname = programname; |
1146 | n = chain_node(OC_NEWSOURCE); | 1136 | n = chain_node(OC_NEWSOURCE); |
1147 | n->l.s = bb_xstrdup(programname); | 1137 | n->l.s = xstrdup(programname); |
1148 | } | 1138 | } |
1149 | 1139 | ||
1150 | n = seq->last; | 1140 | n = seq->last; |
@@ -1433,7 +1423,7 @@ static int awk_split(char *s, node *spl, char **slist) | |||
1433 | regmatch_t pmatch[2]; | 1423 | regmatch_t pmatch[2]; |
1434 | 1424 | ||
1435 | /* in worst case, each char would be a separate field */ | 1425 | /* in worst case, each char would be a separate field */ |
1436 | *slist = s1 = bb_xstrndup(s, strlen(s) * 2 + 3); | 1426 | *slist = s1 = xstrndup(s, strlen(s) * 2 + 3); |
1437 | 1427 | ||
1438 | c[0] = c[1] = (char)spl->info; | 1428 | c[0] = c[1] = (char)spl->info; |
1439 | c[2] = c[3] = '\0'; | 1429 | c[2] = c[3] = '\0'; |
@@ -1747,7 +1737,7 @@ static char *awk_printf(node *n) | |||
1747 | var *v, *arg; | 1737 | var *v, *arg; |
1748 | 1738 | ||
1749 | v = nvalloc(1); | 1739 | v = nvalloc(1); |
1750 | fmt = f = bb_xstrdup(getvar_s(evaluate(nextarg(&n), v))); | 1740 | fmt = f = xstrdup(getvar_s(evaluate(nextarg(&n), v))); |
1751 | 1741 | ||
1752 | i = 0; | 1742 | i = 0; |
1753 | while (*f) { | 1743 | while (*f) { |
@@ -1941,7 +1931,7 @@ static var *exec_builtin(node *op, var *res) | |||
1941 | case B_up: | 1931 | case B_up: |
1942 | to_xxx = toupper; | 1932 | to_xxx = toupper; |
1943 | lo_cont: | 1933 | lo_cont: |
1944 | s1 = s = bb_xstrdup(as[0]); | 1934 | s1 = s = xstrdup(as[0]); |
1945 | while (*s1) { | 1935 | while (*s1) { |
1946 | *s1 = (*to_xxx)(*s1); | 1936 | *s1 = (*to_xxx)(*s1); |
1947 | s1++; | 1937 | s1++; |
@@ -2118,7 +2108,7 @@ static var *evaluate(node *op, var *res) | |||
2118 | bb_perror_msg_and_die("popen"); | 2108 | bb_perror_msg_and_die("popen"); |
2119 | X.rsm->is_pipe = 1; | 2109 | X.rsm->is_pipe = 1; |
2120 | } else { | 2110 | } else { |
2121 | X.rsm->F = bb_xfopen(R.s, opn=='w' ? "w" : "a"); | 2111 | X.rsm->F = xfopen(R.s, opn=='w' ? "w" : "a"); |
2122 | } | 2112 | } |
2123 | } | 2113 | } |
2124 | X.F = X.rsm->F; | 2114 | X.F = X.rsm->F; |
@@ -2272,7 +2262,7 @@ re_cont: | |||
2272 | X.rsm->F = popen(L.s, "r"); | 2262 | X.rsm->F = popen(L.s, "r"); |
2273 | X.rsm->is_pipe = TRUE; | 2263 | X.rsm->is_pipe = TRUE; |
2274 | } else { | 2264 | } else { |
2275 | X.rsm->F = fopen(L.s, "r"); /* not bb_xfopen! */ | 2265 | X.rsm->F = fopen(L.s, "r"); /* not xfopen! */ |
2276 | } | 2266 | } |
2277 | } | 2267 | } |
2278 | } else { | 2268 | } else { |
@@ -2564,7 +2554,7 @@ static int is_assignment(const char *expr) | |||
2564 | { | 2554 | { |
2565 | char *exprc, *s, *s0, *s1; | 2555 | char *exprc, *s, *s0, *s1; |
2566 | 2556 | ||
2567 | exprc = bb_xstrdup(expr); | 2557 | exprc = xstrdup(expr); |
2568 | if (!isalnum_(*exprc) || (s = strchr(exprc, '=')) == NULL) { | 2558 | if (!isalnum_(*exprc) || (s = strchr(exprc, '=')) == NULL) { |
2569 | free(exprc); | 2559 | free(exprc); |
2570 | return FALSE; | 2560 | return FALSE; |
@@ -2659,7 +2649,7 @@ int awk_main(int argc, char **argv) | |||
2659 | } | 2649 | } |
2660 | 2650 | ||
2661 | for (envp=environ; *envp; envp++) { | 2651 | for (envp=environ; *envp; envp++) { |
2662 | s = bb_xstrdup(*envp); | 2652 | s = xstrdup(*envp); |
2663 | s1 = strchr(s, '='); | 2653 | s1 = strchr(s, '='); |
2664 | if (!s1) { | 2654 | if (!s1) { |
2665 | goto keep_going; | 2655 | goto keep_going; |
diff --git a/editors/patch.c b/editors/patch.c index 337d1bbad..a710d8224 100644 --- a/editors/patch.c +++ b/editors/patch.c | |||
@@ -67,7 +67,7 @@ static char *extract_filename(char *line, int patch_level) | |||
67 | filename_start_ptr = temp + 1; | 67 | filename_start_ptr = temp + 1; |
68 | } | 68 | } |
69 | 69 | ||
70 | return(bb_xstrdup(filename_start_ptr)); | 70 | return(xstrdup(filename_start_ptr)); |
71 | } | 71 | } |
72 | 72 | ||
73 | static int file_doesnt_exist(const char *filename) | 73 | static int file_doesnt_exist(const char *filename) |
@@ -89,7 +89,7 @@ int patch_main(int argc, char **argv) | |||
89 | if (ret & 1) | 89 | if (ret & 1) |
90 | patch_level = bb_xgetlarg(p, 10, -1, USHRT_MAX); | 90 | patch_level = bb_xgetlarg(p, 10, -1, USHRT_MAX); |
91 | if (ret & 2) { | 91 | if (ret & 2) { |
92 | patch_file = bb_xfopen(i, "r"); | 92 | patch_file = xfopen(i, "r"); |
93 | } else { | 93 | } else { |
94 | patch_file = stdin; | 94 | patch_file = stdin; |
95 | } | 95 | } |
@@ -140,7 +140,7 @@ int patch_main(int argc, char **argv) | |||
140 | bb_make_directory(new_filename, -1, FILEUTILS_RECUR); | 140 | bb_make_directory(new_filename, -1, FILEUTILS_RECUR); |
141 | *line_ptr = '/'; | 141 | *line_ptr = '/'; |
142 | } | 142 | } |
143 | dst_stream = bb_xfopen(new_filename, "w+"); | 143 | dst_stream = xfopen(new_filename, "w+"); |
144 | backup_filename = NULL; | 144 | backup_filename = NULL; |
145 | } else { | 145 | } else { |
146 | backup_filename = xmalloc(strlen(new_filename) + 6); | 146 | backup_filename = xmalloc(strlen(new_filename) + 6); |
@@ -150,16 +150,16 @@ int patch_main(int argc, char **argv) | |||
150 | bb_perror_msg_and_die("Couldnt create file %s", | 150 | bb_perror_msg_and_die("Couldnt create file %s", |
151 | backup_filename); | 151 | backup_filename); |
152 | } | 152 | } |
153 | dst_stream = bb_xfopen(new_filename, "w"); | 153 | dst_stream = xfopen(new_filename, "w"); |
154 | } | 154 | } |
155 | 155 | ||
156 | if ((backup_filename == NULL) || file_doesnt_exist(original_filename)) { | 156 | if ((backup_filename == NULL) || file_doesnt_exist(original_filename)) { |
157 | src_stream = NULL; | 157 | src_stream = NULL; |
158 | } else { | 158 | } else { |
159 | if (strcmp(original_filename, new_filename) == 0) { | 159 | if (strcmp(original_filename, new_filename) == 0) { |
160 | src_stream = bb_xfopen(backup_filename, "r"); | 160 | src_stream = xfopen(backup_filename, "r"); |
161 | } else { | 161 | } else { |
162 | src_stream = bb_xfopen(original_filename, "r"); | 162 | src_stream = xfopen(original_filename, "r"); |
163 | } | 163 | } |
164 | } | 164 | } |
165 | 165 | ||
diff --git a/editors/sed.c b/editors/sed.c index 89b8dd72c..d5cf3f219 100644 --- a/editors/sed.c +++ b/editors/sed.c | |||
@@ -132,7 +132,7 @@ void sed_free_and_close_stuff(void) | |||
132 | sed_cmd_t *sed_cmd_next = sed_cmd->next; | 132 | sed_cmd_t *sed_cmd_next = sed_cmd->next; |
133 | 133 | ||
134 | if(sed_cmd->file) | 134 | if(sed_cmd->file) |
135 | bb_xprint_and_close_file(sed_cmd->file); | 135 | xprint_and_close_file(sed_cmd->file); |
136 | 136 | ||
137 | if (sed_cmd->beg_match) { | 137 | if (sed_cmd->beg_match) { |
138 | regfree(sed_cmd->beg_match); | 138 | regfree(sed_cmd->beg_match); |
@@ -300,7 +300,7 @@ static int parse_file_cmd(sed_cmd_t *sed_cmd, char *filecmdstr, char **retval) | |||
300 | /* If lines glued together, put backslash back. */ | 300 | /* If lines glued together, put backslash back. */ |
301 | if(filecmdstr[idx]=='\n') hack=1; | 301 | if(filecmdstr[idx]=='\n') hack=1; |
302 | if(idx==start) bb_error_msg_and_die("Empty filename"); | 302 | if(idx==start) bb_error_msg_and_die("Empty filename"); |
303 | *retval = bb_xstrndup(filecmdstr+start, idx-start+hack+1); | 303 | *retval = xstrndup(filecmdstr+start, idx-start+hack+1); |
304 | if(hack) *(idx+*retval)='\\'; | 304 | if(hack) *(idx+*retval)='\\'; |
305 | 305 | ||
306 | return idx; | 306 | return idx; |
@@ -406,7 +406,7 @@ static char *parse_cmd_args(sed_cmd_t *sed_cmd, char *cmdstr) | |||
406 | } else if(isspace(*cmdstr)) cmdstr++; | 406 | } else if(isspace(*cmdstr)) cmdstr++; |
407 | else break; | 407 | else break; |
408 | } | 408 | } |
409 | sed_cmd->string = bb_xstrdup(cmdstr); | 409 | sed_cmd->string = xstrdup(cmdstr); |
410 | parse_escapes(sed_cmd->string,sed_cmd->string,strlen(cmdstr),0,0); | 410 | parse_escapes(sed_cmd->string,sed_cmd->string,strlen(cmdstr),0,0); |
411 | cmdstr += strlen(cmdstr); | 411 | cmdstr += strlen(cmdstr); |
412 | /* handle file cmds: (r)ead */ | 412 | /* handle file cmds: (r)ead */ |
@@ -415,7 +415,7 @@ static char *parse_cmd_args(sed_cmd_t *sed_cmd, char *cmdstr) | |||
415 | bb_error_msg_and_die("Command only uses one address"); | 415 | bb_error_msg_and_die("Command only uses one address"); |
416 | cmdstr += parse_file_cmd(sed_cmd, cmdstr, &sed_cmd->string); | 416 | cmdstr += parse_file_cmd(sed_cmd, cmdstr, &sed_cmd->string); |
417 | if(sed_cmd->cmd=='w') | 417 | if(sed_cmd->cmd=='w') |
418 | sed_cmd->file=bb_xfopen(sed_cmd->string,"w"); | 418 | sed_cmd->file=xfopen(sed_cmd->string,"w"); |
419 | /* handle branch commands */ | 419 | /* handle branch commands */ |
420 | } else if (strchr(":btT", sed_cmd->cmd)) { | 420 | } else if (strchr(":btT", sed_cmd->cmd)) { |
421 | int length; | 421 | int length; |
@@ -423,7 +423,7 @@ static char *parse_cmd_args(sed_cmd_t *sed_cmd, char *cmdstr) | |||
423 | while(isspace(*cmdstr)) cmdstr++; | 423 | while(isspace(*cmdstr)) cmdstr++; |
424 | length = strcspn(cmdstr, semicolon_whitespace); | 424 | length = strcspn(cmdstr, semicolon_whitespace); |
425 | if (length) { | 425 | if (length) { |
426 | sed_cmd->string = bb_xstrndup(cmdstr, length); | 426 | sed_cmd->string = xstrndup(cmdstr, length); |
427 | cmdstr += length; | 427 | cmdstr += length; |
428 | } | 428 | } |
429 | } | 429 | } |
@@ -466,7 +466,7 @@ static void add_cmd(char *cmdstr) | |||
466 | 466 | ||
467 | /* Append this line to any unfinished line from last time. */ | 467 | /* Append this line to any unfinished line from last time. */ |
468 | if (bbg.add_cmd_line) { | 468 | if (bbg.add_cmd_line) { |
469 | cmdstr = bb_xasprintf("%s\n%s", bbg.add_cmd_line, cmdstr); | 469 | cmdstr = xasprintf("%s\n%s", bbg.add_cmd_line, cmdstr); |
470 | free(bbg.add_cmd_line); | 470 | free(bbg.add_cmd_line); |
471 | bbg.add_cmd_line = cmdstr; | 471 | bbg.add_cmd_line = cmdstr; |
472 | } | 472 | } |
@@ -474,7 +474,7 @@ static void add_cmd(char *cmdstr) | |||
474 | /* If this line ends with backslash, request next line. */ | 474 | /* If this line ends with backslash, request next line. */ |
475 | temp=strlen(cmdstr); | 475 | temp=strlen(cmdstr); |
476 | if(temp && cmdstr[temp-1]=='\\') { | 476 | if(temp && cmdstr[temp-1]=='\\') { |
477 | if (!bbg.add_cmd_line) bbg.add_cmd_line = bb_xstrdup(cmdstr); | 477 | if (!bbg.add_cmd_line) bbg.add_cmd_line = xstrdup(cmdstr); |
478 | bbg.add_cmd_line[temp-1] = 0; | 478 | bbg.add_cmd_line[temp-1] = 0; |
479 | return; | 479 | return; |
480 | } | 480 | } |
@@ -671,7 +671,7 @@ static sed_cmd_t *branch_to(char *label) | |||
671 | 671 | ||
672 | static void append(char *s) | 672 | static void append(char *s) |
673 | { | 673 | { |
674 | llist_add_to_end(&bbg.append_head, bb_xstrdup(s)); | 674 | llist_add_to_end(&bbg.append_head, xstrdup(s)); |
675 | } | 675 | } |
676 | 676 | ||
677 | static void flush_append(void) | 677 | static void flush_append(void) |
@@ -852,7 +852,7 @@ restart: | |||
852 | char *tmp = strchr(pattern_space,'\n'); | 852 | char *tmp = strchr(pattern_space,'\n'); |
853 | 853 | ||
854 | if(tmp) { | 854 | if(tmp) { |
855 | tmp=bb_xstrdup(tmp+1); | 855 | tmp=xstrdup(tmp+1); |
856 | free(pattern_space); | 856 | free(pattern_space); |
857 | pattern_space=tmp; | 857 | pattern_space=tmp; |
858 | goto restart; | 858 | goto restart; |
@@ -907,7 +907,7 @@ restart: | |||
907 | while ((line = bb_get_chomped_line_from_file(rfile)) | 907 | while ((line = bb_get_chomped_line_from_file(rfile)) |
908 | != NULL) | 908 | != NULL) |
909 | append(line); | 909 | append(line); |
910 | bb_xprint_and_close_file(rfile); | 910 | xprint_and_close_file(rfile); |
911 | } | 911 | } |
912 | 912 | ||
913 | break; | 913 | break; |
@@ -996,7 +996,7 @@ restart: | |||
996 | } | 996 | } |
997 | case 'g': /* Replace pattern space with hold space */ | 997 | case 'g': /* Replace pattern space with hold space */ |
998 | free(pattern_space); | 998 | free(pattern_space); |
999 | pattern_space = bb_xstrdup(bbg.hold_space ? bbg.hold_space : ""); | 999 | pattern_space = xstrdup(bbg.hold_space ? bbg.hold_space : ""); |
1000 | break; | 1000 | break; |
1001 | case 'G': /* Append newline and hold space to pattern space */ | 1001 | case 'G': /* Append newline and hold space to pattern space */ |
1002 | { | 1002 | { |
@@ -1019,7 +1019,7 @@ restart: | |||
1019 | } | 1019 | } |
1020 | case 'h': /* Replace hold space with pattern space */ | 1020 | case 'h': /* Replace hold space with pattern space */ |
1021 | free(bbg.hold_space); | 1021 | free(bbg.hold_space); |
1022 | bbg.hold_space = bb_xstrdup(pattern_space); | 1022 | bbg.hold_space = xstrdup(pattern_space); |
1023 | break; | 1023 | break; |
1024 | case 'H': /* Append newline and pattern space to hold space */ | 1024 | case 'H': /* Append newline and pattern space to hold space */ |
1025 | { | 1025 | { |
@@ -1072,7 +1072,7 @@ discard_line: | |||
1072 | static void add_cmd_block(char *cmdstr) | 1072 | static void add_cmd_block(char *cmdstr) |
1073 | { | 1073 | { |
1074 | int go=1; | 1074 | int go=1; |
1075 | char *temp=bb_xstrdup(cmdstr),*temp2=temp; | 1075 | char *temp=xstrdup(cmdstr),*temp2=temp; |
1076 | 1076 | ||
1077 | while(go) { | 1077 | while(go) { |
1078 | int len=strcspn(temp2,"\n"); | 1078 | int len=strcspn(temp2,"\n"); |
@@ -1121,14 +1121,14 @@ int sed_main(int argc, char **argv) | |||
1121 | FILE *cmdfile; | 1121 | FILE *cmdfile; |
1122 | char *line; | 1122 | char *line; |
1123 | 1123 | ||
1124 | cmdfile = bb_xfopen(optarg, "r"); | 1124 | cmdfile = xfopen(optarg, "r"); |
1125 | 1125 | ||
1126 | while ((line = bb_get_chomped_line_from_file(cmdfile)) != NULL) { | 1126 | while ((line = bb_get_chomped_line_from_file(cmdfile)) != NULL) { |
1127 | add_cmd(line); | 1127 | add_cmd(line); |
1128 | getpat=0; | 1128 | getpat=0; |
1129 | free(line); | 1129 | free(line); |
1130 | } | 1130 | } |
1131 | bb_xprint_and_close_file(cmdfile); | 1131 | xprint_and_close_file(cmdfile); |
1132 | 1132 | ||
1133 | break; | 1133 | break; |
1134 | } | 1134 | } |
@@ -1172,7 +1172,7 @@ int sed_main(int argc, char **argv) | |||
1172 | struct stat statbuf; | 1172 | struct stat statbuf; |
1173 | int nonstdoutfd; | 1173 | int nonstdoutfd; |
1174 | 1174 | ||
1175 | bbg.outname=bb_xstrndup(argv[i],strlen(argv[i])+6); | 1175 | bbg.outname=xstrndup(argv[i],strlen(argv[i])+6); |
1176 | strcat(bbg.outname,"XXXXXX"); | 1176 | strcat(bbg.outname,"XXXXXX"); |
1177 | if(-1==(nonstdoutfd=mkstemp(bbg.outname))) | 1177 | if(-1==(nonstdoutfd=mkstemp(bbg.outname))) |
1178 | bb_error_msg_and_die("no temp file"); | 1178 | bb_error_msg_and_die("no temp file"); |
diff --git a/editors/vi.c b/editors/vi.c index e0047e49e..593dc8520 100644 --- a/editors/vi.c +++ b/editors/vi.c | |||
@@ -23,18 +23,6 @@ | |||
23 | 23 | ||
24 | 24 | ||
25 | #include "busybox.h" | 25 | #include "busybox.h" |
26 | #include <string.h> | ||
27 | #include <strings.h> | ||
28 | #include <unistd.h> | ||
29 | #include <sys/ioctl.h> | ||
30 | #include <time.h> | ||
31 | #include <fcntl.h> | ||
32 | #include <signal.h> | ||
33 | #include <setjmp.h> | ||
34 | #include <regex.h> | ||
35 | #include <ctype.h> | ||
36 | #include <errno.h> | ||
37 | #define vi_Version BB_VER " " BB_BT | ||
38 | 26 | ||
39 | #ifdef CONFIG_LOCALE_SUPPORT | 27 | #ifdef CONFIG_LOCALE_SUPPORT |
40 | #define Isprint(c) isprint((c)) | 28 | #define Isprint(c) isprint((c)) |
@@ -349,7 +337,7 @@ int vi_main(int argc, char **argv) | |||
349 | for (; optind < argc; optind++) { | 337 | for (; optind < argc; optind++) { |
350 | editing = 1; // 0=exit, 1=one file, 2+ =many files | 338 | editing = 1; // 0=exit, 1=one file, 2+ =many files |
351 | free(cfn); | 339 | free(cfn); |
352 | cfn = (Byte *) bb_xstrdup(argv[optind]); | 340 | cfn = (Byte *) xstrdup(argv[optind]); |
353 | edit_file(cfn); | 341 | edit_file(cfn); |
354 | } | 342 | } |
355 | } | 343 | } |
@@ -522,7 +510,7 @@ static Byte *get_one_address(Byte * p, int *addr) // get colon addr, if present | |||
522 | *q++ = *p; | 510 | *q++ = *p; |
523 | *q = '\0'; | 511 | *q = '\0'; |
524 | } | 512 | } |
525 | pat = (Byte *) bb_xstrdup((char *) buf); // save copy of pattern | 513 | pat = (Byte *) xstrdup((char *) buf); // save copy of pattern |
526 | if (*p == '/') | 514 | if (*p == '/') |
527 | p++; | 515 | p++; |
528 | q = char_search(dot, pat, FORWARD, FULL); | 516 | q = char_search(dot, pat, FORWARD, FULL); |
@@ -736,7 +724,7 @@ static void colon(Byte * buf) | |||
736 | 724 | ||
737 | // There is a read-able regular file | 725 | // There is a read-able regular file |
738 | // make this the current file | 726 | // make this the current file |
739 | q = (Byte *) bb_xstrdup((char *) fn); // save the cfn | 727 | q = (Byte *) xstrdup((char *) fn); // save the cfn |
740 | free(cfn); // free the old name | 728 | free(cfn); // free the old name |
741 | cfn = q; // remember new cfn | 729 | cfn = q; // remember new cfn |
742 | 730 | ||
@@ -788,7 +776,7 @@ static void colon(Byte * buf) | |||
788 | if (strlen((char *) args) > 0) { | 776 | if (strlen((char *) args) > 0) { |
789 | // user wants a new filename | 777 | // user wants a new filename |
790 | free(cfn); | 778 | free(cfn); |
791 | cfn = (Byte *) bb_xstrdup((char *) args); | 779 | cfn = (Byte *) xstrdup((char *) args); |
792 | } else { | 780 | } else { |
793 | // user wants file status info | 781 | // user wants file status info |
794 | last_status_cksum = 0; // force status update | 782 | last_status_cksum = 0; // force status update |
@@ -996,7 +984,7 @@ static void colon(Byte * buf) | |||
996 | } | 984 | } |
997 | #endif /* CONFIG_FEATURE_VI_SEARCH */ | 985 | #endif /* CONFIG_FEATURE_VI_SEARCH */ |
998 | } else if (strncasecmp((char *) cmd, "version", i) == 0) { // show software version | 986 | } else if (strncasecmp((char *) cmd, "version", i) == 0) { // show software version |
999 | psb("%s", vi_Version); | 987 | psb("%s", BB_VER " " BB_BT); |
1000 | } else if (strncasecmp((char *) cmd, "write", i) == 0 // write text to file | 988 | } else if (strncasecmp((char *) cmd, "write", i) == 0 // write text to file |
1001 | || strncasecmp((char *) cmd, "wq", i) == 0 | 989 | || strncasecmp((char *) cmd, "wq", i) == 0 |
1002 | || strncasecmp((char *) cmd, "wn", i) == 0 | 990 | || strncasecmp((char *) cmd, "wn", i) == 0 |
@@ -2313,7 +2301,7 @@ static Byte *get_input_line(Byte * prompt) // get input line- use "status line" | |||
2313 | } | 2301 | } |
2314 | refresh(FALSE); | 2302 | refresh(FALSE); |
2315 | free(obufp); | 2303 | free(obufp); |
2316 | obufp = (Byte *) bb_xstrdup((char *) buf); | 2304 | obufp = (Byte *) xstrdup((char *) buf); |
2317 | return (obufp); | 2305 | return (obufp); |
2318 | } | 2306 | } |
2319 | 2307 | ||
@@ -3199,7 +3187,7 @@ key_cmd_mode: | |||
3199 | // Stuff the last_modifying_cmd back into stdin | 3187 | // Stuff the last_modifying_cmd back into stdin |
3200 | // and let it be re-executed. | 3188 | // and let it be re-executed. |
3201 | if (last_modifying_cmd != 0) { | 3189 | if (last_modifying_cmd != 0) { |
3202 | ioq = ioq_start = (Byte *) bb_xstrdup((char *) last_modifying_cmd); | 3190 | ioq = ioq_start = (Byte *) xstrdup((char *) last_modifying_cmd); |
3203 | } | 3191 | } |
3204 | break; | 3192 | break; |
3205 | #endif /* CONFIG_FEATURE_VI_DOT_CMD */ | 3193 | #endif /* CONFIG_FEATURE_VI_DOT_CMD */ |
@@ -3214,7 +3202,7 @@ key_cmd_mode: | |||
3214 | if (strlen((char *) q) > 1) { // new pat- save it and find | 3202 | if (strlen((char *) q) > 1) { // new pat- save it and find |
3215 | // there is a new pat | 3203 | // there is a new pat |
3216 | free(last_search_pattern); | 3204 | free(last_search_pattern); |
3217 | last_search_pattern = (Byte *) bb_xstrdup((char *) q); | 3205 | last_search_pattern = (Byte *) xstrdup((char *) q); |
3218 | goto dc3; // now find the pattern | 3206 | goto dc3; // now find the pattern |
3219 | } | 3207 | } |
3220 | // user changed mind and erased the "/"- do nothing | 3208 | // user changed mind and erased the "/"- do nothing |
diff --git a/findutils/find.c b/findutils/find.c index 1e15e8899..aa915fa0f 100644 --- a/findutils/find.c +++ b/findutils/find.c | |||
@@ -11,14 +11,7 @@ | |||
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include "busybox.h" | 13 | #include "busybox.h" |
14 | #include <stdio.h> | ||
15 | #include <unistd.h> | ||
16 | #include <dirent.h> | ||
17 | #include <string.h> | ||
18 | #include <stdlib.h> | ||
19 | #include <fnmatch.h> | 14 | #include <fnmatch.h> |
20 | #include <time.h> | ||
21 | #include <ctype.h> | ||
22 | 15 | ||
23 | static char *pattern; | 16 | static char *pattern; |
24 | #ifdef CONFIG_FEATURE_FIND_PRINT0 | 17 | #ifdef CONFIG_FEATURE_FIND_PRINT0 |
@@ -138,8 +131,8 @@ static int fileAction(const char *fileName, struct stat *statbuf, void* junk) | |||
138 | int i; | 131 | int i; |
139 | char *cmd_string = ""; | 132 | char *cmd_string = ""; |
140 | for (i = 0; i < num_matches; i++) | 133 | for (i = 0; i < num_matches; i++) |
141 | cmd_string = bb_xasprintf("%s%s%s", cmd_string, exec_str[i], fileName); | 134 | cmd_string = xasprintf("%s%s%s", cmd_string, exec_str[i], fileName); |
142 | cmd_string = bb_xasprintf("%s%s", cmd_string, exec_str[num_matches]); | 135 | cmd_string = xasprintf("%s%s", cmd_string, exec_str[num_matches]); |
143 | system(cmd_string); | 136 | system(cmd_string); |
144 | goto no_match; | 137 | goto no_match; |
145 | } | 138 | } |
@@ -300,7 +293,7 @@ int find_main(int argc, char **argv) | |||
300 | bb_error_msg_and_die(bb_msg_requires_arg, "-exec"); | 293 | bb_error_msg_and_die(bb_msg_requires_arg, "-exec"); |
301 | if (*argv[i] == ';') | 294 | if (*argv[i] == ';') |
302 | break; | 295 | break; |
303 | cmd_string = bb_xasprintf("%s %s", cmd_string, argv[i]); | 296 | cmd_string = xasprintf("%s %s", cmd_string, argv[i]); |
304 | } | 297 | } |
305 | 298 | ||
306 | if (*cmd_string == 0) | 299 | if (*cmd_string == 0) |
@@ -311,10 +304,10 @@ int find_main(int argc, char **argv) | |||
311 | while ((b_pos = strstr(cmd_string, "{}") - cmd_string), (b_pos >= 0)) { | 304 | while ((b_pos = strstr(cmd_string, "{}") - cmd_string), (b_pos >= 0)) { |
312 | num_matches++; | 305 | num_matches++; |
313 | exec_str = xrealloc(exec_str, (num_matches + 1) * sizeof(char *)); | 306 | exec_str = xrealloc(exec_str, (num_matches + 1) * sizeof(char *)); |
314 | exec_str[num_matches - 1] = bb_xstrndup(cmd_string, b_pos); | 307 | exec_str[num_matches - 1] = xstrndup(cmd_string, b_pos); |
315 | cmd_string += b_pos + 2; | 308 | cmd_string += b_pos + 2; |
316 | } | 309 | } |
317 | exec_str[num_matches] = bb_xstrdup(cmd_string); | 310 | exec_str[num_matches] = xstrdup(cmd_string); |
318 | exec_opt = 1; | 311 | exec_opt = 1; |
319 | #endif | 312 | #endif |
320 | } else | 313 | } else |
diff --git a/findutils/grep.c b/findutils/grep.c index ecb1d0457..b53bf490a 100644 --- a/findutils/grep.c +++ b/findutils/grep.c | |||
@@ -17,11 +17,6 @@ | |||
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include "busybox.h" | 19 | #include "busybox.h" |
20 | #include <stdio.h> | ||
21 | #include <stdlib.h> | ||
22 | #include <getopt.h> | ||
23 | #include <string.h> | ||
24 | #include <errno.h> | ||
25 | #include "xregex.h" | 20 | #include "xregex.h" |
26 | 21 | ||
27 | 22 | ||
@@ -203,7 +198,7 @@ static int grep_file(FILE *file) | |||
203 | /* Add the line to the circular 'before' buffer */ | 198 | /* Add the line to the circular 'before' buffer */ |
204 | if(lines_before) { | 199 | if(lines_before) { |
205 | free(before_buf[curpos]); | 200 | free(before_buf[curpos]); |
206 | before_buf[curpos] = bb_xstrdup(line); | 201 | before_buf[curpos] = xstrdup(line); |
207 | curpos = (curpos + 1) % lines_before; | 202 | curpos = (curpos + 1) % lines_before; |
208 | } | 203 | } |
209 | } | 204 | } |
@@ -271,7 +266,7 @@ static void load_regexes_from_file(llist_t *fopt) | |||
271 | 266 | ||
272 | fopt = cur->link; | 267 | fopt = cur->link; |
273 | free(cur); | 268 | free(cur); |
274 | f = bb_xfopen(ffile, "r"); | 269 | f = xfopen(ffile, "r"); |
275 | while ((line = bb_get_chomped_line_from_file(f)) != NULL) { | 270 | while ((line = bb_get_chomped_line_from_file(f)) != NULL) { |
276 | llist_add_to(&pattern_head, | 271 | llist_add_to(&pattern_head, |
277 | new_grep_list_data(line, PATTERN_MEM_A)); | 272 | new_grep_list_data(line, PATTERN_MEM_A)); |
diff --git a/findutils/xargs.c b/findutils/xargs.c index c3a892695..e46708303 100644 --- a/findutils/xargs.c +++ b/findutils/xargs.c | |||
@@ -18,15 +18,6 @@ | |||
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include "busybox.h" | 20 | #include "busybox.h" |
21 | #include <stdio.h> | ||
22 | #include <stdlib.h> | ||
23 | #include <string.h> | ||
24 | #include <unistd.h> | ||
25 | #include <getopt.h> | ||
26 | #include <errno.h> | ||
27 | #include <fcntl.h> | ||
28 | #include <sys/types.h> | ||
29 | #include <sys/wait.h> | ||
30 | 21 | ||
31 | /* COMPAT: SYSV version defaults size (and has a max value of) to 470. | 22 | /* COMPAT: SYSV version defaults size (and has a max value of) to 470. |
32 | We try to make it as large as possible. */ | 23 | We try to make it as large as possible. */ |
@@ -300,7 +291,7 @@ static int xargs_ask_confirmation(void) | |||
300 | int c, savec; | 291 | int c, savec; |
301 | 292 | ||
302 | if (!tty_stream) { | 293 | if (!tty_stream) { |
303 | tty_stream = bb_xfopen(CURRENT_TTY, "r"); | 294 | tty_stream = xfopen(CURRENT_TTY, "r"); |
304 | /* pranoidal security by vodz */ | 295 | /* pranoidal security by vodz */ |
305 | fcntl(fileno(tty_stream), F_SETFD, FD_CLOEXEC); | 296 | fcntl(fileno(tty_stream), F_SETFD, FD_CLOEXEC); |
306 | } | 297 | } |
diff --git a/include/libbb.h b/include/libbb.h index ddf965fbf..5b2977fce 100644 --- a/include/libbb.h +++ b/include/libbb.h | |||
@@ -19,7 +19,9 @@ | |||
19 | #include <errno.h> | 19 | #include <errno.h> |
20 | #include <fcntl.h> | 20 | #include <fcntl.h> |
21 | #include <inttypes.h> | 21 | #include <inttypes.h> |
22 | #include <malloc.h> | ||
22 | #include <netdb.h> | 23 | #include <netdb.h> |
24 | #include <setjmp.h> | ||
23 | #include <signal.h> | 25 | #include <signal.h> |
24 | #include <stdio.h> | 26 | #include <stdio.h> |
25 | #include <stdlib.h> | 27 | #include <stdlib.h> |
@@ -27,18 +29,26 @@ | |||
27 | #include <string.h> | 29 | #include <string.h> |
28 | #include <strings.h> | 30 | #include <strings.h> |
29 | #include <sys/ioctl.h> | 31 | #include <sys/ioctl.h> |
32 | #include <sys/mman.h> | ||
30 | #include <sys/socket.h> | 33 | #include <sys/socket.h> |
31 | #include <sys/stat.h> | 34 | #include <sys/stat.h> |
35 | #include <sys/statfs.h> | ||
32 | #include <sys/time.h> | 36 | #include <sys/time.h> |
33 | #include <sys/types.h> | 37 | #include <sys/types.h> |
34 | #include <sys/wait.h> | 38 | #include <sys/wait.h> |
35 | #include <termios.h> | 39 | #include <termios.h> |
40 | #include <time.h> | ||
36 | #include <unistd.h> | 41 | #include <unistd.h> |
42 | #include <utime.h> | ||
37 | 43 | ||
38 | #ifdef CONFIG_SELINUX | 44 | #ifdef CONFIG_SELINUX |
39 | #include <selinux/selinux.h> | 45 | #include <selinux/selinux.h> |
40 | #endif | 46 | #endif |
41 | 47 | ||
48 | #ifdef CONFIG_LOCALE_SUPPORT | ||
49 | #include <locale.h> | ||
50 | #endif | ||
51 | |||
42 | #include "pwd_.h" | 52 | #include "pwd_.h" |
43 | #include "grp_.h" | 53 | #include "grp_.h" |
44 | #include "shadow_.h" | 54 | #include "shadow_.h" |
@@ -127,8 +137,8 @@ extern int bb_test(int argc, char** argv); | |||
127 | 137 | ||
128 | extern const char *bb_mode_string(int mode); | 138 | extern const char *bb_mode_string(int mode); |
129 | extern int is_directory(const char *name, int followLinks, struct stat *statBuf); | 139 | extern int is_directory(const char *name, int followLinks, struct stat *statBuf); |
130 | extern DIR *bb_opendir(const char *path); | 140 | extern DIR *warn_opendir(const char *path); |
131 | extern DIR *bb_xopendir(const char *path); | 141 | extern DIR *xopendir(const char *path); |
132 | 142 | ||
133 | extern int remove_file(const char *path, int flags); | 143 | extern int remove_file(const char *path, int flags); |
134 | extern int copy_file(const char *source, const char *dest, int flags); | 144 | extern int copy_file(const char *source, const char *dest, int flags); |
@@ -161,26 +171,24 @@ extern char *bb_get_chomped_line_from_file(FILE *file); | |||
161 | extern char *bb_get_chunk_from_file(FILE *file, int *end); | 171 | extern char *bb_get_chunk_from_file(FILE *file, int *end); |
162 | extern int bb_copyfd_size(int fd1, int fd2, const off_t size); | 172 | extern int bb_copyfd_size(int fd1, int fd2, const off_t size); |
163 | extern int bb_copyfd_eof(int fd1, int fd2); | 173 | extern int bb_copyfd_eof(int fd1, int fd2); |
164 | extern void bb_xprint_and_close_file(FILE *file); | ||
165 | extern int bb_xprint_file_by_name(const char *filename); | ||
166 | extern char bb_process_escape_sequence(const char **ptr); | 174 | extern char bb_process_escape_sequence(const char **ptr); |
167 | extern char *bb_get_last_path_component(char *path); | 175 | extern char *bb_get_last_path_component(char *path); |
168 | extern FILE *bb_wfopen(const char *path, const char *mode); | 176 | extern FILE *bb_wfopen(const char *path, const char *mode); |
169 | extern FILE *bb_wfopen_input(const char *filename); | 177 | extern FILE *bb_wfopen_input(const char *filename); |
170 | extern FILE *bb_xfopen(const char *path, const char *mode); | 178 | extern FILE *xfopen(const char *path, const char *mode); |
171 | 179 | ||
172 | extern int bb_fclose_nonstdin(FILE *f); | 180 | extern int bb_fclose_nonstdin(FILE *f); |
173 | extern void bb_fflush_stdout_and_exit(int retval) ATTRIBUTE_NORETURN; | 181 | extern void bb_fflush_stdout_and_exit(int retval) ATTRIBUTE_NORETURN; |
174 | 182 | ||
175 | extern void xstat(const char *filename, struct stat *buf); | 183 | extern void xstat(const char *filename, struct stat *buf); |
176 | extern int bb_xsocket(int domain, int type, int protocol); | 184 | extern int xsocket(int domain, int type, int protocol); |
177 | extern pid_t bb_spawn(char **argv); | 185 | extern pid_t spawn(char **argv); |
178 | extern pid_t bb_xspawn(char **argv); | 186 | extern pid_t xspawn(char **argv); |
179 | extern int wait4pid(int pid); | 187 | extern int wait4pid(int pid); |
180 | extern void bb_xdaemon(int nochdir, int noclose); | 188 | extern void xdaemon(int nochdir, int noclose); |
181 | extern void bb_xbind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen); | 189 | extern void xbind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen); |
182 | extern void bb_xlisten(int s, int backlog); | 190 | extern void xlisten(int s, int backlog); |
183 | extern void bb_xchdir(const char *path); | 191 | extern void xchdir(const char *path); |
184 | extern void utoa_to_buf(unsigned n, char *buf, unsigned buflen); | 192 | extern void utoa_to_buf(unsigned n, char *buf, unsigned buflen); |
185 | extern char *utoa(unsigned n); | 193 | extern char *utoa(unsigned n); |
186 | extern void itoa_to_buf(int n, char *buf, unsigned buflen); | 194 | extern void itoa_to_buf(int n, char *buf, unsigned buflen); |
@@ -204,9 +212,9 @@ extern int bb_printf(const char * __restrict format, ...) | |||
204 | __attribute__ ((format (printf, 1, 2))); | 212 | __attribute__ ((format (printf, 1, 2))); |
205 | 213 | ||
206 | //#warning rename to xferror_filename? | 214 | //#warning rename to xferror_filename? |
207 | extern void bb_xferror(FILE *fp, const char *fn); | 215 | extern void xferror(FILE *fp, const char *fn); |
208 | extern void bb_xferror_stdout(void); | 216 | extern void xferror_stdout(void); |
209 | extern void bb_xfflush_stdout(void); | 217 | extern void xfflush_stdout(void); |
210 | 218 | ||
211 | extern void bb_warn_ignoring_args(int n); | 219 | extern void bb_warn_ignoring_args(int n); |
212 | 220 | ||
@@ -224,8 +232,8 @@ extern void *xrealloc(void *old, size_t size); | |||
224 | extern void *xzalloc(size_t size); | 232 | extern void *xzalloc(size_t size); |
225 | extern void *xcalloc(size_t nmemb, size_t size); | 233 | extern void *xcalloc(size_t nmemb, size_t size); |
226 | 234 | ||
227 | extern char *bb_xstrdup (const char *s); | 235 | extern char *xstrdup (const char *s); |
228 | extern char *bb_xstrndup (const char *s, int n); | 236 | extern char *xstrndup (const char *s, int n); |
229 | extern char *safe_strncpy(char *dst, const char *src, size_t size); | 237 | extern char *safe_strncpy(char *dst, const char *src, size_t size); |
230 | extern int safe_strtoi(char *arg, int* value); | 238 | extern int safe_strtoi(char *arg, int* value); |
231 | extern int safe_strtod(char *arg, double* value); | 239 | extern int safe_strtod(char *arg, double* value); |
@@ -321,7 +329,6 @@ char *concat_path_file(const char *path, const char *filename); | |||
321 | char *concat_subpath_file(const char *path, const char *filename); | 329 | char *concat_subpath_file(const char *path, const char *filename); |
322 | char *last_char_is(const char *s, int c); | 330 | char *last_char_is(const char *s, int c); |
323 | 331 | ||
324 | int read_package_field(const char *package_buffer, char **field_name, char **field_value); | ||
325 | //#warning yuk! | 332 | //#warning yuk! |
326 | char *fgets_str(FILE *file, const char *terminating_string); | 333 | char *fgets_str(FILE *file, const char *terminating_string); |
327 | 334 | ||
@@ -458,7 +465,8 @@ int is_in_ino_dev_hashtable(const struct stat *statbuf, char **name); | |||
458 | void add_to_ino_dev_hashtable(const struct stat *statbuf, const char *name); | 465 | void add_to_ino_dev_hashtable(const struct stat *statbuf, const char *name); |
459 | void reset_ino_dev_hashtable(void); | 466 | void reset_ino_dev_hashtable(void); |
460 | 467 | ||
461 | char *bb_xasprintf(const char *format, ...) __attribute__ ((format (printf, 1, 2))); | 468 | char *xasprintf(const char *format, ...) __attribute__ ((format (printf, 1, 2))); |
469 | void xprint_and_close_file(FILE *file); | ||
462 | 470 | ||
463 | #define FAIL_DELAY 3 | 471 | #define FAIL_DELAY 3 |
464 | extern void bb_do_delay(int seconds); | 472 | extern void bb_do_delay(int seconds); |
@@ -476,8 +484,8 @@ extern int correct_password ( const struct passwd *pw ); | |||
476 | extern char *pw_encrypt(const char *clear, const char *salt); | 484 | extern char *pw_encrypt(const char *clear, const char *salt); |
477 | extern int obscure(const char *old, const char *newval, const struct passwd *pwdp); | 485 | extern int obscure(const char *old, const char *newval, const struct passwd *pwdp); |
478 | 486 | ||
479 | extern int bb_xopen(const char *pathname, int flags); | 487 | extern int xopen(const char *pathname, int flags); |
480 | extern int bb_xopen3(const char *pathname, int flags, int mode); | 488 | extern int xopen3(const char *pathname, int flags, int mode); |
481 | extern void xread(int fd, void *buf, size_t count); | 489 | extern void xread(int fd, void *buf, size_t count); |
482 | extern unsigned char xread_char(int fd); | 490 | extern unsigned char xread_char(int fd); |
483 | extern void xlseek(int fd, off_t offset, int whence); | 491 | extern void xlseek(int fd, off_t offset, int whence); |
@@ -550,7 +558,7 @@ void md5_begin(md5_ctx_t *ctx); | |||
550 | void md5_hash(const void *data, size_t length, md5_ctx_t *ctx); | 558 | void md5_hash(const void *data, size_t length, md5_ctx_t *ctx); |
551 | void *md5_end(void *resbuf, md5_ctx_t *ctx); | 559 | void *md5_end(void *resbuf, md5_ctx_t *ctx); |
552 | 560 | ||
553 | extern uint32_t *bb_crc32_filltable (int endian); | 561 | extern uint32_t *crc32_filltable (int endian); |
554 | 562 | ||
555 | #ifndef RB_POWER_OFF | 563 | #ifndef RB_POWER_OFF |
556 | /* Stop system and switch power off if possible. */ | 564 | /* Stop system and switch power off if possible. */ |
diff --git a/libbb/Makefile.in b/libbb/Makefile.in index cae7f99ed..4f688e77a 100644 --- a/libbb/Makefile.in +++ b/libbb/Makefile.in | |||
@@ -11,7 +11,7 @@ srcdir=$(top_srcdir)/libbb | |||
11 | 11 | ||
12 | LIBBB-n:= | 12 | LIBBB-n:= |
13 | LIBBB-y:= \ | 13 | LIBBB-y:= \ |
14 | bb_asprintf.c ask_confirmation.c change_identity.c chomp.c \ | 14 | ask_confirmation.c change_identity.c chomp.c \ |
15 | compare_string_array.c concat_path_file.c copy_file.c copyfd.c \ | 15 | compare_string_array.c concat_path_file.c copy_file.c copyfd.c \ |
16 | crc32.c create_icmp_socket.c create_icmp6_socket.c \ | 16 | crc32.c create_icmp_socket.c create_icmp6_socket.c \ |
17 | device_open.c dump.c error_msg.c error_msg_and_die.c \ | 17 | device_open.c dump.c error_msg.c error_msg_and_die.c \ |
@@ -22,15 +22,14 @@ LIBBB-y:= \ | |||
22 | kernel_version.c last_char_is.c login.c \ | 22 | kernel_version.c last_char_is.c login.c \ |
23 | make_directory.c md5.c mode_string.c mtab_file.c \ | 23 | make_directory.c md5.c mode_string.c mtab_file.c \ |
24 | obscure.c parse_mode.c parse_number.c perror_msg.c \ | 24 | obscure.c parse_mode.c parse_number.c perror_msg.c \ |
25 | perror_msg_and_die.c print_file.c get_console.c \ | 25 | perror_msg_and_die.c get_console.c \ |
26 | process_escape_sequence.c procps.c qmodule.c \ | 26 | process_escape_sequence.c procps.c qmodule.c \ |
27 | read_package_field.c recursive_action.c remove_file.c \ | 27 | recursive_action.c remove_file.c \ |
28 | restricted_shell.c run_parts.c run_shell.c safe_read.c safe_write.c \ | 28 | restricted_shell.c run_parts.c run_shell.c safe_read.c safe_write.c \ |
29 | safe_strncpy.c setup_environment.c sha1.c simplify_path.c \ | 29 | safe_strncpy.c setup_environment.c sha1.c simplify_path.c \ |
30 | trim.c u_signal_names.c vdprintf.c verror_msg.c \ | 30 | trim.c u_signal_names.c vdprintf.c verror_msg.c \ |
31 | vherror_msg.c vperror_msg.c wfopen.c xconnect.c xgetcwd.c xstat.c \ | 31 | vherror_msg.c vperror_msg.c wfopen.c xconnect.c xgetcwd.c xstat.c \ |
32 | xgethostbyname.c xgethostbyname2.c xreadlink.c xregcomp.c xgetlarg.c \ | 32 | xgethostbyname.c xgethostbyname2.c xreadlink.c xregcomp.c xgetlarg.c \ |
33 | bb_xsocket.c bb_xdaemon.c bb_xbind.c bb_xlisten.c bb_xchdir.c \ | ||
34 | get_terminal_width_height.c fclose_nonstdin.c fflush_stdout_and_exit.c \ | 33 | get_terminal_width_height.c fclose_nonstdin.c fflush_stdout_and_exit.c \ |
35 | getopt_ulflags.c default_error_retval.c wfopen_input.c speed_table.c \ | 34 | getopt_ulflags.c default_error_retval.c wfopen_input.c speed_table.c \ |
36 | perror_nomsg_and_die.c perror_nomsg.c skip_whitespace.c bb_askpass.c \ | 35 | perror_nomsg_and_die.c perror_nomsg.c skip_whitespace.c bb_askpass.c \ |
@@ -97,18 +96,12 @@ LIBBB_MOBJ6:=$(patsubst %,$(LIBBB_DIR)/%, $(LIBBB_MOBJ6)) | |||
97 | $(LIBBB_MOBJ6):$(LIBBB_MSRC6) | 96 | $(LIBBB_MOBJ6):$(LIBBB_MSRC6) |
98 | $(compile.c) -DL_$(notdir $*) | 97 | $(compile.c) -DL_$(notdir $*) |
99 | 98 | ||
100 | LIBBB_MSRC7:=$(srcdir)/opendir.c | ||
101 | LIBBB_MOBJ7:=$(call get-file-subparts, ${LIBBB_MSRC7}) | ||
102 | LIBBB_MOBJ7:=$(patsubst %,$(LIBBB_DIR)/%, $(LIBBB_MOBJ7)) | ||
103 | $(LIBBB_MOBJ7):$(LIBBB_MSRC7) | ||
104 | $(compile.c) -DL_$(notdir $*) | ||
105 | |||
106 | # We need the names of the object files built from MSRC for the L_ defines | 99 | # We need the names of the object files built from MSRC for the L_ defines |
107 | LIBBB_ALL_MOBJ:=$(LIBBB_MOBJ0) $(LIBBB_MOBJ1) $(LIBBB_MOBJ2) $(LIBBB_MOBJ3) \ | 100 | LIBBB_ALL_MOBJ:=$(LIBBB_MOBJ0) $(LIBBB_MOBJ1) $(LIBBB_MOBJ2) $(LIBBB_MOBJ3) \ |
108 | $(LIBBB_MOBJ4) $(LIBBB_MOBJ5) $(LIBBB_MOBJ6) $(LIBBB_MOBJ7) | 101 | $(LIBBB_MOBJ4) $(LIBBB_MOBJ5) $(LIBBB_MOBJ6) |
109 | 102 | ||
110 | LIBBB_ALL_MSRC:=$(LIBBB_MSRC0) $(LIBBB_MSRC1) $(LIBBB_MSRC2) $(LIBBB_MSRC3) \ | 103 | LIBBB_ALL_MSRC:=$(LIBBB_MSRC0) $(LIBBB_MSRC1) $(LIBBB_MSRC2) $(LIBBB_MSRC3) \ |
111 | $(LIBBB_MSRC4) $(LIBBB_MSRC5) $(LIBBB_MSRC6) $(LIBBB_MSRC7) | 104 | $(LIBBB_MSRC4) $(LIBBB_MSRC5) $(LIBBB_MSRC6) |
112 | 105 | ||
113 | LIBBB-y:=$(sort $(LIBBB-y) $(LIBBB_ALL_MSRC)) | 106 | LIBBB-y:=$(sort $(LIBBB-y) $(LIBBB_ALL_MSRC)) |
114 | 107 | ||
diff --git a/libbb/bb_asprintf.c b/libbb/bb_asprintf.c deleted file mode 100644 index 2bef0b59d..000000000 --- a/libbb/bb_asprintf.c +++ /dev/null | |||
@@ -1,37 +0,0 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | ||
2 | /* | ||
3 | * Copyright (C) 2002,2005 Vladimir Oleynik <dzo@simtreas.ru> | ||
4 | * | ||
5 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | ||
6 | */ | ||
7 | |||
8 | #include <stdlib.h> | ||
9 | #include <stdio.h> | ||
10 | #include <stdarg.h> | ||
11 | #include "libbb.h" | ||
12 | |||
13 | char *bb_xasprintf(const char *format, ...) | ||
14 | { | ||
15 | va_list p; | ||
16 | int r; | ||
17 | char *string_ptr; | ||
18 | |||
19 | #ifdef HAVE_GNU_EXTENSIONS | ||
20 | va_start(p, format); | ||
21 | r = vasprintf(&string_ptr, format, p); | ||
22 | va_end(p); | ||
23 | #else | ||
24 | va_start(p, format); | ||
25 | r = vsnprintf(NULL, 0, format, p); | ||
26 | va_end(p); | ||
27 | string_ptr = xmalloc(r+1); | ||
28 | va_start(p, format); | ||
29 | r = vsnprintf(string_ptr, r+1, format, p); | ||
30 | va_end(p); | ||
31 | #endif | ||
32 | |||
33 | if (r < 0) { | ||
34 | bb_perror_msg_and_die("bb_xasprintf"); | ||
35 | } | ||
36 | return string_ptr; | ||
37 | } | ||
diff --git a/libbb/bb_xbind.c b/libbb/bb_xbind.c deleted file mode 100644 index b53f8239a..000000000 --- a/libbb/bb_xbind.c +++ /dev/null | |||
@@ -1,18 +0,0 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | ||
2 | /* | ||
3 | * bb_xbind.c - a bind() which dies on failure with error message | ||
4 | * | ||
5 | * Copyright (C) 2006 Denis Vlasenko | ||
6 | * | ||
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | ||
8 | */ | ||
9 | |||
10 | #include <sys/types.h> | ||
11 | #include <sys/socket.h> | ||
12 | #include "libbb.h" | ||
13 | |||
14 | void bb_xbind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen) | ||
15 | { | ||
16 | if (bind(sockfd, my_addr, addrlen)) | ||
17 | bb_perror_msg_and_die("bind"); | ||
18 | } | ||
diff --git a/libbb/bb_xchdir.c b/libbb/bb_xchdir.c deleted file mode 100644 index 2c2ff27cd..000000000 --- a/libbb/bb_xchdir.c +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | ||
2 | /* | ||
3 | * bb_xchdir.c - a chdir() which dies on failure with error message | ||
4 | * | ||
5 | * Copyright (C) 2006 Denis Vlasenko | ||
6 | * | ||
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | ||
8 | */ | ||
9 | #include <unistd.h> | ||
10 | #include "libbb.h" | ||
11 | |||
12 | void bb_xchdir(const char *path) | ||
13 | { | ||
14 | if (chdir(path)) | ||
15 | bb_perror_msg_and_die("chdir(%s)", path); | ||
16 | } | ||
17 | |||
diff --git a/libbb/bb_xdaemon.c b/libbb/bb_xdaemon.c deleted file mode 100644 index 218b5247f..000000000 --- a/libbb/bb_xdaemon.c +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | ||
2 | /* | ||
3 | * bb_xdaemon.c - a daemon() which dies on failure with error message | ||
4 | * | ||
5 | * Copyright (C) 2006 Denis Vlasenko | ||
6 | * | ||
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | ||
8 | */ | ||
9 | |||
10 | #include <unistd.h> | ||
11 | #include "libbb.h" | ||
12 | |||
13 | #ifndef BB_NOMMU | ||
14 | void bb_xdaemon(int nochdir, int noclose) | ||
15 | { | ||
16 | if (daemon(nochdir, noclose)) | ||
17 | bb_perror_msg_and_die("daemon"); | ||
18 | } | ||
19 | #endif | ||
diff --git a/libbb/bb_xlisten.c b/libbb/bb_xlisten.c deleted file mode 100644 index e135d4836..000000000 --- a/libbb/bb_xlisten.c +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | ||
2 | /* | ||
3 | * bb_xlisten.c - a listen() which dies on failure with error message | ||
4 | * | ||
5 | * Copyright (C) 2006 Denis Vlasenko | ||
6 | * | ||
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | ||
8 | */ | ||
9 | |||
10 | #include <sys/socket.h> | ||
11 | #include "libbb.h" | ||
12 | |||
13 | void bb_xlisten(int s, int backlog) | ||
14 | { | ||
15 | if (listen(s, backlog)) | ||
16 | bb_perror_msg_and_die("listen"); | ||
17 | } | ||
diff --git a/libbb/bb_xsocket.c b/libbb/bb_xsocket.c deleted file mode 100644 index c14dd7862..000000000 --- a/libbb/bb_xsocket.c +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | ||
2 | /* | ||
3 | * bb_xsocket.c - a socket() which dies on failure with error message | ||
4 | * | ||
5 | * Copyright (C) 2006 Denis Vlasenko | ||
6 | * | ||
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | ||
8 | */ | ||
9 | |||
10 | #include <sys/socket.h> | ||
11 | #include "libbb.h" | ||
12 | |||
13 | int bb_xsocket(int domain, int type, int protocol) | ||
14 | { | ||
15 | int r = socket(domain, type, protocol); | ||
16 | if (r < 0) | ||
17 | bb_perror_msg_and_die("socket"); | ||
18 | return r; | ||
19 | } | ||
diff --git a/libbb/concat_path_file.c b/libbb/concat_path_file.c index 415b6a2fb..ef0d3282d 100644 --- a/libbb/concat_path_file.c +++ b/libbb/concat_path_file.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * not addition '/' if path name already have '/' | 12 | * not addition '/' if path name already have '/' |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <string.h> | ||
16 | #include "libbb.h" | 15 | #include "libbb.h" |
17 | 16 | ||
18 | char *concat_path_file(const char *path, const char *filename) | 17 | char *concat_path_file(const char *path, const char *filename) |
@@ -24,5 +23,5 @@ char *concat_path_file(const char *path, const char *filename) | |||
24 | lc = last_char_is(path, '/'); | 23 | lc = last_char_is(path, '/'); |
25 | while (*filename == '/') | 24 | while (*filename == '/') |
26 | filename++; | 25 | filename++; |
27 | return bb_xasprintf("%s%s%s", path, (lc==NULL ? "/" : ""), filename); | 26 | return xasprintf("%s%s%s", path, (lc==NULL ? "/" : ""), filename); |
28 | } | 27 | } |
diff --git a/libbb/copy_file.c b/libbb/copy_file.c index 38a2cb9c3..d2794e7d6 100644 --- a/libbb/copy_file.c +++ b/libbb/copy_file.c | |||
@@ -9,8 +9,6 @@ | |||
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include "libbb.h" | 11 | #include "libbb.h" |
12 | #include <utime.h> | ||
13 | #include <errno.h> | ||
14 | 12 | ||
15 | int copy_file(const char *source, const char *dest, int flags) | 13 | int copy_file(const char *source, const char *dest, int flags) |
16 | { | 14 | { |
@@ -77,7 +75,7 @@ int copy_file(const char *source, const char *dest, int flags) | |||
77 | } | 75 | } |
78 | 76 | ||
79 | /* Recursively copy files in SOURCE. */ | 77 | /* Recursively copy files in SOURCE. */ |
80 | if ((dp = bb_opendir(source)) == NULL) { | 78 | if ((dp = opendir(source)) == NULL) { |
81 | status = -1; | 79 | status = -1; |
82 | goto preserve_status; | 80 | goto preserve_status; |
83 | } | 81 | } |
diff --git a/libbb/crc32.c b/libbb/crc32.c index 03609952d..538a13622 100644 --- a/libbb/crc32.c +++ b/libbb/crc32.c | |||
@@ -14,11 +14,10 @@ | |||
14 | * endian = 0: little-endian | 14 | * endian = 0: little-endian |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <stdio.h> | ||
18 | #include <stdlib.h> | ||
19 | #include "libbb.h" | 17 | #include "libbb.h" |
20 | 18 | ||
21 | uint32_t *bb_crc32_filltable (int endian) { | 19 | uint32_t *crc32_filltable(int endian) |
20 | { | ||
22 | 21 | ||
23 | uint32_t *crc_table = xmalloc(256 * sizeof(uint32_t)); | 22 | uint32_t *crc_table = xmalloc(256 * sizeof(uint32_t)); |
24 | uint32_t polynomial = endian ? 0x04c11db7 : 0xedb88320; | 23 | uint32_t polynomial = endian ? 0x04c11db7 : 0xedb88320; |
diff --git a/libbb/dump.c b/libbb/dump.c index f1d5df2d6..28f745fb6 100644 --- a/libbb/dump.c +++ b/libbb/dump.c | |||
@@ -12,9 +12,6 @@ | |||
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include "libbb.h" | 14 | #include "libbb.h" |
15 | #include <string.h> | ||
16 | #include <unistd.h> | ||
17 | #include <ctype.h> /* for isdigit() */ | ||
18 | #include "dump.h" | 15 | #include "dump.h" |
19 | 16 | ||
20 | enum _vflag bb_dump_vflag = FIRST; | 17 | enum _vflag bb_dump_vflag = FIRST; |
@@ -232,7 +229,7 @@ static void rewrite(FS * fs) | |||
232 | */ | 229 | */ |
233 | savech = *p2; | 230 | savech = *p2; |
234 | p1[1] = '\0'; | 231 | p1[1] = '\0'; |
235 | pr->fmt = bb_xstrdup(fmtp); | 232 | pr->fmt = xstrdup(fmtp); |
236 | *p2 = savech; | 233 | *p2 = savech; |
237 | pr->cchar = pr->fmt + (p1 - fmtp); | 234 | pr->cchar = pr->fmt + (p1 - fmtp); |
238 | 235 | ||
diff --git a/libbb/find_root_device.c b/libbb/find_root_device.c index 675f8d2f5..71b79b8d0 100644 --- a/libbb/find_root_device.c +++ b/libbb/find_root_device.c | |||
@@ -7,11 +7,6 @@ | |||
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <limits.h> | ||
11 | #include <stdio.h> | ||
12 | #include <string.h> | ||
13 | #include <dirent.h> | ||
14 | #include <stdlib.h> | ||
15 | #include "libbb.h" | 10 | #include "libbb.h" |
16 | 11 | ||
17 | char *find_block_device(char *path) | 12 | char *find_block_device(char *path) |
@@ -28,7 +23,7 @@ char *find_block_device(char *path) | |||
28 | char devpath[PATH_MAX]; | 23 | char devpath[PATH_MAX]; |
29 | sprintf(devpath,"/dev/%s", entry->d_name); | 24 | sprintf(devpath,"/dev/%s", entry->d_name); |
30 | if(!stat(devpath, &st) && S_ISBLK(st.st_mode) && st.st_rdev == dev) { | 25 | if(!stat(devpath, &st) && S_ISBLK(st.st_mode) && st.st_rdev == dev) { |
31 | retpath = bb_xstrdup(devpath); | 26 | retpath = xstrdup(devpath); |
32 | break; | 27 | break; |
33 | } | 28 | } |
34 | } | 29 | } |
diff --git a/libbb/getopt_ulflags.c b/libbb/getopt_ulflags.c index a57951305..19c96914d 100644 --- a/libbb/getopt_ulflags.c +++ b/libbb/getopt_ulflags.c | |||
@@ -7,11 +7,8 @@ | |||
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <getopt.h> | ||
11 | #include <string.h> | ||
12 | #include <assert.h> | ||
13 | #include <stdlib.h> | ||
14 | #include "libbb.h" | 10 | #include "libbb.h" |
11 | #include <getopt.h> | ||
15 | 12 | ||
16 | /* Documentation | 13 | /* Documentation |
17 | 14 | ||
@@ -438,7 +435,7 @@ bb_getopt_ulflags (int argc, char **argv, const char *applet_opts, ...) | |||
438 | #if defined(CONFIG_AR) || defined(CONFIG_TAR) | 435 | #if defined(CONFIG_AR) || defined(CONFIG_TAR) |
439 | if((spec_flgs & FIRST_ARGV_IS_OPT)) { | 436 | if((spec_flgs & FIRST_ARGV_IS_OPT)) { |
440 | if(argv[1] && argv[1][0] != '-' && argv[1][0] != '\0') { | 437 | if(argv[1] && argv[1][0] != '-' && argv[1][0] != '\0') { |
441 | argv[1] = bb_xasprintf("-%s", argv[1]); | 438 | argv[1] = xasprintf("-%s", argv[1]); |
442 | if(ENABLE_FEATURE_CLEAN_UP) | 439 | if(ENABLE_FEATURE_CLEAN_UP) |
443 | spec_flgs |= FREE_FIRST_ARGV_IS_OPT; | 440 | spec_flgs |= FREE_FIRST_ARGV_IS_OPT; |
444 | } | 441 | } |
diff --git a/libbb/inet_common.c b/libbb/inet_common.c index feb0c42f3..75a03fda4 100644 --- a/libbb/inet_common.c +++ b/libbb/inet_common.c | |||
@@ -11,16 +11,6 @@ | |||
11 | 11 | ||
12 | #include "libbb.h" | 12 | #include "libbb.h" |
13 | #include "inet_common.h" | 13 | #include "inet_common.h" |
14 | #include <stdio.h> | ||
15 | #include <errno.h> | ||
16 | #include <stdlib.h> | ||
17 | #include <string.h> | ||
18 | #include <unistd.h> | ||
19 | |||
20 | #ifdef DEBUG | ||
21 | # include <resolv.h> | ||
22 | #endif | ||
23 | |||
24 | 14 | ||
25 | const char bb_INET_default[] = "default"; | 15 | const char bb_INET_default[] = "default"; |
26 | 16 | ||
@@ -174,7 +164,7 @@ int INET_rresolve(char *name, size_t len, struct sockaddr_in *s_in, | |||
174 | pn->addr = *s_in; | 164 | pn->addr = *s_in; |
175 | pn->next = INET_nn; | 165 | pn->next = INET_nn; |
176 | pn->host = host; | 166 | pn->host = host; |
177 | pn->name = bb_xstrdup(name); | 167 | pn->name = xstrdup(name); |
178 | INET_nn = pn; | 168 | INET_nn = pn; |
179 | 169 | ||
180 | return (0); | 170 | return (0); |
diff --git a/libbb/loop.c b/libbb/loop.c index 0b05cd75f..da41d1e76 100644 --- a/libbb/loop.c +++ b/libbb/loop.c | |||
@@ -8,13 +8,6 @@ | |||
8 | * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. | 8 | * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <features.h> | ||
12 | #include <stdio.h> | ||
13 | #include <errno.h> | ||
14 | #include <fcntl.h> | ||
15 | #include <string.h> | ||
16 | #include <unistd.h> | ||
17 | #include <sys/ioctl.h> | ||
18 | #include "libbb.h" | 11 | #include "libbb.h" |
19 | 12 | ||
20 | /* For 2.6, use the cleaned up header to get the 64 bit API. */ | 13 | /* For 2.6, use the cleaned up header to get the 64 bit API. */ |
@@ -59,7 +52,7 @@ char *query_loop(const char *device) | |||
59 | 52 | ||
60 | if ((fd = open(device, O_RDONLY)) < 0) return 0; | 53 | if ((fd = open(device, O_RDONLY)) < 0) return 0; |
61 | if (!ioctl(fd, BB_LOOP_GET_STATUS, &loopinfo)) | 54 | if (!ioctl(fd, BB_LOOP_GET_STATUS, &loopinfo)) |
62 | dev=bb_xasprintf("%ld %s", (long) loopinfo.lo_offset, | 55 | dev=xasprintf("%ld %s", (long) loopinfo.lo_offset, |
63 | (char *)loopinfo.lo_file_name); | 56 | (char *)loopinfo.lo_file_name); |
64 | close(fd); | 57 | close(fd); |
65 | 58 | ||
diff --git a/libbb/obscure.c b/libbb/obscure.c index 3353df949..9ac6bcd82 100644 --- a/libbb/obscure.c +++ b/libbb/obscure.c | |||
@@ -39,11 +39,6 @@ | |||
39 | of crypt do not truncate passwords. | 39 | of crypt do not truncate passwords. |
40 | */ | 40 | */ |
41 | 41 | ||
42 | #include <ctype.h> | ||
43 | #include <unistd.h> | ||
44 | #include <string.h> | ||
45 | #include <strings.h> | ||
46 | |||
47 | #include "libbb.h" | 42 | #include "libbb.h" |
48 | 43 | ||
49 | static int string_checker_helper(const char *p1, const char *p2) __attribute__ ((__pure__)); | 44 | static int string_checker_helper(const char *p1, const char *p2) __attribute__ ((__pure__)); |
@@ -66,7 +61,7 @@ static int string_checker(const char *p1, const char *p2) | |||
66 | /* check string */ | 61 | /* check string */ |
67 | int ret = string_checker_helper(p1, p2); | 62 | int ret = string_checker_helper(p1, p2); |
68 | /* Make our own copy */ | 63 | /* Make our own copy */ |
69 | char *p = bb_xstrdup(p1); | 64 | char *p = xstrdup(p1); |
70 | /* reverse string */ | 65 | /* reverse string */ |
71 | size = strlen(p); | 66 | size = strlen(p); |
72 | 67 | ||
diff --git a/libbb/opendir.c b/libbb/opendir.c deleted file mode 100644 index e284db0db..000000000 --- a/libbb/opendir.c +++ /dev/null | |||
@@ -1,37 +0,0 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | ||
2 | /* | ||
3 | * wrapper for opendir() | ||
4 | * | ||
5 | * Copyright (C) 2006 Bernhard Fischer <busybox@busybox.net> | ||
6 | * | ||
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | ||
8 | */ | ||
9 | |||
10 | #include <sys/types.h> | ||
11 | #include <dirent.h> | ||
12 | #include "libbb.h" | ||
13 | |||
14 | #ifdef L_bb_opendir | ||
15 | DIR *bb_opendir(const char *path) | ||
16 | { | ||
17 | DIR *dp; | ||
18 | |||
19 | if ((dp = opendir(path)) == NULL) { | ||
20 | bb_perror_msg("unable to open `%s'", path); | ||
21 | return NULL; | ||
22 | } | ||
23 | return dp; | ||
24 | } | ||
25 | #endif | ||
26 | |||
27 | #ifdef L_bb_xopendir | ||
28 | DIR *bb_xopendir(const char *path) | ||
29 | { | ||
30 | DIR *dp; | ||
31 | |||
32 | if ((dp = opendir(path)) == NULL) { | ||
33 | bb_perror_msg_and_die("unable to open `%s'", path); | ||
34 | } | ||
35 | return dp; | ||
36 | } | ||
37 | #endif | ||
diff --git a/libbb/print_file.c b/libbb/print_file.c deleted file mode 100644 index ea5d1d222..000000000 --- a/libbb/print_file.c +++ /dev/null | |||
@@ -1,55 +0,0 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | ||
2 | /* | ||
3 | * Utility routines. | ||
4 | * | ||
5 | * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> | ||
6 | * | ||
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | ||
8 | */ | ||
9 | |||
10 | #include <stdio.h> | ||
11 | #include <stdlib.h> | ||
12 | #include <unistd.h> | ||
13 | #include "libbb.h" | ||
14 | |||
15 | void bb_xprint_and_close_file(FILE *file) | ||
16 | { | ||
17 | bb_xfflush_stdout(); | ||
18 | /* Note: Do not use STDOUT_FILENO here, as this is a lib routine | ||
19 | * and the calling code may have reassigned stdout. */ | ||
20 | if (bb_copyfd_eof(fileno(file), STDOUT_FILENO) == -1) { | ||
21 | /* bb_copyfd outputs any needed messages, so just die. */ | ||
22 | exit(bb_default_error_retval); | ||
23 | } | ||
24 | /* Note: Since we're reading, don't bother checking the return value | ||
25 | * of fclose(). The only possible failure is EINTR which | ||
26 | * should already have been taken care of. */ | ||
27 | fclose(file); | ||
28 | } | ||
29 | |||
30 | /* Returns: | ||
31 | * 0 if successful | ||
32 | * -1 if 'filename' does not exist or is a directory | ||
33 | * exits with default error code if an error occurs | ||
34 | */ | ||
35 | |||
36 | int bb_xprint_file_by_name(const char *filename) | ||
37 | { | ||
38 | FILE *f; | ||
39 | |||
40 | #if 0 | ||
41 | /* This check shouldn't be necessary for linux, but is left | ||
42 | * here disabled just in case. */ | ||
43 | struct stat statBuf; | ||
44 | |||
45 | if(is_directory(filename, TRUE, &statBuf)) { | ||
46 | bb_error_msg("%s: Is directory", filename); | ||
47 | } else | ||
48 | #endif | ||
49 | if ((f = bb_wfopen(filename, "r")) != NULL) { | ||
50 | bb_xprint_and_close_file(f); | ||
51 | return 0; | ||
52 | } | ||
53 | |||
54 | return -1; | ||
55 | } | ||
diff --git a/libbb/procps.c b/libbb/procps.c index 0d4877cb6..8fd5c1f86 100644 --- a/libbb/procps.c +++ b/libbb/procps.c | |||
@@ -51,7 +51,7 @@ procps_status_t * procps_scan(int save_user_arg0) | |||
51 | struct stat sb; | 51 | struct stat sb; |
52 | 52 | ||
53 | if (!dir) { | 53 | if (!dir) { |
54 | dir = bb_xopendir("/proc"); | 54 | dir = xopendir("/proc"); |
55 | } | 55 | } |
56 | for (;;) { | 56 | for (;;) { |
57 | if ((entry = readdir(dir)) == NULL) { | 57 | if ((entry = readdir(dir)) == NULL) { |
diff --git a/libbb/read_package_field.c b/libbb/read_package_field.c deleted file mode 100644 index 9e5590347..000000000 --- a/libbb/read_package_field.c +++ /dev/null | |||
@@ -1,101 +0,0 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | ||
2 | /* | ||
3 | * Utility routines. | ||
4 | * | ||
5 | * Copyright (C) many different people. | ||
6 | * If you wrote this, please acknowledge your work. | ||
7 | * | ||
8 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | ||
9 | */ | ||
10 | |||
11 | #include <stdlib.h> | ||
12 | #include <string.h> | ||
13 | #include "libbb.h" | ||
14 | |||
15 | /* | ||
16 | * Gets the next package field from package_buffer, seperated into the field name | ||
17 | * and field value, it returns the int offset to the first character of the next field | ||
18 | */ | ||
19 | int read_package_field(const char *package_buffer, char **field_name, char **field_value) | ||
20 | { | ||
21 | int offset_name_start = 0; | ||
22 | int offset_name_end = 0; | ||
23 | int offset_value_start = 0; | ||
24 | int offset_value_end = 0; | ||
25 | int offset = 0; | ||
26 | int next_offset; | ||
27 | int name_length; | ||
28 | int value_length; | ||
29 | int exit_flag = FALSE; | ||
30 | |||
31 | if (package_buffer == NULL) { | ||
32 | *field_name = NULL; | ||
33 | *field_value = NULL; | ||
34 | return(-1); | ||
35 | } | ||
36 | while (1) { | ||
37 | next_offset = offset + 1; | ||
38 | switch (package_buffer[offset]) { | ||
39 | case('\0'): | ||
40 | exit_flag = TRUE; | ||
41 | break; | ||
42 | case(':'): | ||
43 | if (offset_name_end == 0) { | ||
44 | offset_name_end = offset; | ||
45 | offset_value_start = next_offset; | ||
46 | } | ||
47 | /* TODO: Name might still have trailing spaces if ':' isnt | ||
48 | * immediately after name */ | ||
49 | break; | ||
50 | case('\n'): | ||
51 | /* TODO: The char next_offset may be out of bounds */ | ||
52 | if (package_buffer[next_offset] != ' ') { | ||
53 | exit_flag = TRUE; | ||
54 | break; | ||
55 | } | ||
56 | case('\t'): | ||
57 | case(' '): | ||
58 | /* increment the value start point if its a just filler */ | ||
59 | if (offset_name_start == offset) { | ||
60 | offset_name_start++; | ||
61 | } | ||
62 | if (offset_value_start == offset) { | ||
63 | offset_value_start++; | ||
64 | } | ||
65 | break; | ||
66 | } | ||
67 | if (exit_flag) { | ||
68 | /* Check that the names are valid */ | ||
69 | offset_value_end = offset; | ||
70 | name_length = offset_name_end - offset_name_start; | ||
71 | value_length = offset_value_end - offset_value_start; | ||
72 | if (name_length == 0) { | ||
73 | break; | ||
74 | } | ||
75 | if ((name_length > 0) && (value_length > 0)) { | ||
76 | break; | ||
77 | } | ||
78 | |||
79 | /* If not valid, start fresh with next field */ | ||
80 | exit_flag = FALSE; | ||
81 | offset_name_start = offset + 1; | ||
82 | offset_name_end = 0; | ||
83 | offset_value_start = offset + 1; | ||
84 | offset_value_end = offset + 1; | ||
85 | offset++; | ||
86 | } | ||
87 | offset++; | ||
88 | } | ||
89 | if (name_length == 0) { | ||
90 | *field_name = NULL; | ||
91 | } else { | ||
92 | *field_name = bb_xstrndup(&package_buffer[offset_name_start], name_length); | ||
93 | } | ||
94 | if (value_length > 0) { | ||
95 | *field_value = bb_xstrndup(&package_buffer[offset_value_start], value_length); | ||
96 | } else { | ||
97 | *field_value = NULL; | ||
98 | } | ||
99 | return(next_offset); | ||
100 | } | ||
101 | |||
diff --git a/libbb/recursive_action.c b/libbb/recursive_action.c index a30addc4f..d491b781b 100644 --- a/libbb/recursive_action.c +++ b/libbb/recursive_action.c | |||
@@ -7,11 +7,6 @@ | |||
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <stdio.h> | ||
11 | #include <string.h> | ||
12 | #include <dirent.h> | ||
13 | #include <sys/stat.h> | ||
14 | #include <stdlib.h> /* free() */ | ||
15 | #include "libbb.h" | 10 | #include "libbb.h" |
16 | 11 | ||
17 | #undef DEBUG_RECURS_ACTION | 12 | #undef DEBUG_RECURS_ACTION |
@@ -82,7 +77,7 @@ int recursive_action(const char *fileName, | |||
82 | } else if (status == SKIP) | 77 | } else if (status == SKIP) |
83 | return TRUE; | 78 | return TRUE; |
84 | } | 79 | } |
85 | dir = bb_opendir(fileName); | 80 | dir = opendir(fileName); |
86 | if (!dir) { | 81 | if (!dir) { |
87 | return FALSE; | 82 | return FALSE; |
88 | } | 83 | } |
diff --git a/libbb/remove_file.c b/libbb/remove_file.c index 2fa6596ee..92534a1c5 100644 --- a/libbb/remove_file.c +++ b/libbb/remove_file.c | |||
@@ -59,7 +59,7 @@ int remove_file(const char *path, int flags) | |||
59 | return 0; | 59 | return 0; |
60 | } | 60 | } |
61 | 61 | ||
62 | if ((dp = bb_opendir(path)) == NULL) { | 62 | if ((dp = opendir(path)) == NULL) { |
63 | return -1; | 63 | return -1; |
64 | } | 64 | } |
65 | 65 | ||
diff --git a/libbb/run_shell.c b/libbb/run_shell.c index d5dc37b54..86cb0b056 100644 --- a/libbb/run_shell.c +++ b/libbb/run_shell.c | |||
@@ -82,10 +82,10 @@ void run_shell ( const char *shell, int loginshell, const char *command, const c | |||
82 | 82 | ||
83 | args = (const char **) xmalloc (sizeof (char *) * ( 4 + additional_args_cnt )); | 83 | args = (const char **) xmalloc (sizeof (char *) * ( 4 + additional_args_cnt )); |
84 | 84 | ||
85 | args [0] = bb_get_last_path_component ( bb_xstrdup ( shell )); | 85 | args [0] = bb_get_last_path_component ( xstrdup ( shell )); |
86 | 86 | ||
87 | if ( loginshell ) | 87 | if ( loginshell ) |
88 | args [0] = bb_xasprintf ("-%s", args [0]); | 88 | args [0] = xasprintf ("-%s", args [0]); |
89 | 89 | ||
90 | if ( command ) { | 90 | if ( command ) { |
91 | args [argno++] = "-c"; | 91 | args [argno++] = "-c"; |
diff --git a/libbb/simplify_path.c b/libbb/simplify_path.c index 171798e60..b714c66b6 100644 --- a/libbb/simplify_path.c +++ b/libbb/simplify_path.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <stdlib.h> | ||
11 | #include "libbb.h" | 10 | #include "libbb.h" |
12 | 11 | ||
13 | char *bb_simplify_path(const char *path) | 12 | char *bb_simplify_path(const char *path) |
@@ -15,7 +14,7 @@ char *bb_simplify_path(const char *path) | |||
15 | char *s, *start, *p; | 14 | char *s, *start, *p; |
16 | 15 | ||
17 | if (path[0] == '/') | 16 | if (path[0] == '/') |
18 | start = bb_xstrdup(path); | 17 | start = xstrdup(path); |
19 | else { | 18 | else { |
20 | s = xgetcwd(NULL); | 19 | s = xgetcwd(NULL); |
21 | start = concat_path_file(s, path); | 20 | start = concat_path_file(s, path); |
diff --git a/libbb/xconnect.c b/libbb/xconnect.c index 39052b87b..ce1081d59 100644 --- a/libbb/xconnect.c +++ b/libbb/xconnect.c | |||
@@ -6,16 +6,6 @@ | |||
6 | * | 6 | * |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <unistd.h> | ||
10 | #include <string.h> | ||
11 | #include <stdlib.h> | ||
12 | #include <sys/types.h> | ||
13 | #include <sys/socket.h> | ||
14 | #include <errno.h> | ||
15 | #include <netdb.h> | ||
16 | #include <sys/socket.h> | ||
17 | #include <netinet/in.h> | ||
18 | #include <arpa/inet.h> | ||
19 | #include "libbb.h" | 9 | #include "libbb.h" |
20 | 10 | ||
21 | /* Return network byte ordered port number for a service. | 11 | /* Return network byte ordered port number for a service. |
@@ -61,7 +51,7 @@ void bb_lookup_host(struct sockaddr_in *s_in, const char *host) | |||
61 | 51 | ||
62 | int xconnect(struct sockaddr_in *s_addr) | 52 | int xconnect(struct sockaddr_in *s_addr) |
63 | { | 53 | { |
64 | int s = bb_xsocket(AF_INET, SOCK_STREAM, 0); | 54 | int s = xsocket(AF_INET, SOCK_STREAM, 0); |
65 | if (connect(s, (struct sockaddr *)s_addr, sizeof(struct sockaddr_in)) < 0) | 55 | if (connect(s, (struct sockaddr *)s_addr, sizeof(struct sockaddr_in)) < 0) |
66 | { | 56 | { |
67 | if (ENABLE_FEATURE_CLEAN_UP) close(s); | 57 | if (ENABLE_FEATURE_CLEAN_UP) close(s); |
diff --git a/libbb/xfuncs.c b/libbb/xfuncs.c index 8562a4fcb..699d09c67 100644 --- a/libbb/xfuncs.c +++ b/libbb/xfuncs.c | |||
@@ -3,18 +3,12 @@ | |||
3 | * Utility routines. | 3 | * Utility routines. |
4 | * | 4 | * |
5 | * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> | 5 | * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> |
6 | * Copyright (C) 2006 Rob Landley | ||
7 | * Copyright (C) 2006 Denis Vlasenko | ||
6 | * | 8 | * |
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 9 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
8 | */ | 10 | */ |
9 | 11 | ||
10 | #include <sys/types.h> | ||
11 | #include <sys/stat.h> | ||
12 | #include <sys/wait.h> | ||
13 | #include <stdio.h> | ||
14 | #include <string.h> | ||
15 | #include <stdlib.h> | ||
16 | #include <unistd.h> | ||
17 | #include <fcntl.h> | ||
18 | #include "busybox.h" | 12 | #include "busybox.h" |
19 | 13 | ||
20 | #ifndef DMALLOC | 14 | #ifndef DMALLOC |
@@ -59,7 +53,7 @@ void *xcalloc(size_t nmemb, size_t size) | |||
59 | #endif /* DMALLOC */ | 53 | #endif /* DMALLOC */ |
60 | 54 | ||
61 | #ifdef L_xstrdup | 55 | #ifdef L_xstrdup |
62 | char * bb_xstrdup (const char *s) | 56 | char * xstrdup (const char *s) |
63 | { | 57 | { |
64 | char *t; | 58 | char *t; |
65 | 59 | ||
@@ -76,12 +70,12 @@ char * bb_xstrdup (const char *s) | |||
76 | #endif | 70 | #endif |
77 | 71 | ||
78 | #ifdef L_xstrndup | 72 | #ifdef L_xstrndup |
79 | char * bb_xstrndup (const char *s, int n) | 73 | char * xstrndup (const char *s, int n) |
80 | { | 74 | { |
81 | char *t; | 75 | char *t; |
82 | 76 | ||
83 | if (ENABLE_DEBUG && s == NULL) | 77 | if (ENABLE_DEBUG && s == NULL) |
84 | bb_error_msg_and_die("bb_xstrndup bug"); | 78 | bb_error_msg_and_die("xstrndup bug"); |
85 | 79 | ||
86 | t = xmalloc(++n); | 80 | t = xmalloc(++n); |
87 | 81 | ||
@@ -90,7 +84,7 @@ char * bb_xstrndup (const char *s, int n) | |||
90 | #endif | 84 | #endif |
91 | 85 | ||
92 | #ifdef L_xfopen | 86 | #ifdef L_xfopen |
93 | FILE *bb_xfopen(const char *path, const char *mode) | 87 | FILE *xfopen(const char *path, const char *mode) |
94 | { | 88 | { |
95 | FILE *fp; | 89 | FILE *fp; |
96 | if ((fp = fopen(path, mode)) == NULL) | 90 | if ((fp = fopen(path, mode)) == NULL) |
@@ -100,14 +94,14 @@ FILE *bb_xfopen(const char *path, const char *mode) | |||
100 | #endif | 94 | #endif |
101 | 95 | ||
102 | #ifdef L_xopen | 96 | #ifdef L_xopen |
103 | int bb_xopen(const char *pathname, int flags) | 97 | int xopen(const char *pathname, int flags) |
104 | { | 98 | { |
105 | return bb_xopen3(pathname, flags, 0777); | 99 | return xopen3(pathname, flags, 0777); |
106 | } | 100 | } |
107 | #endif | 101 | #endif |
108 | 102 | ||
109 | #ifdef L_xopen3 | 103 | #ifdef L_xopen3 |
110 | int bb_xopen3(const char *pathname, int flags, int mode) | 104 | int xopen3(const char *pathname, int flags, int mode) |
111 | { | 105 | { |
112 | int ret; | 106 | int ret; |
113 | 107 | ||
@@ -175,7 +169,7 @@ unsigned char xread_char(int fd) | |||
175 | #endif | 169 | #endif |
176 | 170 | ||
177 | #ifdef L_xferror | 171 | #ifdef L_xferror |
178 | void bb_xferror(FILE *fp, const char *fn) | 172 | void xferror(FILE *fp, const char *fn) |
179 | { | 173 | { |
180 | if (ferror(fp)) { | 174 | if (ferror(fp)) { |
181 | bb_error_msg_and_die("%s", fn); | 175 | bb_error_msg_and_die("%s", fn); |
@@ -184,14 +178,14 @@ void bb_xferror(FILE *fp, const char *fn) | |||
184 | #endif | 178 | #endif |
185 | 179 | ||
186 | #ifdef L_xferror_stdout | 180 | #ifdef L_xferror_stdout |
187 | void bb_xferror_stdout(void) | 181 | void xferror_stdout(void) |
188 | { | 182 | { |
189 | bb_xferror(stdout, bb_msg_standard_output); | 183 | xferror(stdout, bb_msg_standard_output); |
190 | } | 184 | } |
191 | #endif | 185 | #endif |
192 | 186 | ||
193 | #ifdef L_xfflush_stdout | 187 | #ifdef L_xfflush_stdout |
194 | void bb_xfflush_stdout(void) | 188 | void xfflush_stdout(void) |
195 | { | 189 | { |
196 | if (fflush(stdout)) { | 190 | if (fflush(stdout)) { |
197 | bb_perror_msg_and_die(bb_msg_standard_output); | 191 | bb_perror_msg_and_die(bb_msg_standard_output); |
@@ -201,7 +195,7 @@ void bb_xfflush_stdout(void) | |||
201 | 195 | ||
202 | #ifdef L_spawn | 196 | #ifdef L_spawn |
203 | // This does a fork/exec in one call, using vfork(). | 197 | // This does a fork/exec in one call, using vfork(). |
204 | pid_t bb_spawn(char **argv) | 198 | pid_t spawn(char **argv) |
205 | { | 199 | { |
206 | static int failed; | 200 | static int failed; |
207 | pid_t pid; | 201 | pid_t pid; |
@@ -226,9 +220,9 @@ pid_t bb_spawn(char **argv) | |||
226 | #endif | 220 | #endif |
227 | 221 | ||
228 | #ifdef L_xspawn | 222 | #ifdef L_xspawn |
229 | pid_t bb_xspawn(char **argv) | 223 | pid_t xspawn(char **argv) |
230 | { | 224 | { |
231 | pid_t pid = bb_spawn(argv); | 225 | pid_t pid = spawn(argv); |
232 | if (pid < 0) bb_perror_msg_and_die("%s", *argv); | 226 | if (pid < 0) bb_perror_msg_and_die("%s", *argv); |
233 | return pid; | 227 | return pid; |
234 | } | 228 | } |
@@ -347,3 +341,107 @@ off_t fdlength(int fd) | |||
347 | return pos + 1; | 341 | return pos + 1; |
348 | } | 342 | } |
349 | #endif | 343 | #endif |
344 | |||
345 | #ifdef L_xasprintf | ||
346 | char *xasprintf(const char *format, ...) | ||
347 | { | ||
348 | va_list p; | ||
349 | int r; | ||
350 | char *string_ptr; | ||
351 | |||
352 | #if 1 | ||
353 | // GNU extension | ||
354 | va_start(p, format); | ||
355 | r = vasprintf(&string_ptr, format, p); | ||
356 | va_end(p); | ||
357 | #else | ||
358 | // Bloat for systems that haven't got the GNU extension. | ||
359 | va_start(p, format); | ||
360 | r = vsnprintf(NULL, 0, format, p); | ||
361 | va_end(p); | ||
362 | string_ptr = xmalloc(r+1); | ||
363 | va_start(p, format); | ||
364 | r = vsnprintf(string_ptr, r+1, format, p); | ||
365 | va_end(p); | ||
366 | #endif | ||
367 | |||
368 | if (r < 0) bb_perror_msg_and_die("xasprintf"); | ||
369 | return string_ptr; | ||
370 | } | ||
371 | #endif | ||
372 | |||
373 | #ifdef L_xprint_and_close_file | ||
374 | void xprint_and_close_file(FILE *file) | ||
375 | { | ||
376 | // copyfd outputs error messages for us. | ||
377 | if (bb_copyfd_eof(fileno(file), 1) == -1) exit(bb_default_error_retval); | ||
378 | |||
379 | fclose(file); | ||
380 | } | ||
381 | #endif | ||
382 | |||
383 | #ifdef L_xchdir | ||
384 | void xchdir(const char *path) | ||
385 | { | ||
386 | if (chdir(path)) | ||
387 | bb_perror_msg_and_die("chdir(%s)", path); | ||
388 | } | ||
389 | #endif | ||
390 | |||
391 | #ifdef L_warn_opendir | ||
392 | DIR *warn_opendir(const char *path) | ||
393 | { | ||
394 | DIR *dp; | ||
395 | |||
396 | if ((dp = opendir(path)) == NULL) { | ||
397 | bb_perror_msg("unable to open `%s'", path); | ||
398 | return NULL; | ||
399 | } | ||
400 | return dp; | ||
401 | } | ||
402 | #endif | ||
403 | |||
404 | #ifdef L_xopendir | ||
405 | DIR *xopendir(const char *path) | ||
406 | { | ||
407 | DIR *dp; | ||
408 | |||
409 | if ((dp = opendir(path)) == NULL) | ||
410 | bb_perror_msg_and_die("unable to open `%s'", path); | ||
411 | return dp; | ||
412 | } | ||
413 | #endif | ||
414 | |||
415 | #ifdef L_xdaemon | ||
416 | #ifndef BB_NOMMU | ||
417 | void xdaemon(int nochdir, int noclose) | ||
418 | { | ||
419 | if (daemon(nochdir, noclose)) bb_perror_msg_and_die("daemon"); | ||
420 | } | ||
421 | #endif | ||
422 | #endif | ||
423 | |||
424 | #ifdef L_xbind | ||
425 | void xbind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen) | ||
426 | { | ||
427 | if (bind(sockfd, my_addr, addrlen)) bb_perror_msg_and_die("bind"); | ||
428 | } | ||
429 | #endif | ||
430 | |||
431 | #ifdef L_xsocket | ||
432 | int xsocket(int domain, int type, int protocol) | ||
433 | { | ||
434 | int r = socket(domain, type, protocol); | ||
435 | |||
436 | if (r < 0) bb_perror_msg_and_die("socket"); | ||
437 | |||
438 | return r; | ||
439 | } | ||
440 | #endif | ||
441 | |||
442 | #ifdef L_xlisten | ||
443 | void xlisten(int s, int backlog) | ||
444 | { | ||
445 | if (listen(s, backlog)) bb_perror_msg_and_die("listen"); | ||
446 | } | ||
447 | #endif | ||
diff --git a/loginutils/addgroup.c b/loginutils/addgroup.c index f4962ffb9..f5a99b796 100644 --- a/loginutils/addgroup.c +++ b/loginutils/addgroup.c | |||
@@ -9,11 +9,6 @@ | |||
9 | * | 9 | * |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <stdio.h> | ||
13 | #include <string.h> | ||
14 | #include <sys/types.h> | ||
15 | #include <unistd.h> | ||
16 | |||
17 | #include "busybox.h" | 12 | #include "busybox.h" |
18 | 13 | ||
19 | /* make sure gr_name isn't taken, make sure gid is kosher | 14 | /* make sure gr_name isn't taken, make sure gid is kosher |
@@ -26,7 +21,7 @@ static int group_study(struct group *g) | |||
26 | struct group *grp; | 21 | struct group *grp; |
27 | const int max = 65000; | 22 | const int max = 65000; |
28 | 23 | ||
29 | etc_group = bb_xfopen(bb_path_group_file, "r"); | 24 | etc_group = xfopen(bb_path_group_file, "r"); |
30 | 25 | ||
31 | /* make sure gr_name isn't taken, make sure gid is kosher */ | 26 | /* make sure gr_name isn't taken, make sure gid is kosher */ |
32 | desired = g->gr_gid; | 27 | desired = g->gr_gid; |
@@ -67,13 +62,13 @@ static int addgroup(char *group, gid_t gid, const char *user) | |||
67 | return 1; | 62 | return 1; |
68 | 63 | ||
69 | /* add entry to group */ | 64 | /* add entry to group */ |
70 | file = bb_xfopen(bb_path_group_file, "a"); | 65 | file = xfopen(bb_path_group_file, "a"); |
71 | /* group:passwd:gid:userlist */ | 66 | /* group:passwd:gid:userlist */ |
72 | fprintf(file, "%s:%s:%d:%s\n", group, "x", gr.gr_gid, user); | 67 | fprintf(file, "%s:%s:%d:%s\n", group, "x", gr.gr_gid, user); |
73 | fclose(file); | 68 | fclose(file); |
74 | 69 | ||
75 | #if ENABLE_FEATURE_SHADOWPASSWDS | 70 | #if ENABLE_FEATURE_SHADOWPASSWDS |
76 | file = bb_xfopen(bb_path_gshadow_file, "a"); | 71 | file = xfopen(bb_path_gshadow_file, "a"); |
77 | fprintf(file, "%s:!::\n", group); | 72 | fprintf(file, "%s:!::\n", group); |
78 | fclose(file); | 73 | fclose(file); |
79 | #endif | 74 | #endif |
diff --git a/loginutils/adduser.c b/loginutils/adduser.c index a640ece3b..0133d8288 100644 --- a/loginutils/adduser.c +++ b/loginutils/adduser.c | |||
@@ -8,14 +8,6 @@ | |||
8 | * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. | 8 | * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <stdio.h> | ||
12 | #include <sys/types.h> | ||
13 | #include <string.h> | ||
14 | #include <unistd.h> | ||
15 | #include <time.h> | ||
16 | #include <getopt.h> | ||
17 | #include <sys/stat.h> | ||
18 | |||
19 | #include "busybox.h" | 11 | #include "busybox.h" |
20 | 12 | ||
21 | #define DONT_SET_PASS (1 << 4) | 13 | #define DONT_SET_PASS (1 << 4) |
@@ -32,7 +24,7 @@ static int passwd_study(const char *filename, struct passwd *p) | |||
32 | const int min = 500; | 24 | const int min = 500; |
33 | const int max = 65000; | 25 | const int max = 65000; |
34 | 26 | ||
35 | passwd = bb_xfopen(filename, "r"); | 27 | passwd = xfopen(filename, "r"); |
36 | 28 | ||
37 | /* EDR if uid is out of bounds, set to min */ | 29 | /* EDR if uid is out of bounds, set to min */ |
38 | if ((p->pw_uid > max) || (p->pw_uid < min)) | 30 | if ((p->pw_uid > max) || (p->pw_uid < min)) |
@@ -78,7 +70,7 @@ static void addgroup_wrapper(struct passwd *p) | |||
78 | { | 70 | { |
79 | char *cmd; | 71 | char *cmd; |
80 | 72 | ||
81 | cmd = bb_xasprintf("addgroup -g %d \"%s\"", p->pw_gid, p->pw_name); | 73 | cmd = xasprintf("addgroup -g %d \"%s\"", p->pw_gid, p->pw_name); |
82 | system(cmd); | 74 | system(cmd); |
83 | free(cmd); | 75 | free(cmd); |
84 | } | 76 | } |
@@ -99,7 +91,7 @@ static int adduser(struct passwd *p, unsigned long flags) | |||
99 | int addgroup = !p->pw_gid; | 91 | int addgroup = !p->pw_gid; |
100 | 92 | ||
101 | /* make sure everything is kosher and setup uid && gid */ | 93 | /* make sure everything is kosher and setup uid && gid */ |
102 | file = bb_xfopen(bb_path_passwd_file, "a"); | 94 | file = xfopen(bb_path_passwd_file, "a"); |
103 | fseek(file, 0, SEEK_END); | 95 | fseek(file, 0, SEEK_END); |
104 | 96 | ||
105 | switch (passwd_study(bb_path_passwd_file, p)) { | 97 | switch (passwd_study(bb_path_passwd_file, p)) { |
@@ -119,7 +111,7 @@ static int adduser(struct passwd *p, unsigned long flags) | |||
119 | 111 | ||
120 | #if ENABLE_FEATURE_SHADOWPASSWDS | 112 | #if ENABLE_FEATURE_SHADOWPASSWDS |
121 | /* add to shadow if necessary */ | 113 | /* add to shadow if necessary */ |
122 | file = bb_xfopen(bb_path_shadow_file, "a"); | 114 | file = xfopen(bb_path_shadow_file, "a"); |
123 | fseek(file, 0, SEEK_END); | 115 | fseek(file, 0, SEEK_END); |
124 | fprintf(file, "%s:!:%ld:%d:%d:%d:::\n", | 116 | fprintf(file, "%s:!:%ld:%d:%d:%d:::\n", |
125 | p->pw_name, /* username */ | 117 | p->pw_name, /* username */ |
diff --git a/loginutils/getty.c b/loginutils/getty.c index 2d05d9a1c..ebb107d4b 100644 --- a/loginutils/getty.c +++ b/loginutils/getty.c | |||
@@ -16,19 +16,6 @@ | |||
16 | * | 16 | * |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <stdio.h> | ||
20 | #include <stdlib.h> | ||
21 | #include <unistd.h> | ||
22 | #include <string.h> | ||
23 | #include <sys/ioctl.h> | ||
24 | #include <errno.h> | ||
25 | #include <sys/stat.h> | ||
26 | #include <signal.h> | ||
27 | #include <fcntl.h> | ||
28 | #include <stdarg.h> | ||
29 | #include <ctype.h> | ||
30 | #include <getopt.h> | ||
31 | #include <termios.h> | ||
32 | #include "busybox.h" | 19 | #include "busybox.h" |
33 | 20 | ||
34 | #ifdef CONFIG_FEATURE_UTMP | 21 | #ifdef CONFIG_FEATURE_UTMP |
@@ -324,7 +311,7 @@ static void parse_args(int argc, char **argv, struct options *op) | |||
324 | const char *p = op->initstring; | 311 | const char *p = op->initstring; |
325 | char *q; | 312 | char *q; |
326 | 313 | ||
327 | q = op->initstring = bb_xstrdup(op->initstring); | 314 | q = op->initstring = xstrdup(op->initstring); |
328 | /* copy optarg into op->initstring decoding \ddd | 315 | /* copy optarg into op->initstring decoding \ddd |
329 | octal codes into chars */ | 316 | octal codes into chars */ |
330 | while (*p) { | 317 | while (*p) { |
@@ -858,7 +845,7 @@ int getty_main(int argc, char **argv) | |||
858 | }; | 845 | }; |
859 | 846 | ||
860 | #ifdef DEBUGGING | 847 | #ifdef DEBUGGING |
861 | dbf = bb_xfopen(DEBUGTERM, "w"); | 848 | dbf = xfopen(DEBUGTERM, "w"); |
862 | 849 | ||
863 | { | 850 | { |
864 | int i; | 851 | int i; |
diff --git a/loginutils/passwd.c b/loginutils/passwd.c index 7745444c0..aa75dd260 100644 --- a/loginutils/passwd.c +++ b/loginutils/passwd.c | |||
@@ -3,20 +3,8 @@ | |||
3 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 3 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
4 | */ | 4 | */ |
5 | 5 | ||
6 | #include <fcntl.h> | ||
7 | #include <stdio.h> | ||
8 | #include <string.h> | ||
9 | #include <signal.h> | ||
10 | #include <sys/stat.h> | ||
11 | #include <sys/types.h> | ||
12 | #include <unistd.h> | ||
13 | #include <utime.h> | ||
14 | #include <syslog.h> | ||
15 | #include <time.h> | ||
16 | #include <sys/resource.h> | ||
17 | #include <errno.h> | ||
18 | |||
19 | #include "busybox.h" | 6 | #include "busybox.h" |
7 | #include <syslog.h> | ||
20 | 8 | ||
21 | static char crypt_passwd[128]; | 9 | static char crypt_passwd[128]; |
22 | 10 | ||
@@ -170,7 +158,7 @@ int passwd_main(int argc, char **argv) | |||
170 | bb_show_usage(); | 158 | bb_show_usage(); |
171 | } | 159 | } |
172 | } | 160 | } |
173 | myname = (char *) bb_xstrdup(bb_getpwuid(NULL, getuid(), -1)); | 161 | myname = (char *) xstrdup(bb_getpwuid(NULL, getuid(), -1)); |
174 | /* exits on error */ | 162 | /* exits on error */ |
175 | if (optind < argc) { | 163 | if (optind < argc) { |
176 | name = argv[optind]; | 164 | name = argv[optind]; |
diff --git a/loginutils/su.c b/loginutils/su.c index 660ec6f51..6410e748f 100644 --- a/loginutils/su.c +++ b/loginutils/su.c | |||
@@ -6,11 +6,7 @@ | |||
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include "busybox.h" | 8 | #include "busybox.h" |
9 | #include <signal.h> | ||
10 | #include <syslog.h> | 9 | #include <syslog.h> |
11 | #include <sys/resource.h> | ||
12 | #include <time.h> | ||
13 | |||
14 | 10 | ||
15 | int su_main ( int argc, char **argv ) | 11 | int su_main ( int argc, char **argv ) |
16 | { | 12 | { |
@@ -43,7 +39,7 @@ int su_main ( int argc, char **argv ) | |||
43 | the user, especially if someone su's from a su-shell. | 39 | the user, especially if someone su's from a su-shell. |
44 | But getlogin can fail -- usually due to lack of utmp entry. | 40 | But getlogin can fail -- usually due to lack of utmp entry. |
45 | in this case resort to getpwuid. */ | 41 | in this case resort to getpwuid. */ |
46 | old_user = bb_xstrdup(USE_FEATURE_UTMP(getlogin() ? : ) (pw = getpwuid(cur_uid)) ? pw->pw_name : ""); | 42 | old_user = xstrdup(USE_FEATURE_UTMP(getlogin() ? : ) (pw = getpwuid(cur_uid)) ? pw->pw_name : ""); |
47 | tty = ttyname(2) ? : "none"; | 43 | tty = ttyname(2) ? : "none"; |
48 | openlog(bb_applet_name, 0, LOG_AUTH); | 44 | openlog(bb_applet_name, 0, LOG_AUTH); |
49 | } | 45 | } |
diff --git a/loginutils/vlock.c b/loginutils/vlock.c index a35f9e0ec..b4426ad41 100644 --- a/loginutils/vlock.c +++ b/loginutils/vlock.c | |||
@@ -16,18 +16,8 @@ | |||
16 | /* Fixed by Erik Andersen to do passwords the tinylogin way... | 16 | /* Fixed by Erik Andersen to do passwords the tinylogin way... |
17 | * It now works with md5, sha1, etc passwords. */ | 17 | * It now works with md5, sha1, etc passwords. */ |
18 | 18 | ||
19 | #include <stdio.h> | ||
20 | #include <stdlib.h> | ||
21 | #include <sys/vt.h> | ||
22 | #include <signal.h> | ||
23 | #include <string.h> | ||
24 | #include <unistd.h> | ||
25 | #include <fcntl.h> | ||
26 | #include <errno.h> | ||
27 | #include <sys/ioctl.h> | ||
28 | #include <termios.h> | ||
29 | |||
30 | #include "busybox.h" | 19 | #include "busybox.h" |
20 | #include <sys/vt.h> | ||
31 | 21 | ||
32 | static struct passwd *pw; | 22 | static struct passwd *pw; |
33 | static struct vt_mode ovtm; | 23 | static struct vt_mode ovtm; |
@@ -71,7 +61,7 @@ int vlock_main(int argc, char **argv) | |||
71 | bb_error_msg_and_die("Unknown uid %d", getuid()); | 61 | bb_error_msg_and_die("Unknown uid %d", getuid()); |
72 | } | 62 | } |
73 | 63 | ||
74 | vfd = bb_xopen(CURRENT_TTY, O_RDWR); | 64 | vfd = xopen(CURRENT_TTY, O_RDWR); |
75 | 65 | ||
76 | if (ioctl(vfd, VT_GETMODE, &vtm) < 0) { | 66 | if (ioctl(vfd, VT_GETMODE, &vtm) < 0) { |
77 | bb_perror_msg_and_die("VT_GETMODE"); | 67 | bb_perror_msg_and_die("VT_GETMODE"); |
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); | |||
47 | static int GetReplaceStream(const char *user, const char *file); | 31 | static int GetReplaceStream(const char *user, const char *file); |
48 | static int ChangeUser(const char *user, short dochdir); | 32 | static int ChangeUser(const char *user, short dochdir); |
49 | 33 | ||
50 | int | 34 | int crontab_main(int ac, char **av) |
51 | crontab_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 | ||
247 | static int | 230 | static int GetReplaceStream(const char *user, const char *file) |
248 | GetReplaceStream(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 | ||
296 | static void | 278 | static void EditFile(const char *user, const char *file) |
297 | EditFile(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 | ||
327 | static int | 308 | static int ChangeUser(const char *user, short dochdir) |
328 | ChangeUser(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 |
22 | int makedevs_main(int argc, char **argv) | 13 | int 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 | ||
18 | int mountpoint_main(int argc, char **argv) | 14 | int 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 | ||
13 | struct mt_opcodes { | 9 | struct 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 | /* |
diff --git a/modutils/insmod.c b/modutils/insmod.c index 3113f7446..be41e4449 100644 --- a/modutils/insmod.c +++ b/modutils/insmod.c | |||
@@ -59,17 +59,6 @@ | |||
59 | */ | 59 | */ |
60 | 60 | ||
61 | #include "busybox.h" | 61 | #include "busybox.h" |
62 | #include <stdlib.h> | ||
63 | #include <stdio.h> | ||
64 | #include <stddef.h> | ||
65 | #include <errno.h> | ||
66 | #include <unistd.h> | ||
67 | #include <dirent.h> | ||
68 | #include <ctype.h> | ||
69 | #include <assert.h> | ||
70 | #include <string.h> | ||
71 | #include <getopt.h> | ||
72 | #include <fcntl.h> | ||
73 | #include <sys/utsname.h> | 62 | #include <sys/utsname.h> |
74 | 63 | ||
75 | #if !defined(CONFIG_FEATURE_2_4_MODULES) && \ | 64 | #if !defined(CONFIG_FEATURE_2_4_MODULES) && \ |
@@ -804,12 +793,12 @@ static int check_module_name_match(const char *filename, struct stat *statbuf, | |||
804 | if (fullname[0] == '\0') | 793 | if (fullname[0] == '\0') |
805 | return (FALSE); | 794 | return (FALSE); |
806 | else { | 795 | else { |
807 | char *tmp, *tmp1 = bb_xstrdup(filename); | 796 | char *tmp, *tmp1 = xstrdup(filename); |
808 | tmp = bb_get_last_path_component(tmp1); | 797 | tmp = bb_get_last_path_component(tmp1); |
809 | if (strcmp(tmp, fullname) == 0) { | 798 | if (strcmp(tmp, fullname) == 0) { |
810 | free(tmp1); | 799 | free(tmp1); |
811 | /* Stop searching if we find a match */ | 800 | /* Stop searching if we find a match */ |
812 | m_filename = bb_xstrdup(filename); | 801 | m_filename = xstrdup(filename); |
813 | return (FALSE); | 802 | return (FALSE); |
814 | } | 803 | } |
815 | free(tmp1); | 804 | free(tmp1); |
@@ -893,7 +882,6 @@ arch_apply_relocation(struct obj_file *f, | |||
893 | * (which is .got) similar to branch, | 882 | * (which is .got) similar to branch, |
894 | * but is full 32 bits relative */ | 883 | * but is full 32 bits relative */ |
895 | 884 | ||
896 | assert(got != 0); | ||
897 | *loc += got - dot; | 885 | *loc += got - dot; |
898 | break; | 886 | break; |
899 | 887 | ||
@@ -902,7 +890,6 @@ arch_apply_relocation(struct obj_file *f, | |||
902 | goto bb_use_plt; | 890 | goto bb_use_plt; |
903 | 891 | ||
904 | case R_ARM_GOTOFF: /* address relative to the got */ | 892 | case R_ARM_GOTOFF: /* address relative to the got */ |
905 | assert(got != 0); | ||
906 | *loc += v - got; | 893 | *loc += v - got; |
907 | break; | 894 | break; |
908 | 895 | ||
@@ -972,7 +959,6 @@ arch_apply_relocation(struct obj_file *f, | |||
972 | break; | 959 | break; |
973 | 960 | ||
974 | case R_386_GOTPC: | 961 | case R_386_GOTPC: |
975 | assert(got != 0); | ||
976 | *loc += got - dot; | 962 | *loc += got - dot; |
977 | break; | 963 | break; |
978 | 964 | ||
@@ -980,7 +966,6 @@ arch_apply_relocation(struct obj_file *f, | |||
980 | goto bb_use_got; | 966 | goto bb_use_got; |
981 | 967 | ||
982 | case R_386_GOTOFF: | 968 | case R_386_GOTOFF: |
983 | assert(got != 0); | ||
984 | *loc += v - got; | 969 | *loc += v - got; |
985 | break; | 970 | break; |
986 | 971 | ||
@@ -1102,7 +1087,6 @@ arch_apply_relocation(struct obj_file *f, | |||
1102 | 1087 | ||
1103 | # ifdef R_68K_GOTOFF | 1088 | # ifdef R_68K_GOTOFF |
1104 | case R_68K_GOTOFF: | 1089 | case R_68K_GOTOFF: |
1105 | assert(got != 0); | ||
1106 | *loc += v - got; | 1090 | *loc += v - got; |
1107 | break; | 1091 | break; |
1108 | # endif | 1092 | # endif |
@@ -1157,9 +1141,6 @@ arch_apply_relocation(struct obj_file *f, | |||
1157 | struct mips_hi16 *next; | 1141 | struct mips_hi16 *next; |
1158 | unsigned long insn; | 1142 | unsigned long insn; |
1159 | 1143 | ||
1160 | /* The value for the HI16 had best be the same. */ | ||
1161 | assert(v == l->value); | ||
1162 | |||
1163 | /* Do the HI16 relocation. Note that we actually don't | 1144 | /* Do the HI16 relocation. Note that we actually don't |
1164 | need to know anything about the LO16 itself, except where | 1145 | need to know anything about the LO16 itself, except where |
1165 | to find the low 16 bits of the addend needed by the LO16. */ | 1146 | to find the low 16 bits of the addend needed by the LO16. */ |
@@ -1408,9 +1389,7 @@ arch_apply_relocation(struct obj_file *f, | |||
1408 | case R_390_PLT32: | 1389 | case R_390_PLT32: |
1409 | case R_390_PLT16DBL: | 1390 | case R_390_PLT16DBL: |
1410 | /* find the plt entry and initialize it. */ | 1391 | /* find the plt entry and initialize it. */ |
1411 | assert(isym != NULL); | ||
1412 | pe = (struct arch_single_entry *) &isym->pltent; | 1392 | pe = (struct arch_single_entry *) &isym->pltent; |
1413 | assert(pe->allocated); | ||
1414 | if (pe->inited == 0) { | 1393 | if (pe->inited == 0) { |
1415 | ip = (unsigned long *)(ifile->plt->contents + pe->offset); | 1394 | ip = (unsigned long *)(ifile->plt->contents + pe->offset); |
1416 | ip[0] = 0x0d105810; /* basr 1,0; lg 1,10(1); br 1 */ | 1395 | ip[0] = 0x0d105810; /* basr 1,0; lg 1,10(1); br 1 */ |
@@ -1440,15 +1419,12 @@ arch_apply_relocation(struct obj_file *f, | |||
1440 | break; | 1419 | break; |
1441 | 1420 | ||
1442 | case R_390_GOTPC: | 1421 | case R_390_GOTPC: |
1443 | assert(got != 0); | ||
1444 | *(unsigned long *) loc += got - dot; | 1422 | *(unsigned long *) loc += got - dot; |
1445 | break; | 1423 | break; |
1446 | 1424 | ||
1447 | case R_390_GOT12: | 1425 | case R_390_GOT12: |
1448 | case R_390_GOT16: | 1426 | case R_390_GOT16: |
1449 | case R_390_GOT32: | 1427 | case R_390_GOT32: |
1450 | assert(isym != NULL); | ||
1451 | assert(got != 0); | ||
1452 | if (!isym->gotent.inited) | 1428 | if (!isym->gotent.inited) |
1453 | { | 1429 | { |
1454 | isym->gotent.inited = 1; | 1430 | isym->gotent.inited = 1; |
@@ -1466,7 +1442,6 @@ arch_apply_relocation(struct obj_file *f, | |||
1466 | # define R_390_GOTOFF32 R_390_GOTOFF | 1442 | # define R_390_GOTOFF32 R_390_GOTOFF |
1467 | # endif | 1443 | # endif |
1468 | case R_390_GOTOFF32: | 1444 | case R_390_GOTOFF32: |
1469 | assert(got != 0); | ||
1470 | *loc += v - got; | 1445 | *loc += v - got; |
1471 | break; | 1446 | break; |
1472 | 1447 | ||
@@ -1497,7 +1472,6 @@ arch_apply_relocation(struct obj_file *f, | |||
1497 | break; | 1472 | break; |
1498 | 1473 | ||
1499 | case R_SH_GOTPC: | 1474 | case R_SH_GOTPC: |
1500 | assert(got != 0); | ||
1501 | *loc = got - dot + rel->r_addend; | 1475 | *loc = got - dot + rel->r_addend; |
1502 | break; | 1476 | break; |
1503 | 1477 | ||
@@ -1505,7 +1479,6 @@ arch_apply_relocation(struct obj_file *f, | |||
1505 | goto bb_use_got; | 1479 | goto bb_use_got; |
1506 | 1480 | ||
1507 | case R_SH_GOTOFF: | 1481 | case R_SH_GOTOFF: |
1508 | assert(got != 0); | ||
1509 | *loc = v - got; | 1482 | *loc = v - got; |
1510 | break; | 1483 | break; |
1511 | 1484 | ||
@@ -1627,7 +1600,6 @@ arch_apply_relocation(struct obj_file *f, | |||
1627 | case R_X86_64_GOTPCREL: | 1600 | case R_X86_64_GOTPCREL: |
1628 | goto bb_use_got; | 1601 | goto bb_use_got; |
1629 | # if 0 | 1602 | # if 0 |
1630 | assert(isym != NULL); | ||
1631 | if (!isym->gotent.reloc_done) | 1603 | if (!isym->gotent.reloc_done) |
1632 | { | 1604 | { |
1633 | isym->gotent.reloc_done = 1; | 1605 | isym->gotent.reloc_done = 1; |
@@ -1655,12 +1627,10 @@ arch_apply_relocation(struct obj_file *f, | |||
1655 | bb_use_plt: | 1627 | bb_use_plt: |
1656 | 1628 | ||
1657 | /* find the plt entry and initialize it if necessary */ | 1629 | /* find the plt entry and initialize it if necessary */ |
1658 | assert(isym != NULL); | ||
1659 | 1630 | ||
1660 | #if defined(CONFIG_USE_PLT_LIST) | 1631 | #if defined(CONFIG_USE_PLT_LIST) |
1661 | for (pe = isym->pltent; pe != NULL && pe->addend != rel->r_addend;) | 1632 | for (pe = isym->pltent; pe != NULL && pe->addend != rel->r_addend;) |
1662 | pe = pe->next; | 1633 | pe = pe->next; |
1663 | assert(pe != NULL); | ||
1664 | #else | 1634 | #else |
1665 | pe = &isym->pltent; | 1635 | pe = &isym->pltent; |
1666 | #endif | 1636 | #endif |
@@ -1734,7 +1704,6 @@ bb_use_plt: | |||
1734 | #if defined(CONFIG_USE_GOT_ENTRIES) | 1704 | #if defined(CONFIG_USE_GOT_ENTRIES) |
1735 | bb_use_got: | 1705 | bb_use_got: |
1736 | 1706 | ||
1737 | assert(isym != NULL); | ||
1738 | /* needs an entry in the .got: set it, once */ | 1707 | /* needs an entry in the .got: set it, once */ |
1739 | if (!isym->gotent.inited) { | 1708 | if (!isym->gotent.inited) { |
1740 | isym->gotent.inited = 1; | 1709 | isym->gotent.inited = 1; |
@@ -1814,7 +1783,6 @@ static struct obj_section *arch_xsect_init(struct obj_file *f, char *name, | |||
1814 | } else { | 1783 | } else { |
1815 | myrelsec = obj_create_alloced_section(f, name, | 1784 | myrelsec = obj_create_alloced_section(f, name, |
1816 | size, offset); | 1785 | size, offset); |
1817 | assert(myrelsec); | ||
1818 | } | 1786 | } |
1819 | 1787 | ||
1820 | return myrelsec; | 1788 | return myrelsec; |
@@ -3778,14 +3746,14 @@ add_ksymoops_symbols(struct obj_file *f, const char *filename, | |||
3778 | }; | 3746 | }; |
3779 | 3747 | ||
3780 | if (realpath(filename, real)) { | 3748 | if (realpath(filename, real)) { |
3781 | absolute_filename = bb_xstrdup(real); | 3749 | absolute_filename = xstrdup(real); |
3782 | } | 3750 | } |
3783 | else { | 3751 | else { |
3784 | int save_errno = errno; | 3752 | int save_errno = errno; |
3785 | bb_error_msg("cannot get realpath for %s", filename); | 3753 | bb_error_msg("cannot get realpath for %s", filename); |
3786 | errno = save_errno; | 3754 | errno = save_errno; |
3787 | perror(""); | 3755 | perror(""); |
3788 | absolute_filename = bb_xstrdup(filename); | 3756 | absolute_filename = xstrdup(filename); |
3789 | } | 3757 | } |
3790 | 3758 | ||
3791 | lm_name = strlen(m_name); | 3759 | lm_name = strlen(m_name); |
@@ -4022,7 +3990,7 @@ int insmod_main( int argc, char **argv) | |||
4022 | break; | 3990 | break; |
4023 | case 'o': /* name the output module */ | 3991 | case 'o': /* name the output module */ |
4024 | free(m_name); | 3992 | free(m_name); |
4025 | m_name = bb_xstrdup(optarg); | 3993 | m_name = xstrdup(optarg); |
4026 | break; | 3994 | break; |
4027 | case 'L': /* Stub warning */ | 3995 | case 'L': /* Stub warning */ |
4028 | /* This is needed for compatibility with modprobe. | 3996 | /* This is needed for compatibility with modprobe. |
@@ -4045,7 +4013,7 @@ int insmod_main( int argc, char **argv) | |||
4045 | } | 4013 | } |
4046 | 4014 | ||
4047 | /* Grab the module name */ | 4015 | /* Grab the module name */ |
4048 | tmp1 = bb_xstrdup(argv[optind]); | 4016 | tmp1 = xstrdup(argv[optind]); |
4049 | tmp = basename(tmp1); | 4017 | tmp = basename(tmp1); |
4050 | len = strlen(tmp); | 4018 | len = strlen(tmp); |
4051 | 4019 | ||
@@ -4071,10 +4039,10 @@ int insmod_main( int argc, char **argv) | |||
4071 | 4039 | ||
4072 | #if defined(CONFIG_FEATURE_2_6_MODULES) | 4040 | #if defined(CONFIG_FEATURE_2_6_MODULES) |
4073 | if (k_version > 4) | 4041 | if (k_version > 4) |
4074 | m_fullName = bb_xasprintf("%s.ko", tmp); | 4042 | m_fullName = xasprintf("%s.ko", tmp); |
4075 | else | 4043 | else |
4076 | #endif | 4044 | #endif |
4077 | m_fullName = bb_xasprintf("%s.o", tmp); | 4045 | m_fullName = xasprintf("%s.o", tmp); |
4078 | 4046 | ||
4079 | if (!m_name) { | 4047 | if (!m_name) { |
4080 | m_name = tmp; | 4048 | m_name = tmp; |
@@ -4132,7 +4100,7 @@ int insmod_main( int argc, char **argv) | |||
4132 | bb_error_msg_and_die("%s: no module by that name found", m_fullName); | 4100 | bb_error_msg_and_die("%s: no module by that name found", m_fullName); |
4133 | } | 4101 | } |
4134 | } else | 4102 | } else |
4135 | m_filename = bb_xstrdup(argv[optind]); | 4103 | m_filename = xstrdup(argv[optind]); |
4136 | 4104 | ||
4137 | if (flag_verbose) | 4105 | if (flag_verbose) |
4138 | printf("Using %s\n", m_filename); | 4106 | printf("Using %s\n", m_filename); |
@@ -4334,7 +4302,7 @@ int insmod_ng_main( int argc, char **argv) | |||
4334 | struct stat st; | 4302 | struct stat st; |
4335 | unsigned long len; | 4303 | unsigned long len; |
4336 | void *map; | 4304 | void *map; |
4337 | char *filename, *options = bb_xstrdup(""); | 4305 | char *filename, *options = xstrdup(""); |
4338 | 4306 | ||
4339 | filename = argv[1]; | 4307 | filename = argv[1]; |
4340 | if (!filename) { | 4308 | if (!filename) { |
@@ -4356,7 +4324,7 @@ int insmod_ng_main( int argc, char **argv) | |||
4356 | strcat(options, " "); | 4324 | strcat(options, " "); |
4357 | } | 4325 | } |
4358 | 4326 | ||
4359 | fd = bb_xopen3(filename, O_RDONLY, 0); | 4327 | fd = xopen3(filename, O_RDONLY, 0); |
4360 | 4328 | ||
4361 | fstat(fd, &st); | 4329 | fstat(fd, &st); |
4362 | len = st.st_size; | 4330 | len = st.st_size; |
diff --git a/modutils/modprobe.c b/modutils/modprobe.c index b11e58d55..5a94c7c92 100644 --- a/modutils/modprobe.c +++ b/modutils/modprobe.c | |||
@@ -13,15 +13,6 @@ | |||
13 | 13 | ||
14 | #include "busybox.h" | 14 | #include "busybox.h" |
15 | #include <sys/utsname.h> | 15 | #include <sys/utsname.h> |
16 | #include <sys/types.h> | ||
17 | #include <sys/wait.h> | ||
18 | #include <getopt.h> | ||
19 | #include <stdlib.h> | ||
20 | #include <unistd.h> | ||
21 | #include <syslog.h> | ||
22 | #include <string.h> | ||
23 | #include <ctype.h> | ||
24 | #include <fcntl.h> | ||
25 | #include <fnmatch.h> | 16 | #include <fnmatch.h> |
26 | 17 | ||
27 | struct mod_opt_t { /* one-way list of options to pass to a module */ | 18 | struct mod_opt_t { /* one-way list of options to pass to a module */ |
@@ -148,7 +139,7 @@ static struct mod_opt_t *append_option( struct mod_opt_t *opt_list, char *opt ) | |||
148 | ol = opt_list = xmalloc( sizeof( struct mod_opt_t ) ); | 139 | ol = opt_list = xmalloc( sizeof( struct mod_opt_t ) ); |
149 | } | 140 | } |
150 | 141 | ||
151 | ol-> m_opt_val = bb_xstrdup( opt ); | 142 | ol-> m_opt_val = xstrdup( opt ); |
152 | ol-> m_next = NULL; | 143 | ol-> m_next = NULL; |
153 | 144 | ||
154 | return opt_list; | 145 | return opt_list; |
@@ -160,7 +151,7 @@ static struct mod_opt_t *append_option( struct mod_opt_t *opt_list, char *opt ) | |||
160 | * dst: pointer to where to store the parsed argument | 151 | * dst: pointer to where to store the parsed argument |
161 | * return value: the pointer to the first char after the parsed argument, | 152 | * return value: the pointer to the first char after the parsed argument, |
162 | * NULL if there was no argument parsed (only trailing spaces). | 153 | * NULL if there was no argument parsed (only trailing spaces). |
163 | * Note that memory is allocated with bb_xstrdup when a new argument was | 154 | * Note that memory is allocated with xstrdup when a new argument was |
164 | * parsed. Don't forget to free it! | 155 | * parsed. Don't forget to free it! |
165 | */ | 156 | */ |
166 | #define ARG_EMPTY 0x00 | 157 | #define ARG_EMPTY 0x00 |
@@ -185,7 +176,7 @@ static char *parse_command_string( char *src, char **dst ) | |||
185 | /* Reached the start of an argument | 176 | /* Reached the start of an argument |
186 | * By the way, we duplicate a little too much | 177 | * By the way, we duplicate a little too much |
187 | * here but what is too much is freed later. */ | 178 | * here but what is too much is freed later. */ |
188 | *dst = tmp_str = bb_xstrdup( src ); | 179 | *dst = tmp_str = xstrdup( src ); |
189 | /* Get to the end of that argument */ | 180 | /* Get to the end of that argument */ |
190 | while( ( *tmp_str != '\0' ) | 181 | while( ( *tmp_str != '\0' ) |
191 | && ( ( *tmp_str != ' ' ) | 182 | && ( ( *tmp_str != ' ' ) |
@@ -309,7 +300,7 @@ static void include_conf ( struct dep_t **first, struct dep_t **current, char *b | |||
309 | (*current)-> m_next = (struct dep_t *) xcalloc ( 1, sizeof ( struct dep_t )); | 300 | (*current)-> m_next = (struct dep_t *) xcalloc ( 1, sizeof ( struct dep_t )); |
310 | (*current) = (*current)-> m_next; | 301 | (*current) = (*current)-> m_next; |
311 | } | 302 | } |
312 | (*current)-> m_name = bb_xstrdup ( alias ); | 303 | (*current)-> m_name = xstrdup ( alias ); |
313 | (*current)-> m_isalias = 1; | 304 | (*current)-> m_isalias = 1; |
314 | 305 | ||
315 | if (( strcmp ( mod, "off" ) == 0 ) || ( strcmp ( mod, "null" ) == 0 )) { | 306 | if (( strcmp ( mod, "off" ) == 0 ) || ( strcmp ( mod, "null" ) == 0 )) { |
@@ -319,7 +310,7 @@ static void include_conf ( struct dep_t **first, struct dep_t **current, char *b | |||
319 | else { | 310 | else { |
320 | (*current)-> m_depcnt = 1; | 311 | (*current)-> m_depcnt = 1; |
321 | (*current)-> m_deparr = xmalloc ( 1 * sizeof( char * )); | 312 | (*current)-> m_deparr = xmalloc ( 1 * sizeof( char * )); |
322 | (*current)-> m_deparr[0] = bb_xstrdup ( mod ); | 313 | (*current)-> m_deparr[0] = xstrdup ( mod ); |
323 | } | 314 | } |
324 | (*current)-> m_next = 0; | 315 | (*current)-> m_next = 0; |
325 | } | 316 | } |
@@ -388,7 +379,7 @@ static struct dep_t *build_dep ( void ) | |||
388 | k_version = un.release[2] - '0'; | 379 | k_version = un.release[2] - '0'; |
389 | } | 380 | } |
390 | 381 | ||
391 | filename = bb_xasprintf("/lib/modules/%s/modules.dep", un.release ); | 382 | filename = xasprintf("/lib/modules/%s/modules.dep", un.release ); |
392 | fd = open ( filename, O_RDONLY ); | 383 | fd = open ( filename, O_RDONLY ); |
393 | if (ENABLE_FEATURE_CLEAN_UP) | 384 | if (ENABLE_FEATURE_CLEAN_UP) |
394 | free(filename); | 385 | free(filename); |
@@ -447,7 +438,7 @@ static struct dep_t *build_dep ( void ) | |||
447 | if (( *(col-2) == '.' ) && ( *(col-1) == 'o' )) | 438 | if (( *(col-2) == '.' ) && ( *(col-1) == 'o' )) |
448 | dot = col - 2; | 439 | dot = col - 2; |
449 | 440 | ||
450 | mod = bb_xstrndup ( mods, dot - mods ); | 441 | mod = xstrndup ( mods, dot - mods ); |
451 | 442 | ||
452 | /* enqueue new module */ | 443 | /* enqueue new module */ |
453 | if ( !current ) { | 444 | if ( !current ) { |
@@ -458,7 +449,7 @@ static struct dep_t *build_dep ( void ) | |||
458 | current = current-> m_next; | 449 | current = current-> m_next; |
459 | } | 450 | } |
460 | current-> m_name = mod; | 451 | current-> m_name = mod; |
461 | current-> m_path = bb_xstrdup(modpath); | 452 | current-> m_path = xstrdup(modpath); |
462 | current-> m_options = NULL; | 453 | current-> m_options = NULL; |
463 | current-> m_isalias = 0; | 454 | current-> m_isalias = 0; |
464 | current-> m_depcnt = 0; | 455 | current-> m_depcnt = 0; |
@@ -525,7 +516,7 @@ static struct dep_t *build_dep ( void ) | |||
525 | /* Cope with blank lines */ | 516 | /* Cope with blank lines */ |
526 | if ((next-deps-ext+1) <= 0) | 517 | if ((next-deps-ext+1) <= 0) |
527 | continue; | 518 | continue; |
528 | dep = bb_xstrndup ( deps, next - deps - ext + 1 ); | 519 | dep = xstrndup ( deps, next - deps - ext + 1 ); |
529 | 520 | ||
530 | /* Add the new dependable module name */ | 521 | /* Add the new dependable module name */ |
531 | current-> m_depcnt++; | 522 | current-> m_depcnt++; |
@@ -562,7 +553,7 @@ static struct dep_t *build_dep ( void ) | |||
562 | /* Only 2.6 has a modules.alias file */ | 553 | /* Only 2.6 has a modules.alias file */ |
563 | if (ENABLE_FEATURE_2_6_MODULES) { | 554 | if (ENABLE_FEATURE_2_6_MODULES) { |
564 | /* Parse kernel-declared aliases */ | 555 | /* Parse kernel-declared aliases */ |
565 | filename = bb_xasprintf("/lib/modules/%s/modules.alias", un.release); | 556 | filename = xasprintf("/lib/modules/%s/modules.alias", un.release); |
566 | if ((fd = open ( filename, O_RDONLY )) < 0) { | 557 | if ((fd = open ( filename, O_RDONLY )) < 0) { |
567 | /* Ok, that didn't work. Fall back to looking in /lib/modules */ | 558 | /* Ok, that didn't work. Fall back to looking in /lib/modules */ |
568 | fd = open ( "/lib/modules/modules.alias", O_RDONLY ); | 559 | fd = open ( "/lib/modules/modules.alias", O_RDONLY ); |
@@ -687,7 +678,7 @@ static int mod_process ( struct mod_list_t *list, int do_insert ) | |||
687 | printf("%s module %s\n", do_insert?"Loading":"Unloading", list-> m_name ); | 678 | printf("%s module %s\n", do_insert?"Loading":"Unloading", list-> m_name ); |
688 | } | 679 | } |
689 | if (!show_only) { | 680 | if (!show_only) { |
690 | int rc2 = wait4pid(bb_spawn(argv)); | 681 | int rc2 = wait4pid(spawn(argv)); |
691 | 682 | ||
692 | if (do_insert) { | 683 | if (do_insert) { |
693 | rc = rc2; /* only last module matters */ | 684 | rc = rc2; /* only last module matters */ |
@@ -724,8 +715,8 @@ static int check_pattern( const char* pat_src, const char* mod_src ) { | |||
724 | char* mod; | 715 | char* mod; |
725 | char* p; | 716 | char* p; |
726 | 717 | ||
727 | pat = bb_xstrdup (pat_src); | 718 | pat = xstrdup (pat_src); |
728 | mod = bb_xstrdup (mod_src); | 719 | mod = xstrdup (mod_src); |
729 | 720 | ||
730 | for (p = pat; (p = strchr(p, '-')); *p++ = '_' ); | 721 | for (p = pat; (p = strchr(p, '-')); *p++ = '_' ); |
731 | for (p = mod; (p = strchr(p, '-')); *p++ = '_' ); | 722 | for (p = mod; (p = strchr(p, '-')); *p++ = '_' ); |
diff --git a/networking/ether-wake.c b/networking/ether-wake.c index 1803d2265..75f065cdc 100644 --- a/networking/ether-wake.c +++ b/networking/ether-wake.c | |||
@@ -65,25 +65,10 @@ | |||
65 | */ | 65 | */ |
66 | 66 | ||
67 | 67 | ||
68 | #include <unistd.h> | ||
69 | #include <stdlib.h> | ||
70 | #include <stdio.h> | ||
71 | #include <errno.h> | ||
72 | #include <ctype.h> | ||
73 | #include <string.h> | ||
74 | |||
75 | #include <sys/socket.h> | ||
76 | #include <sys/types.h> | ||
77 | #include <sys/ioctl.h> | ||
78 | #include <features.h> | ||
79 | #include <netpacket/packet.h> | 68 | #include <netpacket/packet.h> |
80 | #include <net/ethernet.h> | 69 | #include <net/ethernet.h> |
81 | #include <netdb.h> | ||
82 | #include <netinet/ether.h> | 70 | #include <netinet/ether.h> |
83 | |||
84 | #ifdef __linux__ | ||
85 | #include <linux/if.h> | 71 | #include <linux/if.h> |
86 | #endif | ||
87 | 72 | ||
88 | #include "busybox.h" | 73 | #include "busybox.h" |
89 | 74 | ||
@@ -93,10 +78,10 @@ | |||
93 | */ | 78 | */ |
94 | #ifdef PF_PACKET | 79 | #ifdef PF_PACKET |
95 | # define whereto_t sockaddr_ll | 80 | # define whereto_t sockaddr_ll |
96 | # define make_socket() bb_xsocket(PF_PACKET, SOCK_RAW, 0) | 81 | # define make_socket() xsocket(PF_PACKET, SOCK_RAW, 0) |
97 | #else | 82 | #else |
98 | # define whereto_t sockaddr | 83 | # define whereto_t sockaddr |
99 | # define make_socket() bb_xsocket(AF_INET, SOCK_PACKET, SOCK_PACKET) | 84 | # define make_socket() xsocket(AF_INET, SOCK_PACKET, SOCK_PACKET) |
100 | #endif | 85 | #endif |
101 | 86 | ||
102 | #ifdef DEBUG | 87 | #ifdef DEBUG |
diff --git a/networking/fakeidentd.c b/networking/fakeidentd.c index 9cdbc5725..6ee7c328e 100644 --- a/networking/fakeidentd.c +++ b/networking/fakeidentd.c | |||
@@ -10,19 +10,7 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include "busybox.h" | 12 | #include "busybox.h" |
13 | |||
14 | #include <unistd.h> | ||
15 | #include <string.h> | ||
16 | #include <fcntl.h> | ||
17 | #include <signal.h> | ||
18 | #include <sys/syslog.h> | ||
19 | |||
20 | #include <pwd.h> | ||
21 | |||
22 | #include <sys/syslog.h> | 13 | #include <sys/syslog.h> |
23 | #include <time.h> | ||
24 | #include <sys/socket.h> | ||
25 | #include <errno.h> | ||
26 | #include <sys/uio.h> | 14 | #include <sys/uio.h> |
27 | 15 | ||
28 | 16 | ||
@@ -97,7 +85,7 @@ static void inetbind(void) | |||
97 | else | 85 | else |
98 | port = se->s_port; | 86 | port = se->s_port; |
99 | 87 | ||
100 | s = bb_xsocket(AF_INET, SOCK_STREAM, 0); | 88 | s = xsocket(AF_INET, SOCK_STREAM, 0); |
101 | 89 | ||
102 | setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one)); | 90 | setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one)); |
103 | 91 | ||
@@ -106,8 +94,8 @@ static void inetbind(void) | |||
106 | addr.sin_family = AF_INET; | 94 | addr.sin_family = AF_INET; |
107 | addr.sin_port = htons(port); | 95 | addr.sin_port = htons(port); |
108 | 96 | ||
109 | bb_xbind(s, (struct sockaddr *)&addr, len); | 97 | xbind(s, (struct sockaddr *)&addr, len); |
110 | bb_xlisten(s, 5); | 98 | xlisten(s, 5); |
111 | 99 | ||
112 | movefd(s, 0); | 100 | movefd(s, 0); |
113 | } | 101 | } |
diff --git a/networking/ftpgetput.c b/networking/ftpgetput.c index 9f3c78976..767ace9fb 100644 --- a/networking/ftpgetput.c +++ b/networking/ftpgetput.c | |||
@@ -13,19 +13,8 @@ | |||
13 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 13 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <sys/ioctl.h> | ||
17 | |||
18 | #include <ctype.h> | ||
19 | #include <errno.h> | ||
20 | #include <fcntl.h> | ||
21 | #include <getopt.h> | ||
22 | #include <signal.h> | ||
23 | #include <string.h> | ||
24 | #include <unistd.h> | ||
25 | |||
26 | #include <sys/socket.h> | ||
27 | |||
28 | #include "busybox.h" | 16 | #include "busybox.h" |
17 | #include <getopt.h> | ||
29 | 18 | ||
30 | typedef struct ftp_host_info_s { | 19 | typedef struct ftp_host_info_s { |
31 | char *user; | 20 | char *user; |
@@ -175,9 +164,9 @@ static int ftp_receive(ftp_host_info_t *server, FILE *control_stream, | |||
175 | /* only make a local file if we know that one exists on the remote server */ | 164 | /* only make a local file if we know that one exists on the remote server */ |
176 | if (fd_local == -1) { | 165 | if (fd_local == -1) { |
177 | if (do_continue) { | 166 | if (do_continue) { |
178 | fd_local = bb_xopen(local_path, O_APPEND | O_WRONLY); | 167 | fd_local = xopen(local_path, O_APPEND | O_WRONLY); |
179 | } else { | 168 | } else { |
180 | fd_local = bb_xopen(local_path, O_CREAT | O_TRUNC | O_WRONLY); | 169 | fd_local = xopen(local_path, O_CREAT | O_TRUNC | O_WRONLY); |
181 | } | 170 | } |
182 | } | 171 | } |
183 | 172 | ||
@@ -223,7 +212,7 @@ static int ftp_send(ftp_host_info_t *server, FILE *control_stream, | |||
223 | if ((local_path[0] == '-') && (local_path[1] == '\0')) { | 212 | if ((local_path[0] == '-') && (local_path[1] == '\0')) { |
224 | fd_local = STDIN_FILENO; | 213 | fd_local = STDIN_FILENO; |
225 | } else { | 214 | } else { |
226 | fd_local = bb_xopen(local_path, O_RDONLY); | 215 | fd_local = xopen(local_path, O_RDONLY); |
227 | fstat(fd_local, &sbuf); | 216 | fstat(fd_local, &sbuf); |
228 | 217 | ||
229 | sprintf(buf, "ALLO %lu", (unsigned long)sbuf.st_size); | 218 | sprintf(buf, "ALLO %lu", (unsigned long)sbuf.st_size); |
diff --git a/networking/hostname.c b/networking/hostname.c index ec4a0e8d8..03fd88edb 100644 --- a/networking/hostname.c +++ b/networking/hostname.c | |||
@@ -13,15 +13,8 @@ | |||
13 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 13 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <errno.h> | ||
17 | #include <arpa/inet.h> | ||
18 | #include <netdb.h> | ||
19 | #include <unistd.h> | ||
20 | #include <string.h> | ||
21 | #include <stdio.h> | ||
22 | #include <stdlib.h> | ||
23 | #include <getopt.h> | ||
24 | #include "busybox.h" | 16 | #include "busybox.h" |
17 | #include <getopt.h> | ||
25 | 18 | ||
26 | extern char *optarg; /* in unistd.h */ | 19 | extern char *optarg; /* in unistd.h */ |
27 | extern int optind, opterr, optopt; /* in unistd.h */ | 20 | extern int optind, opterr, optopt; /* in unistd.h */ |
@@ -41,7 +34,7 @@ static void do_sethostname(char *s, int isfile) | |||
41 | bb_perror_msg_and_die("sethostname"); | 34 | bb_perror_msg_and_die("sethostname"); |
42 | } | 35 | } |
43 | } else { | 36 | } else { |
44 | f = bb_xfopen(s, "r"); | 37 | f = xfopen(s, "r"); |
45 | while (fgets(buf, 255, f) != NULL) { | 38 | while (fgets(buf, 255, f) != NULL) { |
46 | if (buf[0] =='#') { | 39 | if (buf[0] =='#') { |
47 | continue; | 40 | continue; |
diff --git a/networking/ifconfig.c b/networking/ifconfig.c index 7b358c43f..4d346c47f 100644 --- a/networking/ifconfig.c +++ b/networking/ifconfig.c | |||
@@ -26,14 +26,6 @@ | |||
26 | * IPV6 support added by Bart Visscher <magick@linux-fan.com> | 26 | * IPV6 support added by Bart Visscher <magick@linux-fan.com> |
27 | */ | 27 | */ |
28 | 28 | ||
29 | #include <stdio.h> | ||
30 | #include <stdlib.h> | ||
31 | #include <string.h> /* strcmp and friends */ | ||
32 | #include <ctype.h> /* isdigit and friends */ | ||
33 | #include <stddef.h> /* offsetof */ | ||
34 | #include <unistd.h> | ||
35 | #include <netdb.h> | ||
36 | #include <sys/ioctl.h> | ||
37 | #include <net/if.h> | 29 | #include <net/if.h> |
38 | #include <net/if_arp.h> | 30 | #include <net/if_arp.h> |
39 | #include <netinet/in.h> | 31 | #include <netinet/in.h> |
@@ -329,7 +321,7 @@ int ifconfig_main(int argc, char **argv) | |||
329 | } | 321 | } |
330 | 322 | ||
331 | /* Create a channel to the NET kernel. */ | 323 | /* Create a channel to the NET kernel. */ |
332 | sockfd = bb_xsocket(AF_INET, SOCK_DGRAM, 0); | 324 | sockfd = xsocket(AF_INET, SOCK_DGRAM, 0); |
333 | 325 | ||
334 | /* get interface name */ | 326 | /* get interface name */ |
335 | safe_strncpy(ifr.ifr_name, *argv, IFNAMSIZ); | 327 | safe_strncpy(ifr.ifr_name, *argv, IFNAMSIZ); |
diff --git a/networking/ifupdown.c b/networking/ifupdown.c index 8ee488364..6429c07e5 100644 --- a/networking/ifupdown.c +++ b/networking/ifupdown.c | |||
@@ -17,22 +17,10 @@ | |||
17 | 17 | ||
18 | /* TODO: standardise execute() return codes to return 0 for success and 1 for failure */ | 18 | /* TODO: standardise execute() return codes to return 0 for success and 1 for failure */ |
19 | 19 | ||
20 | #include <sys/stat.h> | 20 | #include "busybox.h" |
21 | #include <sys/utsname.h> | 21 | #include <sys/utsname.h> |
22 | #include <sys/wait.h> | ||
23 | |||
24 | #include <ctype.h> | ||
25 | #include <errno.h> | ||
26 | #include <fcntl.h> | ||
27 | #include <fnmatch.h> | 22 | #include <fnmatch.h> |
28 | #include <getopt.h> | 23 | #include <getopt.h> |
29 | #include <stdarg.h> | ||
30 | #include <stdio.h> | ||
31 | #include <stdlib.h> | ||
32 | #include <string.h> | ||
33 | #include <unistd.h> | ||
34 | |||
35 | #include "busybox.h" | ||
36 | 24 | ||
37 | #define MAX_OPT_DEPTH 10 | 25 | #define MAX_OPT_DEPTH 10 |
38 | #define EUNBALBRACK 10001 | 26 | #define EUNBALBRACK 10001 |
@@ -628,7 +616,7 @@ static struct interfaces_file_t *read_interfaces(const char *filename) | |||
628 | 616 | ||
629 | defn = xzalloc(sizeof(struct interfaces_file_t)); | 617 | defn = xzalloc(sizeof(struct interfaces_file_t)); |
630 | 618 | ||
631 | f = bb_xfopen(filename, "r"); | 619 | f = xfopen(filename, "r"); |
632 | 620 | ||
633 | while ((buf = bb_get_chomped_line_from_file(f)) != NULL) { | 621 | while ((buf = bb_get_chomped_line_from_file(f)) != NULL) { |
634 | char *buf_ptr = buf; | 622 | char *buf_ptr = buf; |
@@ -649,7 +637,7 @@ static struct interfaces_file_t *read_interfaces(const char *filename) | |||
649 | currmap->match = xrealloc(currmap->match, sizeof(currmap->match) * currmap->max_matches); | 637 | currmap->match = xrealloc(currmap->match, sizeof(currmap->match) * currmap->max_matches); |
650 | } | 638 | } |
651 | 639 | ||
652 | currmap->match[currmap->n_matches++] = bb_xstrdup(firstword); | 640 | currmap->match[currmap->n_matches++] = xstrdup(firstword); |
653 | } | 641 | } |
654 | currmap->max_mappings = 0; | 642 | currmap->max_mappings = 0; |
655 | currmap->n_mappings = 0; | 643 | currmap->n_mappings = 0; |
@@ -701,7 +689,7 @@ static struct interfaces_file_t *read_interfaces(const char *filename) | |||
701 | return NULL; | 689 | return NULL; |
702 | } | 690 | } |
703 | 691 | ||
704 | currif->iface = bb_xstrdup(iface_name); | 692 | currif->iface = xstrdup(iface_name); |
705 | 693 | ||
706 | currif->address_family = get_address_family(addr_fams, address_family_name); | 694 | currif->address_family = get_address_family(addr_fams, address_family_name); |
707 | if (!currif->address_family) { | 695 | if (!currif->address_family) { |
@@ -741,7 +729,7 @@ static struct interfaces_file_t *read_interfaces(const char *filename) | |||
741 | } | 729 | } |
742 | 730 | ||
743 | /* Add the interface to the list */ | 731 | /* Add the interface to the list */ |
744 | llist_add_to_end(&(defn->autointerfaces), bb_xstrdup(firstword)); | 732 | llist_add_to_end(&(defn->autointerfaces), xstrdup(firstword)); |
745 | debug_noise("\nauto %s\n", firstword); | 733 | debug_noise("\nauto %s\n", firstword); |
746 | } | 734 | } |
747 | currently_processing = NONE; | 735 | currently_processing = NONE; |
@@ -775,8 +763,8 @@ static struct interfaces_file_t *read_interfaces(const char *filename) | |||
775 | opt = xrealloc(currif->option, sizeof(*opt) * currif->max_options); | 763 | opt = xrealloc(currif->option, sizeof(*opt) * currif->max_options); |
776 | currif->option = opt; | 764 | currif->option = opt; |
777 | } | 765 | } |
778 | currif->option[currif->n_options].name = bb_xstrdup(firstword); | 766 | currif->option[currif->n_options].name = xstrdup(firstword); |
779 | currif->option[currif->n_options].value = bb_xstrdup(buf_ptr); | 767 | currif->option[currif->n_options].value = xstrdup(buf_ptr); |
780 | if (!currif->option[currif->n_options].name) { | 768 | if (!currif->option[currif->n_options].name) { |
781 | perror(filename); | 769 | perror(filename); |
782 | return NULL; | 770 | return NULL; |
@@ -796,14 +784,14 @@ static struct interfaces_file_t *read_interfaces(const char *filename) | |||
796 | bb_error_msg("duplicate script in mapping \"%s\"", buf); | 784 | bb_error_msg("duplicate script in mapping \"%s\"", buf); |
797 | return NULL; | 785 | return NULL; |
798 | } else { | 786 | } else { |
799 | currmap->script = bb_xstrdup(next_word(&buf_ptr)); | 787 | currmap->script = xstrdup(next_word(&buf_ptr)); |
800 | } | 788 | } |
801 | } else if (strcmp(firstword, "map") == 0) { | 789 | } else if (strcmp(firstword, "map") == 0) { |
802 | if (currmap->max_mappings == currmap->n_mappings) { | 790 | if (currmap->max_mappings == currmap->n_mappings) { |
803 | currmap->max_mappings = currmap->max_mappings * 2 + 1; | 791 | currmap->max_mappings = currmap->max_mappings * 2 + 1; |
804 | currmap->mapping = xrealloc(currmap->mapping, sizeof(char *) * currmap->max_mappings); | 792 | currmap->mapping = xrealloc(currmap->mapping, sizeof(char *) * currmap->max_mappings); |
805 | } | 793 | } |
806 | currmap->mapping[currmap->n_mappings] = bb_xstrdup(next_word(&buf_ptr)); | 794 | currmap->mapping[currmap->n_mappings] = xstrdup(next_word(&buf_ptr)); |
807 | currmap->n_mappings++; | 795 | currmap->n_mappings++; |
808 | } else { | 796 | } else { |
809 | bb_error_msg("misplaced option \"%s\"", buf); | 797 | bb_error_msg("misplaced option \"%s\"", buf); |
@@ -833,7 +821,7 @@ static char *setlocalenv(char *format, const char *name, const char *value) | |||
833 | char *here; | 821 | char *here; |
834 | char *there; | 822 | char *there; |
835 | 823 | ||
836 | result = bb_xasprintf(format, name, value); | 824 | result = xasprintf(format, name, value); |
837 | 825 | ||
838 | for (here = there = result; *there != '=' && *there; there++) { | 826 | for (here = there = result; *there != '=' && *there; there++) { |
839 | if (*there == '-') | 827 | if (*there == '-') |
@@ -922,7 +910,7 @@ static int execute_all(struct interface_defn_t *ifd, const char *opt) | |||
922 | } | 910 | } |
923 | } | 911 | } |
924 | 912 | ||
925 | buf = bb_xasprintf("run-parts /etc/network/if-%s.d", opt); | 913 | buf = xasprintf("run-parts /etc/network/if-%s.d", opt); |
926 | if (doit(buf) != 1) { | 914 | if (doit(buf) != 1) { |
927 | return 0; | 915 | return 0; |
928 | } | 916 | } |
@@ -1013,7 +1001,7 @@ static char *run_mapping(char *physical, struct mapping_defn_t * map) | |||
1013 | int i, status; | 1001 | int i, status; |
1014 | pid_t pid; | 1002 | pid_t pid; |
1015 | 1003 | ||
1016 | char *logical = bb_xstrdup(physical); | 1004 | char *logical = xstrdup(physical); |
1017 | 1005 | ||
1018 | /* Run the mapping script. */ | 1006 | /* Run the mapping script. */ |
1019 | pid = popen2(&in, &out, map->script, physical, NULL); | 1007 | pid = popen2(&in, &out, map->script, physical, NULL); |
@@ -1158,7 +1146,7 @@ int ifupdown_main(int argc, char **argv) | |||
1158 | /* iface_down */ | 1146 | /* iface_down */ |
1159 | const llist_t *list = state_list; | 1147 | const llist_t *list = state_list; |
1160 | while (list) { | 1148 | while (list) { |
1161 | llist_add_to_end(&target_list, bb_xstrdup(list->data)); | 1149 | llist_add_to_end(&target_list, xstrdup(list->data)); |
1162 | list = list->link; | 1150 | list = list->link; |
1163 | } | 1151 | } |
1164 | target_list = defn->autointerfaces; | 1152 | target_list = defn->autointerfaces; |
@@ -1178,15 +1166,15 @@ int ifupdown_main(int argc, char **argv) | |||
1178 | int okay = 0; | 1166 | int okay = 0; |
1179 | int cmds_ret; | 1167 | int cmds_ret; |
1180 | 1168 | ||
1181 | iface = bb_xstrdup(target_list->data); | 1169 | iface = xstrdup(target_list->data); |
1182 | target_list = target_list->link; | 1170 | target_list = target_list->link; |
1183 | 1171 | ||
1184 | pch = strchr(iface, '='); | 1172 | pch = strchr(iface, '='); |
1185 | if (pch) { | 1173 | if (pch) { |
1186 | *pch = '\0'; | 1174 | *pch = '\0'; |
1187 | liface = bb_xstrdup(pch + 1); | 1175 | liface = xstrdup(pch + 1); |
1188 | } else { | 1176 | } else { |
1189 | liface = bb_xstrdup(iface); | 1177 | liface = xstrdup(iface); |
1190 | } | 1178 | } |
1191 | 1179 | ||
1192 | if (!force) { | 1180 | if (!force) { |
@@ -1263,7 +1251,7 @@ int ifupdown_main(int argc, char **argv) | |||
1263 | llist_t *iface_state = find_iface_state(state_list, iface); | 1251 | llist_t *iface_state = find_iface_state(state_list, iface); |
1264 | 1252 | ||
1265 | if (cmds == iface_up) { | 1253 | if (cmds == iface_up) { |
1266 | char *newiface = bb_xasprintf("%s=%s", iface, liface); | 1254 | char *newiface = xasprintf("%s=%s", iface, liface); |
1267 | if (iface_state == NULL) { | 1255 | if (iface_state == NULL) { |
1268 | llist_add_to_end(&state_list, newiface); | 1256 | llist_add_to_end(&state_list, newiface); |
1269 | } else { | 1257 | } else { |
@@ -1281,7 +1269,7 @@ int ifupdown_main(int argc, char **argv) | |||
1281 | if (!no_act) { | 1269 | if (!no_act) { |
1282 | FILE *state_fp = NULL; | 1270 | FILE *state_fp = NULL; |
1283 | 1271 | ||
1284 | state_fp = bb_xfopen(statefile, "w"); | 1272 | state_fp = xfopen(statefile, "w"); |
1285 | while (state_list) { | 1273 | while (state_list) { |
1286 | if (state_list->data) { | 1274 | if (state_list->data) { |
1287 | fputs(state_list->data, state_fp); | 1275 | fputs(state_list->data, state_fp); |
diff --git a/networking/inetd.c b/networking/inetd.c index 54294b635..49ca7a36e 100644 --- a/networking/inetd.c +++ b/networking/inetd.c | |||
@@ -128,31 +128,8 @@ | |||
128 | * | 128 | * |
129 | */ | 129 | */ |
130 | 130 | ||
131 | #include <sys/param.h> | ||
132 | #include <sys/stat.h> | ||
133 | #include <sys/ioctl.h> | ||
134 | #include <sys/socket.h> | ||
135 | #include <sys/un.h> | ||
136 | #include <sys/file.h> | ||
137 | #include <sys/wait.h> | ||
138 | #include <sys/resource.h> | ||
139 | |||
140 | |||
141 | #include <netinet/in.h> | ||
142 | #include <arpa/inet.h> | ||
143 | |||
144 | #include <errno.h> | ||
145 | #include <signal.h> | ||
146 | #include <netdb.h> | ||
147 | #include <syslog.h> | ||
148 | #include <stdio.h> | ||
149 | #include <stdlib.h> | ||
150 | #include <unistd.h> | ||
151 | #include <string.h> | ||
152 | #include <ctype.h> | ||
153 | #include <time.h> | ||
154 | |||
155 | #include "busybox.h" | 131 | #include "busybox.h" |
132 | #include <syslog.h> | ||
156 | 133 | ||
157 | //#define CONFIG_FEATURE_INETD_RPC | 134 | //#define CONFIG_FEATURE_INETD_RPC |
158 | //#define CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO | 135 | //#define CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO |
@@ -1314,7 +1291,7 @@ inetd_main (int argc, char *argv[]) | |||
1314 | /* reexec for vfork() do continue parent */ | 1291 | /* reexec for vfork() do continue parent */ |
1315 | vfork_daemon_rexec (0, 0, argc, argv, "-f"); | 1292 | vfork_daemon_rexec (0, 0, argc, argv, "-f"); |
1316 | #else | 1293 | #else |
1317 | bb_xdaemon (0, 0); | 1294 | xdaemon (0, 0); |
1318 | #endif | 1295 | #endif |
1319 | } else { | 1296 | } else { |
1320 | setsid (); | 1297 | setsid (); |
diff --git a/networking/nameif.c b/networking/nameif.c index f13ef1b8b..501e244b1 100644 --- a/networking/nameif.c +++ b/networking/nameif.c | |||
@@ -10,13 +10,7 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include "busybox.h" | 12 | #include "busybox.h" |
13 | 13 | #include <syslog.h> | |
14 | #include <sys/syslog.h> | ||
15 | #include <sys/socket.h> | ||
16 | #include <sys/ioctl.h> | ||
17 | #include <errno.h> | ||
18 | #include <string.h> | ||
19 | #include <unistd.h> | ||
20 | #include <net/if.h> | 14 | #include <net/if.h> |
21 | #include <netinet/ether.h> | 15 | #include <netinet/ether.h> |
22 | 16 | ||
@@ -107,7 +101,7 @@ int nameif_main(int argc, char **argv) | |||
107 | if (strlen(*a) > IF_NAMESIZE) | 101 | if (strlen(*a) > IF_NAMESIZE) |
108 | serror("interface name `%s' too long", *a); | 102 | serror("interface name `%s' too long", *a); |
109 | ch = xzalloc(sizeof(mactable_t)); | 103 | ch = xzalloc(sizeof(mactable_t)); |
110 | ch->ifname = bb_xstrdup(*a++); | 104 | ch->ifname = xstrdup(*a++); |
111 | ch->mac = cc_macaddr(*a++); | 105 | ch->mac = cc_macaddr(*a++); |
112 | if (clist) | 106 | if (clist) |
113 | clist->prev = ch; | 107 | clist->prev = ch; |
@@ -115,7 +109,7 @@ int nameif_main(int argc, char **argv) | |||
115 | clist = ch; | 109 | clist = ch; |
116 | } | 110 | } |
117 | } else { | 111 | } else { |
118 | ifh = bb_xfopen(fname, "r"); | 112 | ifh = xfopen(fname, "r"); |
119 | 113 | ||
120 | while ((line = bb_get_line_from_file(ifh)) != NULL) { | 114 | while ((line = bb_get_line_from_file(ifh)) != NULL) { |
121 | char *line_ptr; | 115 | char *line_ptr; |
@@ -128,7 +122,7 @@ int nameif_main(int argc, char **argv) | |||
128 | } | 122 | } |
129 | name_length = strcspn(line_ptr, " \t"); | 123 | name_length = strcspn(line_ptr, " \t"); |
130 | ch = xzalloc(sizeof(mactable_t)); | 124 | ch = xzalloc(sizeof(mactable_t)); |
131 | ch->ifname = bb_xstrndup(line_ptr, name_length); | 125 | ch->ifname = xstrndup(line_ptr, name_length); |
132 | if (name_length > IF_NAMESIZE) | 126 | if (name_length > IF_NAMESIZE) |
133 | serror("interface name `%s' too long", ch->ifname); | 127 | serror("interface name `%s' too long", ch->ifname); |
134 | line_ptr += name_length; | 128 | line_ptr += name_length; |
diff --git a/networking/nc.c b/networking/nc.c index 117bbe20e..3f4149e14 100644 --- a/networking/nc.c +++ b/networking/nc.c | |||
@@ -54,10 +54,10 @@ int nc_main(int argc, char **argv) | |||
54 | alarm(wsecs); | 54 | alarm(wsecs); |
55 | } | 55 | } |
56 | 56 | ||
57 | if (infile) cfd = bb_xopen(infile, O_RDWR); | 57 | if (infile) cfd = xopen(infile, O_RDWR); |
58 | else { | 58 | else { |
59 | opt = 1; | 59 | opt = 1; |
60 | sfd = bb_xsocket(AF_INET, SOCK_STREAM, 0); | 60 | sfd = xsocket(AF_INET, SOCK_STREAM, 0); |
61 | fcntl(sfd, F_SETFD, FD_CLOEXEC); | 61 | fcntl(sfd, F_SETFD, FD_CLOEXEC); |
62 | setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof (opt)); | 62 | setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof (opt)); |
63 | address.sin_family = AF_INET; | 63 | address.sin_family = AF_INET; |
@@ -67,13 +67,13 @@ int nc_main(int argc, char **argv) | |||
67 | if (lport != 0) { | 67 | if (lport != 0) { |
68 | address.sin_port = lport; | 68 | address.sin_port = lport; |
69 | 69 | ||
70 | bb_xbind(sfd, (struct sockaddr *) &address, sizeof(address)); | 70 | xbind(sfd, (struct sockaddr *) &address, sizeof(address)); |
71 | } | 71 | } |
72 | 72 | ||
73 | if (do_listen) { | 73 | if (do_listen) { |
74 | socklen_t addrlen = sizeof(address); | 74 | socklen_t addrlen = sizeof(address); |
75 | 75 | ||
76 | bb_xlisten(sfd, do_listen); | 76 | xlisten(sfd, do_listen); |
77 | 77 | ||
78 | // If we didn't specify a port number, query and print it to stderr. | 78 | // If we didn't specify a port number, query and print it to stderr. |
79 | 79 | ||
diff --git a/networking/route.c b/networking/route.c index d90578615..5fd888617 100644 --- a/networking/route.c +++ b/networking/route.c | |||
@@ -26,20 +26,12 @@ | |||
26 | * remove ridiculous amounts of bloat. | 26 | * remove ridiculous amounts of bloat. |
27 | */ | 27 | */ |
28 | 28 | ||
29 | #include <stdio.h> | 29 | #include "busybox.h" |
30 | #include <stdlib.h> | 30 | #include "inet_common.h" |
31 | #include <string.h> | ||
32 | #include <errno.h> | ||
33 | #include <assert.h> | ||
34 | #include <unistd.h> | ||
35 | #include <fcntl.h> | ||
36 | #include <getopt.h> | 31 | #include <getopt.h> |
37 | #include <sys/types.h> | ||
38 | #include <sys/ioctl.h> | ||
39 | #include <net/route.h> | 32 | #include <net/route.h> |
40 | #include <net/if.h> | 33 | #include <net/if.h> |
41 | #include "busybox.h" | 34 | |
42 | #include "inet_common.h" | ||
43 | 35 | ||
44 | #ifndef RTF_UP | 36 | #ifndef RTF_UP |
45 | /* Keep this in sync with /usr/src/linux/include/linux/route.h */ | 37 | /* Keep this in sync with /usr/src/linux/include/linux/route.h */ |
@@ -166,8 +158,6 @@ static void INET_setroute(int action, char **args) | |||
166 | const char *netmask = NULL; | 158 | const char *netmask = NULL; |
167 | int skfd, isnet, xflag; | 159 | int skfd, isnet, xflag; |
168 | 160 | ||
169 | assert((action == RTACTION_ADD) || (action == RTACTION_DEL)); | ||
170 | |||
171 | /* Grab the -net or -host options. Remember they were transformed. */ | 161 | /* Grab the -net or -host options. Remember they were transformed. */ |
172 | xflag = kw_lookup(tbl_hash_net_host, &args); | 162 | xflag = kw_lookup(tbl_hash_net_host, &args); |
173 | 163 | ||
@@ -335,7 +325,7 @@ static void INET_setroute(int action, char **args) | |||
335 | } | 325 | } |
336 | 326 | ||
337 | /* Create a socket to the INET kernel. */ | 327 | /* Create a socket to the INET kernel. */ |
338 | skfd = bb_xsocket(AF_INET, SOCK_DGRAM, 0); | 328 | skfd = xsocket(AF_INET, SOCK_DGRAM, 0); |
339 | 329 | ||
340 | if (ioctl(skfd, ((action==RTACTION_ADD) ? SIOCADDRT : SIOCDELRT), &rt)<0) { | 330 | if (ioctl(skfd, ((action==RTACTION_ADD) ? SIOCADDRT : SIOCDELRT), &rt)<0) { |
341 | bb_perror_msg_and_die("SIOC[ADD|DEL]RT"); | 331 | bb_perror_msg_and_die("SIOC[ADD|DEL]RT"); |
@@ -353,9 +343,6 @@ static void INET6_setroute(int action, char **args) | |||
353 | int prefix_len, skfd; | 343 | int prefix_len, skfd; |
354 | const char *devname; | 344 | const char *devname; |
355 | 345 | ||
356 | assert((action == RTACTION_ADD) || (action == RTACTION_DEL)); | ||
357 | |||
358 | { | ||
359 | /* We know args isn't NULL from the check in route_main. */ | 346 | /* We know args isn't NULL from the check in route_main. */ |
360 | const char *target = *args++; | 347 | const char *target = *args++; |
361 | 348 | ||
@@ -374,7 +361,6 @@ static void INET6_setroute(int action, char **args) | |||
374 | bb_error_msg_and_die("resolving %s", target); | 361 | bb_error_msg_and_die("resolving %s", target); |
375 | } | 362 | } |
376 | } | 363 | } |
377 | } | ||
378 | 364 | ||
379 | /* Clean out the RTREQ structure. */ | 365 | /* Clean out the RTREQ structure. */ |
380 | memset((char *) &rt, 0, sizeof(struct in6_rtmsg)); | 366 | memset((char *) &rt, 0, sizeof(struct in6_rtmsg)); |
@@ -429,7 +415,7 @@ static void INET6_setroute(int action, char **args) | |||
429 | } | 415 | } |
430 | 416 | ||
431 | /* Create a socket to the INET6 kernel. */ | 417 | /* Create a socket to the INET6 kernel. */ |
432 | skfd = bb_xsocket(AF_INET6, SOCK_DGRAM, 0); | 418 | skfd = xsocket(AF_INET6, SOCK_DGRAM, 0); |
433 | 419 | ||
434 | rt.rtmsg_ifindex = 0; | 420 | rt.rtmsg_ifindex = 0; |
435 | 421 | ||
@@ -503,7 +489,7 @@ void displayroutes(int noresolve, int netstatfmt) | |||
503 | struct sockaddr_in s_addr; | 489 | struct sockaddr_in s_addr; |
504 | struct in_addr mask; | 490 | struct in_addr mask; |
505 | 491 | ||
506 | FILE *fp = bb_xfopen("/proc/net/route", "r"); | 492 | FILE *fp = xfopen("/proc/net/route", "r"); |
507 | 493 | ||
508 | bb_printf("Kernel IP routing table\n" | 494 | bb_printf("Kernel IP routing table\n" |
509 | "Destination Gateway Genmask" | 495 | "Destination Gateway Genmask" |
@@ -573,7 +559,7 @@ static void INET6_displayroutes(int noresolve) | |||
573 | int iflags, metric, refcnt, use, prefix_len, slen; | 559 | int iflags, metric, refcnt, use, prefix_len, slen; |
574 | struct sockaddr_in6 snaddr6; | 560 | struct sockaddr_in6 snaddr6; |
575 | 561 | ||
576 | FILE *fp = bb_xfopen("/proc/net/ipv6_route", "r"); | 562 | FILE *fp = xfopen("/proc/net/ipv6_route", "r"); |
577 | 563 | ||
578 | bb_printf("Kernel IPv6 routing table\n%-44s%-40s" | 564 | bb_printf("Kernel IPv6 routing table\n%-44s%-40s" |
579 | "Flags Metric Ref Use Iface\n", | 565 | "Flags Metric Ref Use Iface\n", |
@@ -699,7 +685,7 @@ int route_main(int argc, char **argv) | |||
699 | #endif | 685 | #endif |
700 | displayroutes(noresolve, opt & ROUTE_OPT_e); | 686 | displayroutes(noresolve, opt & ROUTE_OPT_e); |
701 | 687 | ||
702 | bb_xferror_stdout(); | 688 | xferror_stdout(); |
703 | bb_fflush_stdout_and_exit(EXIT_SUCCESS); | 689 | bb_fflush_stdout_and_exit(EXIT_SUCCESS); |
704 | } | 690 | } |
705 | 691 | ||
diff --git a/networking/tftp.c b/networking/tftp.c index dfa599ab5..42fd9d2ca 100644 --- a/networking/tftp.c +++ b/networking/tftp.c | |||
@@ -19,18 +19,6 @@ | |||
19 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 19 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
20 | * ------------------------------------------------------------------------- */ | 20 | * ------------------------------------------------------------------------- */ |
21 | 21 | ||
22 | #include <stdio.h> | ||
23 | #include <stdlib.h> | ||
24 | #include <string.h> | ||
25 | #include <sys/types.h> | ||
26 | #include <sys/socket.h> | ||
27 | #include <sys/stat.h> | ||
28 | #include <netdb.h> | ||
29 | #include <netinet/in.h> | ||
30 | #include <arpa/inet.h> | ||
31 | #include <unistd.h> | ||
32 | #include <fcntl.h> | ||
33 | |||
34 | #include "busybox.h" | 22 | #include "busybox.h" |
35 | 23 | ||
36 | 24 | ||
@@ -159,7 +147,7 @@ static int tftp(const int cmd, const struct hostent *host, | |||
159 | char *buf=xmalloc(tftp_bufsize += 4); | 147 | char *buf=xmalloc(tftp_bufsize += 4); |
160 | 148 | ||
161 | if ((socketfd = socket(PF_INET, SOCK_DGRAM, 0)) < 0) { | 149 | if ((socketfd = socket(PF_INET, SOCK_DGRAM, 0)) < 0) { |
162 | /* need to unlink the localfile, so don't use bb_xsocket here. */ | 150 | /* need to unlink the localfile, so don't use xsocket here. */ |
163 | bb_perror_msg("socket"); | 151 | bb_perror_msg("socket"); |
164 | return EXIT_FAILURE; | 152 | return EXIT_FAILURE; |
165 | } | 153 | } |
@@ -167,7 +155,7 @@ static int tftp(const int cmd, const struct hostent *host, | |||
167 | len = sizeof(sa); | 155 | len = sizeof(sa); |
168 | 156 | ||
169 | memset(&sa, 0, len); | 157 | memset(&sa, 0, len); |
170 | bb_xbind(socketfd, (struct sockaddr *)&sa, len); | 158 | xbind(socketfd, (struct sockaddr *)&sa, len); |
171 | 159 | ||
172 | sa.sin_family = host->h_addrtype; | 160 | sa.sin_family = host->h_addrtype; |
173 | sa.sin_port = port; | 161 | sa.sin_port = port; |
diff --git a/networking/traceroute.c b/networking/traceroute.c index c2084fc1e..446490303 100644 --- a/networking/traceroute.c +++ b/networking/traceroute.c | |||
@@ -357,7 +357,7 @@ ifaddrlist(struct IFADDRLIST **ipaddrp) | |||
357 | struct ifreq ibuf[(32 * 1024) / sizeof(struct ifreq)], ifr; | 357 | struct ifreq ibuf[(32 * 1024) / sizeof(struct ifreq)], ifr; |
358 | struct IFADDRLIST *st_ifaddrlist; | 358 | struct IFADDRLIST *st_ifaddrlist; |
359 | 359 | ||
360 | fd = bb_xsocket(AF_INET, SOCK_DGRAM, 0); | 360 | fd = xsocket(AF_INET, SOCK_DGRAM, 0); |
361 | 361 | ||
362 | ifc.ifc_len = sizeof(ibuf); | 362 | ifc.ifc_len = sizeof(ibuf); |
363 | ifc.ifc_buf = (caddr_t)ibuf; | 363 | ifc.ifc_buf = (caddr_t)ibuf; |
@@ -457,7 +457,7 @@ findsaddr(const struct sockaddr_in *to, struct sockaddr_in *from) | |||
457 | struct IFADDRLIST *al; | 457 | struct IFADDRLIST *al; |
458 | char buf[256], tdevice[256], device[256]; | 458 | char buf[256], tdevice[256], device[256]; |
459 | 459 | ||
460 | f = bb_xfopen(route, "r"); | 460 | f = xfopen(route, "r"); |
461 | 461 | ||
462 | /* Find the appropriate interface */ | 462 | /* Find the appropriate interface */ |
463 | n = 0; | 463 | n = 0; |
@@ -875,7 +875,7 @@ gethostinfo(const char *host) | |||
875 | hi = xcalloc(1, sizeof(*hi)); | 875 | hi = xcalloc(1, sizeof(*hi)); |
876 | addr = inet_addr(host); | 876 | addr = inet_addr(host); |
877 | if ((int32_t)addr != -1) { | 877 | if ((int32_t)addr != -1) { |
878 | hi->name = bb_xstrdup(host); | 878 | hi->name = xstrdup(host); |
879 | hi->n = 1; | 879 | hi->n = 1; |
880 | hi->addrs = xcalloc(1, sizeof(hi->addrs[0])); | 880 | hi->addrs = xcalloc(1, sizeof(hi->addrs[0])); |
881 | hi->addrs[0] = addr; | 881 | hi->addrs[0] = addr; |
@@ -885,7 +885,7 @@ gethostinfo(const char *host) | |||
885 | hp = xgethostbyname(host); | 885 | hp = xgethostbyname(host); |
886 | if (hp->h_addrtype != AF_INET || hp->h_length != 4) | 886 | if (hp->h_addrtype != AF_INET || hp->h_length != 4) |
887 | bb_perror_msg_and_die("bad host %s", host); | 887 | bb_perror_msg_and_die("bad host %s", host); |
888 | hi->name = bb_xstrdup(hp->h_name); | 888 | hi->name = xstrdup(hp->h_name); |
889 | for (n = 0, p = hp->h_addr_list; *p != NULL; ++n, ++p) | 889 | for (n = 0, p = hp->h_addr_list; *p != NULL; ++n, ++p) |
890 | continue; | 890 | continue; |
891 | hi->n = n; | 891 | hi->n = n; |
@@ -1081,11 +1081,11 @@ traceroute_main(int argc, char *argv[]) | |||
1081 | bb_perror_msg_and_die("unknown protocol %s", cp); | 1081 | bb_perror_msg_and_die("unknown protocol %s", cp); |
1082 | 1082 | ||
1083 | /* Insure the socket fds won't be 0, 1 or 2 */ | 1083 | /* Insure the socket fds won't be 0, 1 or 2 */ |
1084 | do n = bb_xopen(bb_dev_null, O_RDONLY); while (n < 2); | 1084 | do n = xopen(bb_dev_null, O_RDONLY); while (n < 2); |
1085 | if (n > 2) | 1085 | if (n > 2) |
1086 | close(n); | 1086 | close(n); |
1087 | 1087 | ||
1088 | s = bb_xsocket(AF_INET, SOCK_RAW, pe->p_proto); | 1088 | s = xsocket(AF_INET, SOCK_RAW, pe->p_proto); |
1089 | 1089 | ||
1090 | #ifdef CONFIG_FEATURE_TRACEROUTE_SO_DEBUG | 1090 | #ifdef CONFIG_FEATURE_TRACEROUTE_SO_DEBUG |
1091 | if (op & USAGE_OP_DEBUG) | 1091 | if (op & USAGE_OP_DEBUG) |
@@ -1096,7 +1096,7 @@ traceroute_main(int argc, char *argv[]) | |||
1096 | (void)setsockopt(s, SOL_SOCKET, SO_DONTROUTE, (char *)&on, | 1096 | (void)setsockopt(s, SOL_SOCKET, SO_DONTROUTE, (char *)&on, |
1097 | sizeof(on)); | 1097 | sizeof(on)); |
1098 | 1098 | ||
1099 | sndsock = bb_xsocket(AF_INET, SOCK_RAW, IPPROTO_RAW); | 1099 | sndsock = xsocket(AF_INET, SOCK_RAW, IPPROTO_RAW); |
1100 | 1100 | ||
1101 | #ifdef CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE | 1101 | #ifdef CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE |
1102 | #if defined(IP_OPTIONS) | 1102 | #if defined(IP_OPTIONS) |
@@ -1248,7 +1248,7 @@ traceroute_main(int argc, char *argv[]) | |||
1248 | 1248 | ||
1249 | outip->ip_src = from->sin_addr; | 1249 | outip->ip_src = from->sin_addr; |
1250 | #ifndef IP_HDRINCL | 1250 | #ifndef IP_HDRINCL |
1251 | bb_xbind(sndsock, (struct sockaddr *)from, sizeof(*from)); | 1251 | xbind(sndsock, (struct sockaddr *)from, sizeof(*from)); |
1252 | #endif | 1252 | #endif |
1253 | 1253 | ||
1254 | fprintf(stderr, "traceroute to %s (%s)", hostname, inet_ntoa(to->sin_addr)); | 1254 | fprintf(stderr, "traceroute to %s (%s)", hostname, inet_ntoa(to->sin_addr)); |
diff --git a/networking/udhcp/libbb_udhcp.h b/networking/udhcp/libbb_udhcp.h index 3cf2d1401..c21d3baab 100644 --- a/networking/udhcp/libbb_udhcp.h +++ b/networking/udhcp/libbb_udhcp.h | |||
@@ -20,8 +20,6 @@ | |||
20 | 20 | ||
21 | #define COMBINED_BINARY | 21 | #define COMBINED_BINARY |
22 | 22 | ||
23 | #define xfopen bb_xfopen | ||
24 | |||
25 | void udhcp_background(const char *pidfile); | 23 | void udhcp_background(const char *pidfile); |
26 | void udhcp_start_log_and_pid(const char *client_server, const char *pidfile); | 24 | void udhcp_start_log_and_pid(const char *client_server, const char *pidfile); |
27 | void udhcp_logging(int level, const char *fmt, ...); | 25 | void udhcp_logging(int level, const char *fmt, ...); |
diff --git a/networking/udhcp/script.c b/networking/udhcp/script.c index 8c4933455..5a4b33a53 100644 --- a/networking/udhcp/script.c +++ b/networking/udhcp/script.c | |||
@@ -149,10 +149,10 @@ static char **fill_envp(struct dhcpMessage *packet) | |||
149 | 149 | ||
150 | envp = xzalloc(sizeof(char *) * (num_options + 5)); | 150 | envp = xzalloc(sizeof(char *) * (num_options + 5)); |
151 | j = 0; | 151 | j = 0; |
152 | envp[j++] = bb_xasprintf("interface=%s", client_config.interface); | 152 | envp[j++] = xasprintf("interface=%s", client_config.interface); |
153 | envp[j++] = bb_xasprintf("PATH=%s", | 153 | envp[j++] = xasprintf("PATH=%s", |
154 | getenv("PATH") ? : "/bin:/usr/bin:/sbin:/usr/sbin"); | 154 | getenv("PATH") ? : "/bin:/usr/bin:/sbin:/usr/sbin"); |
155 | envp[j++] = bb_xasprintf("HOME=%s", getenv("HOME") ? : "/"); | 155 | envp[j++] = xasprintf("HOME=%s", getenv("HOME") ? : "/"); |
156 | 156 | ||
157 | if (packet == NULL) return envp; | 157 | if (packet == NULL) return envp; |
158 | 158 | ||
@@ -170,7 +170,7 @@ static char **fill_envp(struct dhcpMessage *packet) | |||
170 | /* Fill in a subnet bits option for things like /24 */ | 170 | /* Fill in a subnet bits option for things like /24 */ |
171 | if (dhcp_options[i].code == DHCP_SUBNET) { | 171 | if (dhcp_options[i].code == DHCP_SUBNET) { |
172 | memcpy(&subnet, temp, 4); | 172 | memcpy(&subnet, temp, 4); |
173 | envp[j++] = bb_xasprintf("mask=%d", mton(&subnet)); | 173 | envp[j++] = xasprintf("mask=%d", mton(&subnet)); |
174 | } | 174 | } |
175 | } | 175 | } |
176 | if (packet->siaddr) { | 176 | if (packet->siaddr) { |
@@ -180,12 +180,12 @@ static char **fill_envp(struct dhcpMessage *packet) | |||
180 | if (!(over & FILE_FIELD) && packet->file[0]) { | 180 | if (!(over & FILE_FIELD) && packet->file[0]) { |
181 | /* watch out for invalid packets */ | 181 | /* watch out for invalid packets */ |
182 | packet->file[sizeof(packet->file) - 1] = '\0'; | 182 | packet->file[sizeof(packet->file) - 1] = '\0'; |
183 | envp[j++] = bb_xasprintf("boot_file=%s", packet->file); | 183 | envp[j++] = xasprintf("boot_file=%s", packet->file); |
184 | } | 184 | } |
185 | if (!(over & SNAME_FIELD) && packet->sname[0]) { | 185 | if (!(over & SNAME_FIELD) && packet->sname[0]) { |
186 | /* watch out for invalid packets */ | 186 | /* watch out for invalid packets */ |
187 | packet->sname[sizeof(packet->sname) - 1] = '\0'; | 187 | packet->sname[sizeof(packet->sname) - 1] = '\0'; |
188 | envp[j++] = bb_xasprintf("sname=%s", packet->sname); | 188 | envp[j++] = xasprintf("sname=%s", packet->sname); |
189 | } | 189 | } |
190 | return envp; | 190 | return envp; |
191 | } | 191 | } |
diff --git a/networking/vconfig.c b/networking/vconfig.c index 6cbbb54ca..b90f41085 100644 --- a/networking/vconfig.c +++ b/networking/vconfig.c | |||
@@ -9,14 +9,8 @@ | |||
9 | 9 | ||
10 | /* BB_AUDIT SUSv3 N/A */ | 10 | /* BB_AUDIT SUSv3 N/A */ |
11 | 11 | ||
12 | #include <stdlib.h> | ||
13 | #include <unistd.h> | ||
14 | #include <fcntl.h> | ||
15 | #include <sys/ioctl.h> | ||
16 | #include <net/if.h> | ||
17 | #include <string.h> | ||
18 | #include <limits.h> | ||
19 | #include "busybox.h" | 12 | #include "busybox.h" |
13 | #include <net/if.h> | ||
20 | 14 | ||
21 | /* Stuff from linux/if_vlan.h, kernel version 2.4.23 */ | 15 | /* Stuff from linux/if_vlan.h, kernel version 2.4.23 */ |
22 | enum vlan_ioctl_cmds { | 16 | enum vlan_ioctl_cmds { |
@@ -124,7 +118,7 @@ int vconfig_main(int argc, char **argv) | |||
124 | 118 | ||
125 | /* Don't bother closing the filedes. It will be closed on cleanup. */ | 119 | /* Don't bother closing the filedes. It will be closed on cleanup. */ |
126 | /* Will die if 802.1q is not present */ | 120 | /* Will die if 802.1q is not present */ |
127 | bb_xopen3(conf_file_name, O_RDONLY, 0); | 121 | xopen3(conf_file_name, O_RDONLY, 0); |
128 | 122 | ||
129 | memset(&ifr, 0, sizeof(struct vlan_ioctl_args)); | 123 | memset(&ifr, 0, sizeof(struct vlan_ioctl_args)); |
130 | 124 | ||
@@ -159,7 +153,7 @@ int vconfig_main(int argc, char **argv) | |||
159 | } | 153 | } |
160 | } | 154 | } |
161 | 155 | ||
162 | fd = bb_xsocket(AF_INET, SOCK_STREAM, 0); | 156 | fd = xsocket(AF_INET, SOCK_STREAM, 0); |
163 | if (ioctl(fd, SIOCSIFVLAN, &ifr) < 0) { | 157 | if (ioctl(fd, SIOCSIFVLAN, &ifr) < 0) { |
164 | bb_perror_msg_and_die("ioctl error for %s", *argv); | 158 | bb_perror_msg_and_die("ioctl error for %s", *argv); |
165 | } | 159 | } |
diff --git a/networking/wget.c b/networking/wget.c index 6565bb1f3..1b7555abc 100644 --- a/networking/wget.c +++ b/networking/wget.c | |||
@@ -7,9 +7,6 @@ | |||
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include "busybox.h" | 9 | #include "busybox.h" |
10 | #include <errno.h> | ||
11 | #include <signal.h> | ||
12 | #include <sys/ioctl.h> | ||
13 | #include <getopt.h> | 10 | #include <getopt.h> |
14 | 11 | ||
15 | 12 | ||
@@ -221,7 +218,7 @@ int wget_main(int argc, char **argv) | |||
221 | if (use_proxy) { | 218 | if (use_proxy) { |
222 | proxy = getenv(target.is_ftp ? "ftp_proxy" : "http_proxy"); | 219 | proxy = getenv(target.is_ftp ? "ftp_proxy" : "http_proxy"); |
223 | if (proxy && *proxy) { | 220 | if (proxy && *proxy) { |
224 | parse_url(bb_xstrdup(proxy), &server); | 221 | parse_url(xstrdup(proxy), &server); |
225 | } else { | 222 | } else { |
226 | use_proxy = 0; | 223 | use_proxy = 0; |
227 | } | 224 | } |
@@ -263,7 +260,7 @@ int wget_main(int argc, char **argv) | |||
263 | output = stdout; | 260 | output = stdout; |
264 | quiet_flag = TRUE; | 261 | quiet_flag = TRUE; |
265 | } else { | 262 | } else { |
266 | output = bb_xfopen(fname_out, (do_continue ? "a" : "w")); | 263 | output = xfopen(fname_out, (do_continue ? "a" : "w")); |
267 | } | 264 | } |
268 | 265 | ||
269 | /* | 266 | /* |
@@ -396,9 +393,9 @@ read_response: | |||
396 | } | 393 | } |
397 | if (strcasecmp(buf, "location") == 0) { | 394 | if (strcasecmp(buf, "location") == 0) { |
398 | if (s[0] == '/') | 395 | if (s[0] == '/') |
399 | target.path = bb_xstrdup(s+1); | 396 | target.path = xstrdup(s+1); |
400 | else { | 397 | else { |
401 | parse_url(bb_xstrdup(s), &target); | 398 | parse_url(xstrdup(s), &target); |
402 | if (use_proxy == 0) { | 399 | if (use_proxy == 0) { |
403 | server.host = target.host; | 400 | server.host = target.host; |
404 | server.port = target.port; | 401 | server.port = target.port; |
@@ -419,7 +416,7 @@ read_response: | |||
419 | * FTP session | 416 | * FTP session |
420 | */ | 417 | */ |
421 | if (! target.user) | 418 | if (! target.user) |
422 | target.user = bb_xstrdup("anonymous:busybox@"); | 419 | target.user = xstrdup("anonymous:busybox@"); |
423 | 420 | ||
424 | sfp = open_socket(&s_in); | 421 | sfp = open_socket(&s_in); |
425 | if (ftpcmd(NULL, NULL, sfp, buf) != 220) | 422 | if (ftpcmd(NULL, NULL, sfp, buf) != 220) |
@@ -556,7 +553,7 @@ void parse_url(char *url, struct host_info *h) | |||
556 | *sp++ = '\0'; | 553 | *sp++ = '\0'; |
557 | h->path = sp; | 554 | h->path = sp; |
558 | } else | 555 | } else |
559 | h->path = bb_xstrdup(""); | 556 | h->path = xstrdup(""); |
560 | 557 | ||
561 | up = strrchr(h->host, '@'); | 558 | up = strrchr(h->host, '@'); |
562 | if (up != NULL) { | 559 | if (up != NULL) { |
diff --git a/procps/sysctl.c b/procps/sysctl.c index 5673d293f..03a03889e 100644 --- a/procps/sysctl.c +++ b/procps/sysctl.c | |||
@@ -15,15 +15,6 @@ | |||
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include "busybox.h" | 17 | #include "busybox.h" |
18 | #include <stdio.h> | ||
19 | #include <stdlib.h> | ||
20 | #include <unistd.h> | ||
21 | #include <sys/stat.h> | ||
22 | #include <sys/types.h> | ||
23 | #include <dirent.h> | ||
24 | #include <string.h> | ||
25 | #include <errno.h> | ||
26 | #include <fcntl.h> | ||
27 | 18 | ||
28 | /* | 19 | /* |
29 | * Function Prototypes | 20 | * Function Prototypes |
@@ -202,8 +193,8 @@ int sysctl_write_setting(const char *setting, int output) | |||
202 | return -2; | 193 | return -2; |
203 | } | 194 | } |
204 | 195 | ||
205 | tmpname = bb_xasprintf("%s%.*s", PROC_PATH, (int)(equals - name), name); | 196 | tmpname = xasprintf("%s%.*s", PROC_PATH, (int)(equals - name), name); |
206 | outname = bb_xstrdup(tmpname + strlen(PROC_PATH)); | 197 | outname = xstrdup(tmpname + strlen(PROC_PATH)); |
207 | 198 | ||
208 | while ((cptr = strchr(tmpname, '.')) != NULL) | 199 | while ((cptr = strchr(tmpname, '.')) != NULL) |
209 | *cptr = '/'; | 200 | *cptr = '/'; |
@@ -258,7 +249,7 @@ int sysctl_read_setting(const char *setting, int output) | |||
258 | bb_error_msg(ERR_INVALID_KEY, setting); | 249 | bb_error_msg(ERR_INVALID_KEY, setting); |
259 | 250 | ||
260 | tmpname = concat_path_file(PROC_PATH, name); | 251 | tmpname = concat_path_file(PROC_PATH, name); |
261 | outname = bb_xstrdup(tmpname + strlen(PROC_PATH)); | 252 | outname = xstrdup(tmpname + strlen(PROC_PATH)); |
262 | 253 | ||
263 | while ((cptr = strchr(tmpname, '.')) != NULL) | 254 | while ((cptr = strchr(tmpname, '.')) != NULL) |
264 | *cptr = '/'; | 255 | *cptr = '/'; |
@@ -309,7 +300,7 @@ int sysctl_display_all(const char *path, int output, int show_table) | |||
309 | char *tmpdir; | 300 | char *tmpdir; |
310 | struct stat ts; | 301 | struct stat ts; |
311 | 302 | ||
312 | if (!(dp = bb_opendir(path))) { | 303 | if (!(dp = opendir(path))) { |
313 | retval = -1; | 304 | retval = -1; |
314 | } else { | 305 | } else { |
315 | while ((de = readdir(dp)) != NULL) { | 306 | while ((de = readdir(dp)) != NULL) { |
diff --git a/procps/top.c b/procps/top.c index bf30c23f6..1b6f7072f 100644 --- a/procps/top.c +++ b/procps/top.c | |||
@@ -29,22 +29,9 @@ | |||
29 | */ | 29 | */ |
30 | 30 | ||
31 | #include "busybox.h" | 31 | #include "busybox.h" |
32 | #include <sys/types.h> | ||
33 | #include <stdio.h> | ||
34 | #include <stdlib.h> | ||
35 | #include <unistd.h> | ||
36 | #include <string.h> | ||
37 | #include <sys/ioctl.h> | ||
38 | 32 | ||
39 | //#define CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE /* + 2k */ | 33 | //#define CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE /* + 2k */ |
40 | 34 | ||
41 | #ifdef CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE | ||
42 | #include <time.h> | ||
43 | #include <fcntl.h> | ||
44 | #include <netinet/in.h> /* htons */ | ||
45 | #endif | ||
46 | |||
47 | |||
48 | typedef int (*cmp_t)(procps_status_t *P, procps_status_t *Q); | 35 | typedef int (*cmp_t)(procps_status_t *P, procps_status_t *Q); |
49 | 36 | ||
50 | static procps_status_t *top; /* Hehe */ | 37 | static procps_status_t *top; /* Hehe */ |
@@ -116,7 +103,7 @@ static struct jiffy_counts jif, prev_jif; | |||
116 | 103 | ||
117 | static void get_jiffy_counts(void) | 104 | static void get_jiffy_counts(void) |
118 | { | 105 | { |
119 | FILE* fp = bb_xfopen("stat", "r"); | 106 | FILE* fp = xfopen("stat", "r"); |
120 | prev_jif = jif; | 107 | prev_jif = jif; |
121 | if (fscanf(fp, "cpu %lld %lld %lld %lld %lld %lld %lld %lld", | 108 | if (fscanf(fp, "cpu %lld %lld %lld %lld %lld %lld %lld %lld", |
122 | &jif.usr,&jif.nic,&jif.sys,&jif.idle, | 109 | &jif.usr,&jif.nic,&jif.sys,&jif.idle, |
@@ -196,7 +183,7 @@ static unsigned long display_generic(int scr_width) | |||
196 | unsigned int needs_conversion = 1; | 183 | unsigned int needs_conversion = 1; |
197 | 184 | ||
198 | /* read memory info */ | 185 | /* read memory info */ |
199 | fp = bb_xfopen("meminfo", "r"); | 186 | fp = xfopen("meminfo", "r"); |
200 | 187 | ||
201 | /* | 188 | /* |
202 | * Old kernels (such as 2.4.x) had a nice summary of memory info that | 189 | * Old kernels (such as 2.4.x) had a nice summary of memory info that |
@@ -238,7 +225,7 @@ static unsigned long display_generic(int scr_width) | |||
238 | fclose(fp); | 225 | fclose(fp); |
239 | 226 | ||
240 | /* read load average as a string */ | 227 | /* read load average as a string */ |
241 | fp = bb_xfopen("loadavg", "r"); | 228 | fp = xfopen("loadavg", "r"); |
242 | buf[0] = '\0'; | 229 | buf[0] = '\0'; |
243 | fgets(buf, sizeof(buf), fp); | 230 | fgets(buf, sizeof(buf), fp); |
244 | end = strchr(buf, ' '); | 231 | end = strchr(buf, ' '); |
@@ -414,7 +401,7 @@ int top_main(int argc, char **argv) | |||
414 | } | 401 | } |
415 | 402 | ||
416 | /* change to /proc */ | 403 | /* change to /proc */ |
417 | bb_xchdir("/proc"); | 404 | xchdir("/proc"); |
418 | #ifdef CONFIG_FEATURE_USE_TERMIOS | 405 | #ifdef CONFIG_FEATURE_USE_TERMIOS |
419 | tcgetattr(0, (void *) &initial_settings); | 406 | tcgetattr(0, (void *) &initial_settings); |
420 | memcpy(&new_settings, &initial_settings, sizeof(struct termios)); | 407 | memcpy(&new_settings, &initial_settings, sizeof(struct termios)); |
diff --git a/shell/ash.c b/shell/ash.c index 5031ae153..c1b2b0ed6 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -6011,7 +6011,7 @@ static inline void putprompt(const char *s) | |||
6011 | { | 6011 | { |
6012 | #ifdef CONFIG_ASH_EXPAND_PRMT | 6012 | #ifdef CONFIG_ASH_EXPAND_PRMT |
6013 | free(cmdedit_prompt); | 6013 | free(cmdedit_prompt); |
6014 | cmdedit_prompt = bb_xstrdup(s); | 6014 | cmdedit_prompt = xstrdup(s); |
6015 | #else | 6015 | #else |
6016 | cmdedit_prompt = s; | 6016 | cmdedit_prompt = s; |
6017 | #endif | 6017 | #endif |
@@ -8105,7 +8105,7 @@ static int dotcmd(int argc, char **argv) | |||
8105 | int status = 0; | 8105 | int status = 0; |
8106 | 8106 | ||
8107 | for (sp = cmdenviron; sp; sp = sp->next) | 8107 | for (sp = cmdenviron; sp; sp = sp->next) |
8108 | setvareq(bb_xstrdup(sp->text), VSTRFIXED | VTEXTFIXED); | 8108 | setvareq(xstrdup(sp->text), VSTRFIXED | VTEXTFIXED); |
8109 | 8109 | ||
8110 | if (argc >= 2) { /* That's what SVR2 does */ | 8110 | if (argc >= 2) { /* That's what SVR2 does */ |
8111 | char *fullname; | 8111 | char *fullname; |
diff --git a/shell/cmdedit.c b/shell/cmdedit.c index 59226aff5..0af1a2ad0 100644 --- a/shell/cmdedit.c +++ b/shell/cmdedit.c | |||
@@ -216,7 +216,7 @@ static void cmdedit_set_out_char(int next_char) | |||
216 | printf("\033[7m%c\033[0m", c); | 216 | printf("\033[7m%c\033[0m", c); |
217 | } else | 217 | } else |
218 | #endif | 218 | #endif |
219 | putchar(c); | 219 | if (initial_settings.c_lflag & ECHO) putchar(c); |
220 | if (++cmdedit_x >= cmdedit_termw) { | 220 | if (++cmdedit_x >= cmdedit_termw) { |
221 | /* terminal is scrolled down */ | 221 | /* terminal is scrolled down */ |
222 | cmdedit_y++; | 222 | cmdedit_y++; |
@@ -546,8 +546,8 @@ static void cmdedit_init(void) | |||
546 | my_euid = geteuid(); | 546 | my_euid = geteuid(); |
547 | entry = getpwuid(my_euid); | 547 | entry = getpwuid(my_euid); |
548 | if (entry) { | 548 | if (entry) { |
549 | user_buf = bb_xstrdup(entry->pw_name); | 549 | user_buf = xstrdup(entry->pw_name); |
550 | home_pwd_buf = bb_xstrdup(entry->pw_dir); | 550 | home_pwd_buf = xstrdup(entry->pw_dir); |
551 | } | 551 | } |
552 | #endif | 552 | #endif |
553 | 553 | ||
@@ -634,7 +634,7 @@ static void username_tab_completion(char *ud, char *with_shash_flg) | |||
634 | while ((entry = getpwent()) != NULL) { | 634 | while ((entry = getpwent()) != NULL) { |
635 | /* Null usernames should result in all users as possible completions. */ | 635 | /* Null usernames should result in all users as possible completions. */ |
636 | if ( /*!userlen || */ !strncmp(ud, entry->pw_name, userlen)) { | 636 | if ( /*!userlen || */ !strncmp(ud, entry->pw_name, userlen)) { |
637 | add_match(bb_xasprintf("~%s", entry->pw_name), '/'); | 637 | add_match(xasprintf("~%s", entry->pw_name), '/'); |
638 | } | 638 | } |
639 | } | 639 | } |
640 | 640 | ||
@@ -684,7 +684,7 @@ static int path_parse(char ***p, int flags) | |||
684 | *p = xmalloc(npth * sizeof(char *)); | 684 | *p = xmalloc(npth * sizeof(char *)); |
685 | 685 | ||
686 | tmp = pth; | 686 | tmp = pth; |
687 | (*p)[0] = bb_xstrdup(tmp); | 687 | (*p)[0] = xstrdup(tmp); |
688 | npth = 1; /* count words is + 1 count ':' */ | 688 | npth = 1; /* count words is + 1 count ':' */ |
689 | 689 | ||
690 | for (;;) { | 690 | for (;;) { |
@@ -1114,7 +1114,7 @@ static void input_tab(int *lastWasTab) | |||
1114 | if (!matches) | 1114 | if (!matches) |
1115 | return; /* not found */ | 1115 | return; /* not found */ |
1116 | /* find minimal match */ | 1116 | /* find minimal match */ |
1117 | tmp1 = bb_xstrdup(matches[0]); | 1117 | tmp1 = xstrdup(matches[0]); |
1118 | for (tmp = tmp1; *tmp; tmp++) | 1118 | for (tmp = tmp1; *tmp; tmp++) |
1119 | for (len_found = 1; len_found < num_matches; len_found++) | 1119 | for (len_found = 1; len_found < num_matches; len_found++) |
1120 | if (matches[len_found][(tmp - tmp1)] != *tmp) { | 1120 | if (matches[len_found][(tmp - tmp1)] != *tmp) { |
@@ -1175,7 +1175,7 @@ static void get_previous_history(void) | |||
1175 | { | 1175 | { |
1176 | if(command_ps[0] != 0 || history[cur_history] == 0) { | 1176 | if(command_ps[0] != 0 || history[cur_history] == 0) { |
1177 | free(history[cur_history]); | 1177 | free(history[cur_history]); |
1178 | history[cur_history] = bb_xstrdup(command_ps); | 1178 | history[cur_history] = xstrdup(command_ps); |
1179 | } | 1179 | } |
1180 | cur_history--; | 1180 | cur_history--; |
1181 | } | 1181 | } |
@@ -1856,7 +1856,7 @@ rewrite_line: | |||
1856 | for(i = 0; i < (MAX_HISTORY-1); i++) | 1856 | for(i = 0; i < (MAX_HISTORY-1); i++) |
1857 | history[i] = history[i+1]; | 1857 | history[i] = history[i+1]; |
1858 | } | 1858 | } |
1859 | history[i++] = bb_xstrdup(command); | 1859 | history[i++] = xstrdup(command); |
1860 | cur_history = i; | 1860 | cur_history = i; |
1861 | n_history = i; | 1861 | n_history = i; |
1862 | #if defined(CONFIG_FEATURE_SH_FANCY_PROMPT) | 1862 | #if defined(CONFIG_FEATURE_SH_FANCY_PROMPT) |
diff --git a/shell/hush.c b/shell/hush.c index 8c432942e..8df91a1e8 100644 --- a/shell/hush.c +++ b/shell/hush.c | |||
@@ -1320,7 +1320,7 @@ static int run_pipe_real(struct pipe *pi) | |||
1320 | * variable. */ | 1320 | * variable. */ |
1321 | int export_me=0; | 1321 | int export_me=0; |
1322 | char *name, *value; | 1322 | char *name, *value; |
1323 | name = bb_xstrdup(child->argv[i]); | 1323 | name = xstrdup(child->argv[i]); |
1324 | debug_printf("Local environment set: %s\n", name); | 1324 | debug_printf("Local environment set: %s\n", name); |
1325 | value = strchr(name, '='); | 1325 | value = strchr(name, '='); |
1326 | if (value) | 1326 | if (value) |
@@ -2753,7 +2753,7 @@ int hush_main(int argc, char **argv) | |||
2753 | debug_printf("\nrunning script '%s'\n", argv[optind]); | 2753 | debug_printf("\nrunning script '%s'\n", argv[optind]); |
2754 | global_argv = argv+optind; | 2754 | global_argv = argv+optind; |
2755 | global_argc = argc-optind; | 2755 | global_argc = argc-optind; |
2756 | input = bb_xfopen(argv[optind], "r"); | 2756 | input = xfopen(argv[optind], "r"); |
2757 | opt = parse_file_outer(input); | 2757 | opt = parse_file_outer(input); |
2758 | 2758 | ||
2759 | #ifdef CONFIG_FEATURE_CLEAN_UP | 2759 | #ifdef CONFIG_FEATURE_CLEAN_UP |
diff --git a/shell/lash.c b/shell/lash.c index 92c24d1c2..eae949e18 100644 --- a/shell/lash.c +++ b/shell/lash.c | |||
@@ -710,7 +710,7 @@ static char * strsep_space( char *string, int * ix) | |||
710 | return NULL; | 710 | return NULL; |
711 | } | 711 | } |
712 | 712 | ||
713 | token = bb_xstrndup(string, *ix); | 713 | token = xstrndup(string, *ix); |
714 | 714 | ||
715 | return token; | 715 | return token; |
716 | } | 716 | } |
@@ -751,7 +751,7 @@ static int expand_arguments(char *command) | |||
751 | 751 | ||
752 | /* We need a clean copy, so strsep can mess up the copy while | 752 | /* We need a clean copy, so strsep can mess up the copy while |
753 | * we write stuff into the original (in a minute) */ | 753 | * we write stuff into the original (in a minute) */ |
754 | cmd = cmd_copy = bb_xstrdup(command); | 754 | cmd = cmd_copy = xstrdup(command); |
755 | *command = '\0'; | 755 | *command = '\0'; |
756 | for (ix = 0, tmpcmd = cmd; | 756 | for (ix = 0, tmpcmd = cmd; |
757 | (tmpcmd = strsep_space(cmd, &ix)) != NULL; cmd += ix, ix=0) { | 757 | (tmpcmd = strsep_space(cmd, &ix)) != NULL; cmd += ix, ix=0) { |
@@ -1123,10 +1123,10 @@ static int parse_command(char **command_ptr, struct job *job, int *inbg) | |||
1123 | prog->argv[argc_l] = NULL; | 1123 | prog->argv[argc_l] = NULL; |
1124 | 1124 | ||
1125 | if (!return_command) { | 1125 | if (!return_command) { |
1126 | job->text = bb_xstrdup(*command_ptr); | 1126 | job->text = xstrdup(*command_ptr); |
1127 | } else { | 1127 | } else { |
1128 | /* This leaves any trailing spaces, which is a bit sloppy */ | 1128 | /* This leaves any trailing spaces, which is a bit sloppy */ |
1129 | job->text = bb_xstrndup(*command_ptr, return_command - *command_ptr); | 1129 | job->text = xstrndup(*command_ptr, return_command - *command_ptr); |
1130 | } | 1130 | } |
1131 | 1131 | ||
1132 | *command_ptr = return_command; | 1132 | *command_ptr = return_command; |
@@ -1543,7 +1543,7 @@ int lash_main(int argc_l, char **argv_l) | |||
1543 | input = NULL; | 1543 | input = NULL; |
1544 | if (local_pending_command != 0) | 1544 | if (local_pending_command != 0) |
1545 | bb_error_msg_and_die("multiple -c arguments"); | 1545 | bb_error_msg_and_die("multiple -c arguments"); |
1546 | local_pending_command = bb_xstrdup(argv[optind]); | 1546 | local_pending_command = xstrdup(argv[optind]); |
1547 | optind++; | 1547 | optind++; |
1548 | argv = argv+optind; | 1548 | argv = argv+optind; |
1549 | break; | 1549 | break; |
@@ -1575,7 +1575,7 @@ int lash_main(int argc_l, char **argv_l) | |||
1575 | } | 1575 | } |
1576 | } else if (!local_pending_command && argv[optind]) { | 1576 | } else if (!local_pending_command && argv[optind]) { |
1577 | //printf( "optind=%d argv[optind]='%s'\n", optind, argv[optind]); | 1577 | //printf( "optind=%d argv[optind]='%s'\n", optind, argv[optind]); |
1578 | input = bb_xfopen(argv[optind], "r"); | 1578 | input = xfopen(argv[optind], "r"); |
1579 | /* be lazy, never mark this closed */ | 1579 | /* be lazy, never mark this closed */ |
1580 | llist_add_to(&close_me_list, (void *)(long)fileno(input)); | 1580 | llist_add_to(&close_me_list, (void *)(long)fileno(input)); |
1581 | } | 1581 | } |
diff --git a/sysklogd/klogd.c b/sysklogd/klogd.c index 92590d209..677c9e607 100644 --- a/sysklogd/klogd.c +++ b/sysklogd/klogd.c | |||
@@ -18,13 +18,6 @@ | |||
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include "busybox.h" | 20 | #include "busybox.h" |
21 | #include <stdio.h> | ||
22 | #include <stdlib.h> | ||
23 | #include <signal.h> /* for our signal() handlers */ | ||
24 | #include <string.h> /* strncpy() */ | ||
25 | #include <errno.h> /* errno and friends */ | ||
26 | #include <unistd.h> | ||
27 | #include <ctype.h> | ||
28 | #include <sys/syslog.h> | 21 | #include <sys/syslog.h> |
29 | #include <sys/klog.h> | 22 | #include <sys/klog.h> |
30 | 23 | ||
@@ -66,7 +59,7 @@ int klogd_main(int argc, char **argv) | |||
66 | #ifdef BB_NOMMU | 59 | #ifdef BB_NOMMU |
67 | vfork_daemon_rexec(0, 1, argc, argv, "-n"); | 60 | vfork_daemon_rexec(0, 1, argc, argv, "-n"); |
68 | #else | 61 | #else |
69 | bb_xdaemon(0, 1); | 62 | xdaemon(0, 1); |
70 | #endif | 63 | #endif |
71 | } | 64 | } |
72 | } | 65 | } |
diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c index dfff75728..87313af43 100644 --- a/sysklogd/syslogd.c +++ b/sysklogd/syslogd.c | |||
@@ -14,24 +14,9 @@ | |||
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include "busybox.h" | 16 | #include "busybox.h" |
17 | #include <stdio.h> | ||
18 | #include <stdlib.h> | ||
19 | #include <ctype.h> | ||
20 | #include <errno.h> | ||
21 | #include <fcntl.h> | ||
22 | #include <getopt.h> | ||
23 | #include <netdb.h> | ||
24 | #include <paths.h> | 17 | #include <paths.h> |
25 | #include <signal.h> | ||
26 | #include <stdarg.h> | ||
27 | #include <stdbool.h> | 18 | #include <stdbool.h> |
28 | #include <time.h> | ||
29 | #include <string.h> | ||
30 | #include <unistd.h> | ||
31 | #include <sys/socket.h> | ||
32 | #include <sys/types.h> | ||
33 | #include <sys/un.h> | 19 | #include <sys/un.h> |
34 | #include <sys/param.h> | ||
35 | 20 | ||
36 | /* SYSLOG_NAMES defined to pull some extra junk from syslog.h */ | 21 | /* SYSLOG_NAMES defined to pull some extra junk from syslog.h */ |
37 | #define SYSLOG_NAMES | 22 | #define SYSLOG_NAMES |
@@ -368,7 +353,7 @@ static void message(char *fmt, ...) | |||
368 | static void init_RemoteLog(void) | 353 | static void init_RemoteLog(void) |
369 | { | 354 | { |
370 | memset(&remoteaddr, 0, sizeof(remoteaddr)); | 355 | memset(&remoteaddr, 0, sizeof(remoteaddr)); |
371 | remotefd = bb_xsocket(AF_INET, SOCK_DGRAM, 0); | 356 | remotefd = xsocket(AF_INET, SOCK_DGRAM, 0); |
372 | remoteaddr.sin_family = AF_INET; | 357 | remoteaddr.sin_family = AF_INET; |
373 | remoteaddr.sin_addr = *(struct in_addr *) *(xgethostbyname(RemoteHost))->h_addr_list; | 358 | remoteaddr.sin_addr = *(struct in_addr *) *(xgethostbyname(RemoteHost))->h_addr_list; |
374 | remoteaddr.sin_port = htons(RemotePort); | 359 | remoteaddr.sin_port = htons(RemotePort); |
@@ -537,7 +522,7 @@ static void doSyslogd(void) | |||
537 | memset(&sunx, 0, sizeof(sunx)); | 522 | memset(&sunx, 0, sizeof(sunx)); |
538 | sunx.sun_family = AF_UNIX; | 523 | sunx.sun_family = AF_UNIX; |
539 | strncpy(sunx.sun_path, lfile, sizeof(sunx.sun_path)); | 524 | strncpy(sunx.sun_path, lfile, sizeof(sunx.sun_path)); |
540 | sock_fd = bb_xsocket(AF_UNIX, SOCK_DGRAM, 0); | 525 | sock_fd = xsocket(AF_UNIX, SOCK_DGRAM, 0); |
541 | addrLength = sizeof(sunx.sun_family) + strlen(sunx.sun_path); | 526 | addrLength = sizeof(sunx.sun_family) + strlen(sunx.sun_path); |
542 | if (bind(sock_fd, (struct sockaddr *) &sunx, addrLength) < 0) { | 527 | if (bind(sock_fd, (struct sockaddr *) &sunx, addrLength) < 0) { |
543 | bb_perror_msg_and_die("Could not connect to socket " _PATH_LOG); | 528 | bb_perror_msg_and_die("Could not connect to socket " _PATH_LOG); |
@@ -623,7 +608,7 @@ int syslogd_main(int argc, char **argv) | |||
623 | #endif | 608 | #endif |
624 | #ifdef CONFIG_FEATURE_REMOTE_LOG | 609 | #ifdef CONFIG_FEATURE_REMOTE_LOG |
625 | case 'R': | 610 | case 'R': |
626 | RemoteHost = bb_xstrdup(optarg); | 611 | RemoteHost = xstrdup(optarg); |
627 | if ((p = strchr(RemoteHost, ':'))) { | 612 | if ((p = strchr(RemoteHost, ':'))) { |
628 | RemotePort = atoi(p + 1); | 613 | RemotePort = atoi(p + 1); |
629 | *p = '\0'; | 614 | *p = '\0'; |
@@ -672,7 +657,7 @@ int syslogd_main(int argc, char **argv) | |||
672 | #ifdef BB_NOMMU | 657 | #ifdef BB_NOMMU |
673 | vfork_daemon_rexec(0, 1, argc, argv, "-n"); | 658 | vfork_daemon_rexec(0, 1, argc, argv, "-n"); |
674 | #else | 659 | #else |
675 | bb_xdaemon(0, 1); | 660 | xdaemon(0, 1); |
676 | #endif | 661 | #endif |
677 | } | 662 | } |
678 | doSyslogd(); | 663 | doSyslogd(); |
diff --git a/util-linux/fbset.c b/util-linux/fbset.c index 7d3cae251..9a207b6e3 100644 --- a/util-linux/fbset.c +++ b/util-linux/fbset.c | |||
@@ -12,15 +12,6 @@ | |||
12 | * Geert Uytterhoeven (Geert.Uytterhoeven@cs.kuleuven.ac.be) | 12 | * Geert Uytterhoeven (Geert.Uytterhoeven@cs.kuleuven.ac.be) |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <stdio.h> | ||
16 | #include <stdlib.h> | ||
17 | #include <unistd.h> | ||
18 | #include <fcntl.h> | ||
19 | #include <errno.h> | ||
20 | #include <ctype.h> | ||
21 | #include <string.h> | ||
22 | #include <stdint.h> | ||
23 | #include <sys/ioctl.h> | ||
24 | #include "busybox.h" | 15 | #include "busybox.h" |
25 | 16 | ||
26 | #define DEFAULTFBDEV FB_0 | 17 | #define DEFAULTFBDEV FB_0 |
@@ -186,7 +177,7 @@ static int readmode(struct fb_var_screeninfo *base, const char *fn, | |||
186 | char buf[256]; | 177 | char buf[256]; |
187 | char *p = buf; | 178 | char *p = buf; |
188 | 179 | ||
189 | f = bb_xfopen(fn, "r"); | 180 | f = xfopen(fn, "r"); |
190 | while (!feof(f)) { | 181 | while (!feof(f)) { |
191 | fgets(buf, sizeof(buf), f); | 182 | fgets(buf, sizeof(buf), f); |
192 | if ((p = strstr(buf, "mode ")) || (p = strstr(buf, "mode\t"))) { | 183 | if ((p = strstr(buf, "mode ")) || (p = strstr(buf, "mode\t"))) { |
@@ -396,7 +387,7 @@ int fbset_main(int argc, char **argv) | |||
396 | } | 387 | } |
397 | } | 388 | } |
398 | 389 | ||
399 | fh = bb_xopen(fbdev, O_RDONLY); | 390 | fh = xopen(fbdev, O_RDONLY); |
400 | if (ioctl(fh, FBIOGET_VSCREENINFO, &var)) | 391 | if (ioctl(fh, FBIOGET_VSCREENINFO, &var)) |
401 | bb_perror_msg_and_die("fbset(ioctl)"); | 392 | bb_perror_msg_and_die("fbset(ioctl)"); |
402 | if (g_options & OPT_READMODE) { | 393 | if (g_options & OPT_READMODE) { |
diff --git a/util-linux/fdformat.c b/util-linux/fdformat.c index f94d455c9..63ec2204d 100644 --- a/util-linux/fdformat.c +++ b/util-linux/fdformat.c | |||
@@ -9,14 +9,6 @@ | |||
9 | * 5 July 2003 -- modified for Busybox by Erik Andersen | 9 | * 5 July 2003 -- modified for Busybox by Erik Andersen |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <stdio.h> | ||
13 | #include <string.h> | ||
14 | #include <fcntl.h> | ||
15 | #include <errno.h> | ||
16 | #include <unistd.h> | ||
17 | #include <stdlib.h> | ||
18 | #include <sys/stat.h> | ||
19 | #include <sys/ioctl.h> | ||
20 | #include "busybox.h" | 12 | #include "busybox.h" |
21 | 13 | ||
22 | 14 | ||
@@ -60,10 +52,10 @@ static void print_and_flush(const char * __restrict format, ...) | |||
60 | va_start(arg, format); | 52 | va_start(arg, format); |
61 | bb_vfprintf(stdout, format, arg); | 53 | bb_vfprintf(stdout, format, arg); |
62 | va_end(arg); | 54 | va_end(arg); |
63 | bb_xfflush_stdout(); | 55 | xfflush_stdout(); |
64 | } | 56 | } |
65 | 57 | ||
66 | static void bb_xioctl(int fd, int request, void *argp, const char *string) | 58 | static void xioctl(int fd, int request, void *argp, const char *string) |
67 | { | 59 | { |
68 | if (ioctl (fd, request, argp) < 0) { | 60 | if (ioctl (fd, request, argp) < 0) { |
69 | bb_perror_msg_and_die(string); | 61 | bb_perror_msg_and_die(string); |
@@ -95,9 +87,9 @@ int fdformat_main(int argc,char **argv) | |||
95 | 87 | ||
96 | 88 | ||
97 | /* O_RDWR for formatting and verifying */ | 89 | /* O_RDWR for formatting and verifying */ |
98 | fd = bb_xopen(*argv,O_RDWR ); | 90 | fd = xopen(*argv,O_RDWR ); |
99 | 91 | ||
100 | bb_xioctl(fd, FDGETPRM, ¶m, "FDGETPRM");/*original message was: "Could not determine current format type" */ | 92 | xioctl(fd, FDGETPRM, ¶m, "FDGETPRM");/*original message was: "Could not determine current format type" */ |
101 | 93 | ||
102 | print_and_flush("%s-sided, %d tracks, %d sec/track. Total capacity %d kB.\n", | 94 | print_and_flush("%s-sided, %d tracks, %d sec/track. Total capacity %d kB.\n", |
103 | (param.head == 2) ? "Double" : "Single", | 95 | (param.head == 2) ? "Double" : "Single", |
@@ -105,22 +97,22 @@ int fdformat_main(int argc,char **argv) | |||
105 | 97 | ||
106 | /* FORMAT */ | 98 | /* FORMAT */ |
107 | print_and_flush("Formatting ... ", NULL); | 99 | print_and_flush("Formatting ... ", NULL); |
108 | bb_xioctl(fd, FDFMTBEG,NULL,"FDFMTBEG"); | 100 | xioctl(fd, FDFMTBEG,NULL,"FDFMTBEG"); |
109 | 101 | ||
110 | /* n == track */ | 102 | /* n == track */ |
111 | for (n = 0; n < param.track; n++) | 103 | for (n = 0; n < param.track; n++) |
112 | { | 104 | { |
113 | descr.head = 0; | 105 | descr.head = 0; |
114 | descr.track = n; | 106 | descr.track = n; |
115 | bb_xioctl(fd, FDFMTTRK,&descr,"FDFMTTRK"); | 107 | xioctl(fd, FDFMTTRK,&descr,"FDFMTTRK"); |
116 | print_and_flush("%3d\b\b\b", n); | 108 | print_and_flush("%3d\b\b\b", n); |
117 | if (param.head == 2) { | 109 | if (param.head == 2) { |
118 | descr.head = 1; | 110 | descr.head = 1; |
119 | bb_xioctl(fd, FDFMTTRK,&descr,"FDFMTTRK"); | 111 | xioctl(fd, FDFMTTRK,&descr,"FDFMTTRK"); |
120 | } | 112 | } |
121 | } | 113 | } |
122 | 114 | ||
123 | bb_xioctl(fd,FDFMTEND,NULL,"FDFMTEND"); | 115 | xioctl(fd,FDFMTEND,NULL,"FDFMTEND"); |
124 | print_and_flush("done\n", NULL); | 116 | print_and_flush("done\n", NULL); |
125 | 117 | ||
126 | /* VERIFY */ | 118 | /* VERIFY */ |
diff --git a/util-linux/freeramdisk.c b/util-linux/freeramdisk.c index c959158c9..9e1c453e4 100644 --- a/util-linux/freeramdisk.c +++ b/util-linux/freeramdisk.c | |||
@@ -9,13 +9,6 @@ | |||
9 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 9 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <stdio.h> | ||
13 | #include <string.h> | ||
14 | #include <sys/types.h> | ||
15 | #include <fcntl.h> | ||
16 | #include <sys/ioctl.h> | ||
17 | #include <stdlib.h> | ||
18 | #include <unistd.h> | ||
19 | #include "busybox.h" | 12 | #include "busybox.h" |
20 | 13 | ||
21 | /* From <linux/fd.h> */ | 14 | /* From <linux/fd.h> */ |
@@ -28,7 +21,7 @@ int freeramdisk_main(int argc, char **argv) | |||
28 | 21 | ||
29 | if (argc != 2) bb_show_usage(); | 22 | if (argc != 2) bb_show_usage(); |
30 | 23 | ||
31 | fd = bb_xopen(argv[1], O_RDWR); | 24 | fd = xopen(argv[1], O_RDWR); |
32 | 25 | ||
33 | // Act like freeramdisk, fdflush, or both depending on configuration. | 26 | // Act like freeramdisk, fdflush, or both depending on configuration. |
34 | result = ioctl(fd, (ENABLE_FREERAMDISK && bb_applet_name[1]=='r') | 27 | result = ioctl(fd, (ENABLE_FREERAMDISK && bb_applet_name[1]=='r') |
diff --git a/util-linux/getopt.c b/util-linux/getopt.c index fab8f8398..bf05f9164 100644 --- a/util-linux/getopt.c +++ b/util-linux/getopt.c | |||
@@ -31,14 +31,8 @@ | |||
31 | * | 31 | * |
32 | */ | 32 | */ |
33 | 33 | ||
34 | #include <stdio.h> | ||
35 | #include <stdlib.h> | ||
36 | #include <string.h> | ||
37 | #include <unistd.h> | ||
38 | #include <ctype.h> | ||
39 | #include <getopt.h> | ||
40 | |||
41 | #include "busybox.h" | 34 | #include "busybox.h" |
35 | #include <getopt.h> | ||
42 | 36 | ||
43 | /* NON_OPT is the code that is returned when a non-option is found in '+' | 37 | /* NON_OPT is the code that is returned when a non-option is found in '+' |
44 | mode */ | 38 | mode */ |
@@ -86,7 +80,7 @@ const char *normalize(const char *arg) | |||
86 | free(BUFFER); | 80 | free(BUFFER); |
87 | 81 | ||
88 | if (!quote) { /* Just copy arg */ | 82 | if (!quote) { /* Just copy arg */ |
89 | BUFFER=bb_xstrdup(arg); | 83 | BUFFER=xstrdup(arg); |
90 | return BUFFER; | 84 | return BUFFER; |
91 | } | 85 | } |
92 | 86 | ||
@@ -215,7 +209,7 @@ void add_longopt(const char *name,int has_arg) | |||
215 | long_options[long_options_nr-1].has_arg=has_arg; | 209 | long_options[long_options_nr-1].has_arg=has_arg; |
216 | long_options[long_options_nr-1].flag=NULL; | 210 | long_options[long_options_nr-1].flag=NULL; |
217 | long_options[long_options_nr-1].val=LONG_OPT; | 211 | long_options[long_options_nr-1].val=LONG_OPT; |
218 | long_options[long_options_nr-1].name=bb_xstrdup(name); | 212 | long_options[long_options_nr-1].name=xstrdup(name); |
219 | } | 213 | } |
220 | long_options_nr++; | 214 | long_options_nr++; |
221 | } | 215 | } |
diff --git a/util-linux/hexdump.c b/util-linux/hexdump.c index 12f540a53..136243122 100644 --- a/util-linux/hexdump.c +++ b/util-linux/hexdump.c | |||
@@ -11,7 +11,6 @@ | |||
11 | 11 | ||
12 | #include "busybox.h" | 12 | #include "busybox.h" |
13 | #include <getopt.h> | 13 | #include <getopt.h> |
14 | #include <string.h> | ||
15 | #include "dump.h" | 14 | #include "dump.h" |
16 | 15 | ||
17 | static void bb_dump_addfile(char *name) | 16 | static void bb_dump_addfile(char *name) |
@@ -20,7 +19,7 @@ static void bb_dump_addfile(char *name) | |||
20 | FILE *fp; | 19 | FILE *fp; |
21 | char *buf; | 20 | char *buf; |
22 | 21 | ||
23 | fp = bb_xfopen(name, "r"); | 22 | fp = xfopen(name, "r"); |
24 | 23 | ||
25 | while ((buf = bb_get_chomped_line_from_file(fp)) != NULL) { | 24 | while ((buf = bb_get_chomped_line_from_file(fp)) != NULL) { |
26 | p = skip_whitespace(buf); | 25 | p = skip_whitespace(buf); |
diff --git a/util-linux/mdev.c b/util-linux/mdev.c index c77c122b5..7c1223dcb 100644 --- a/util-linux/mdev.c +++ b/util-linux/mdev.c | |||
@@ -10,10 +10,6 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include "busybox.h" | 12 | #include "busybox.h" |
13 | #include <ctype.h> | ||
14 | #include <errno.h> | ||
15 | #include <sys/mman.h> | ||
16 | #include <sys/sysmacros.h> | ||
17 | #include "xregex.h" | 13 | #include "xregex.h" |
18 | 14 | ||
19 | #define DEV_PATH "/dev" | 15 | #define DEV_PATH "/dev" |
@@ -146,7 +142,7 @@ static void make_device(char *path, int delete) | |||
146 | break; | 142 | break; |
147 | } | 143 | } |
148 | if ((s2-s+1) & (1<<delete)) | 144 | if ((s2-s+1) & (1<<delete)) |
149 | command = bb_xstrndup(pos, end-pos); | 145 | command = xstrndup(pos, end-pos); |
150 | } | 146 | } |
151 | 147 | ||
152 | pos = end2; | 148 | pos = end2; |
@@ -180,7 +176,7 @@ static void make_device(char *path, int delete) | |||
180 | int rc; | 176 | int rc; |
181 | char *s; | 177 | char *s; |
182 | 178 | ||
183 | s=bb_xasprintf("MDEV=%s",device_name); | 179 | s=xasprintf("MDEV=%s",device_name); |
184 | putenv(s); | 180 | putenv(s); |
185 | rc = system(command); | 181 | rc = system(command); |
186 | s[4]=0; | 182 | s[4]=0; |
@@ -232,7 +228,7 @@ int mdev_main(int argc, char *argv[]) | |||
232 | char *env_path; | 228 | char *env_path; |
233 | RESERVE_CONFIG_BUFFER(temp,PATH_MAX); | 229 | RESERVE_CONFIG_BUFFER(temp,PATH_MAX); |
234 | 230 | ||
235 | bb_xchdir(DEV_PATH); | 231 | xchdir(DEV_PATH); |
236 | 232 | ||
237 | /* Scan */ | 233 | /* Scan */ |
238 | 234 | ||
diff --git a/util-linux/mkfs_minix.c b/util-linux/mkfs_minix.c index 7f52b563e..a8737a6c9 100644 --- a/util-linux/mkfs_minix.c +++ b/util-linux/mkfs_minix.c | |||
@@ -62,20 +62,8 @@ | |||
62 | * removed getopt based parser and added a hand rolled one. | 62 | * removed getopt based parser and added a hand rolled one. |
63 | */ | 63 | */ |
64 | 64 | ||
65 | #include <stdio.h> | ||
66 | #include <time.h> | ||
67 | #include <unistd.h> | ||
68 | #include <string.h> | ||
69 | #include <signal.h> | ||
70 | #include <fcntl.h> | ||
71 | #include <ctype.h> | ||
72 | #include <stdlib.h> | ||
73 | #include <stdint.h> | ||
74 | #include <termios.h> | ||
75 | #include <sys/ioctl.h> | ||
76 | #include <sys/param.h> | ||
77 | #include <mntent.h> | ||
78 | #include "busybox.h" | 65 | #include "busybox.h" |
66 | #include <mntent.h> | ||
79 | 67 | ||
80 | #define MINIX_ROOT_INO 1 | 68 | #define MINIX_ROOT_INO 1 |
81 | #define MINIX_LINK_MAX 250 | 69 | #define MINIX_LINK_MAX 250 |
@@ -304,7 +292,7 @@ static inline int get_size(const char *file) | |||
304 | int fd; | 292 | int fd; |
305 | long size; | 293 | long size; |
306 | 294 | ||
307 | fd = bb_xopen3(file, O_RDWR, 0); | 295 | fd = xopen3(file, O_RDWR, 0); |
308 | if (ioctl(fd, BLKGETSIZE, &size) >= 0) { | 296 | if (ioctl(fd, BLKGETSIZE, &size) >= 0) { |
309 | close(fd); | 297 | close(fd); |
310 | return (size * 512); | 298 | return (size * 512); |
@@ -678,7 +666,7 @@ static void get_list_blocks(char *filename) | |||
678 | FILE *listfile; | 666 | FILE *listfile; |
679 | unsigned long blockno; | 667 | unsigned long blockno; |
680 | 668 | ||
681 | listfile = bb_xfopen(filename, "r"); | 669 | listfile = xfopen(filename, "r"); |
682 | while (!feof(listfile)) { | 670 | while (!feof(listfile)) { |
683 | fscanf(listfile, "%ld\n", &blockno); | 671 | fscanf(listfile, "%ld\n", &blockno); |
684 | mark_zone(blockno); | 672 | mark_zone(blockno); |
@@ -817,7 +805,7 @@ goodbye: | |||
817 | tmp += dirsize; | 805 | tmp += dirsize; |
818 | *(short *) tmp = 2; | 806 | *(short *) tmp = 2; |
819 | strcpy(tmp + 2, ".badblocks"); | 807 | strcpy(tmp + 2, ".badblocks"); |
820 | DEV = bb_xopen3(device_name, O_RDWR, 0); | 808 | DEV = xopen3(device_name, O_RDWR, 0); |
821 | if (fstat(DEV, &statbuf) < 0) | 809 | if (fstat(DEV, &statbuf) < 0) |
822 | bb_error_msg_and_die("unable to stat %s", device_name); | 810 | bb_error_msg_and_die("unable to stat %s", device_name); |
823 | if (!S_ISBLK(statbuf.st_mode)) | 811 | if (!S_ISBLK(statbuf.st_mode)) |
diff --git a/util-linux/mkswap.c b/util-linux/mkswap.c index 9b1e2b5c3..b109f5ce1 100644 --- a/util-linux/mkswap.c +++ b/util-linux/mkswap.c | |||
@@ -20,7 +20,7 @@ int mkswap_main(int argc, char *argv[]) | |||
20 | 20 | ||
21 | // Figure out how big the device is and announce our intentions. | 21 | // Figure out how big the device is and announce our intentions. |
22 | 22 | ||
23 | fd = bb_xopen(argv[1],O_RDWR); | 23 | fd = xopen(argv[1],O_RDWR); |
24 | len = fdlength(fd); | 24 | len = fdlength(fd); |
25 | pagesize = getpagesize(); | 25 | pagesize = getpagesize(); |
26 | printf("Setting up swapspace version 1, size = %ld bytes\n", (long)(len-pagesize)); | 26 | printf("Setting up swapspace version 1, size = %ld bytes\n", (long)(len-pagesize)); |
diff --git a/util-linux/more.c b/util-linux/more.c index 2ad1e797c..f68292e80 100644 --- a/util-linux/more.c +++ b/util-linux/more.c | |||
@@ -11,28 +11,9 @@ | |||
11 | * | 11 | * |
12 | * Termios corrects by Vladimir Oleynik <dzo@simtreas.ru> | 12 | * Termios corrects by Vladimir Oleynik <dzo@simtreas.ru> |
13 | * | 13 | * |
14 | * This program is free software; you can redistribute it and/or modify | 14 | * Licensed under GPLv2 or later, see file License in this tarball for details. |
15 | * it under the terms of the GNU General Public License as published by | ||
16 | * the Free Software Foundation; either version 2 of the License, or | ||
17 | * (at your option) any later version. | ||
18 | * | ||
19 | * This program is distributed in the hope that it will be useful, | ||
20 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
21 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
22 | * General Public License for more details. | ||
23 | * | ||
24 | * You should have received a copy of the GNU General Public License | ||
25 | * along with this program; if not, write to the Free Software | ||
26 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
27 | * | ||
28 | */ | 15 | */ |
29 | 16 | ||
30 | #include <stdio.h> | ||
31 | #include <fcntl.h> | ||
32 | #include <signal.h> | ||
33 | #include <stdlib.h> | ||
34 | #include <unistd.h> | ||
35 | #include <sys/ioctl.h> | ||
36 | #include "busybox.h" | 17 | #include "busybox.h" |
37 | 18 | ||
38 | 19 | ||
@@ -76,7 +57,7 @@ int more_main(int argc, char **argv) | |||
76 | if(isatty(STDOUT_FILENO)) { | 57 | if(isatty(STDOUT_FILENO)) { |
77 | cin = fopen(CURRENT_TTY, "r"); | 58 | cin = fopen(CURRENT_TTY, "r"); |
78 | if (!cin) | 59 | if (!cin) |
79 | cin = bb_xfopen(CONSOLE_DEV, "r"); | 60 | cin = xfopen(CONSOLE_DEV, "r"); |
80 | please_display_more_prompt = 2; | 61 | please_display_more_prompt = 2; |
81 | #ifdef CONFIG_FEATURE_USE_TERMIOS | 62 | #ifdef CONFIG_FEATURE_USE_TERMIOS |
82 | cin_fileno = fileno(cin); | 63 | cin_fileno = fileno(cin); |
diff --git a/util-linux/mount.c b/util-linux/mount.c index c64c3f438..f665a0875 100644 --- a/util-linux/mount.c +++ b/util-linux/mount.c | |||
@@ -23,13 +23,7 @@ | |||
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include "busybox.h" | 25 | #include "busybox.h" |
26 | #include <unistd.h> | ||
27 | #include <errno.h> | ||
28 | #include <string.h> | ||
29 | #include <mntent.h> | 26 | #include <mntent.h> |
30 | #include <ctype.h> | ||
31 | #include <fcntl.h> // for CONFIG_FEATURE_MOUNT_LOOP | ||
32 | #include <sys/ioctl.h> // for CONFIG_FEATURE_MOUNT_LOOP | ||
33 | 27 | ||
34 | // These two aren't always defined in old headers | 28 | // These two aren't always defined in old headers |
35 | #ifndef MS_BIND | 29 | #ifndef MS_BIND |
@@ -89,12 +83,12 @@ struct { | |||
89 | static void append_mount_options(char **oldopts, char *newopts) | 83 | static void append_mount_options(char **oldopts, char *newopts) |
90 | { | 84 | { |
91 | if(*oldopts && **oldopts) { | 85 | if(*oldopts && **oldopts) { |
92 | char *temp=bb_xasprintf("%s,%s",*oldopts,newopts); | 86 | char *temp=xasprintf("%s,%s",*oldopts,newopts); |
93 | free(*oldopts); | 87 | free(*oldopts); |
94 | *oldopts=temp; | 88 | *oldopts=temp; |
95 | } else { | 89 | } else { |
96 | if (ENABLE_FEATURE_CLEAN_UP) free(*oldopts); | 90 | if (ENABLE_FEATURE_CLEAN_UP) free(*oldopts); |
97 | *oldopts = bb_xstrdup(newopts); | 91 | *oldopts = xstrdup(newopts); |
98 | } | 92 | } |
99 | } | 93 | } |
100 | 94 | ||
@@ -165,7 +159,7 @@ static llist_t *get_block_backed_filesystems(void) | |||
165 | if(*fs=='#' || *fs=='*') continue; | 159 | if(*fs=='#' || *fs=='*') continue; |
166 | if(!*fs) continue; | 160 | if(!*fs) continue; |
167 | 161 | ||
168 | llist_add_to_end(&list,bb_xstrdup(fs)); | 162 | llist_add_to_end(&list,xstrdup(fs)); |
169 | } | 163 | } |
170 | if (ENABLE_FEATURE_CLEAN_UP) fclose(f); | 164 | if (ENABLE_FEATURE_CLEAN_UP) fclose(f); |
171 | } | 165 | } |
@@ -367,7 +361,7 @@ report_error: | |||
367 | 361 | ||
368 | int mount_main(int argc, char **argv) | 362 | int mount_main(int argc, char **argv) |
369 | { | 363 | { |
370 | char *cmdopts = bb_xstrdup(""), *fstabname, *fstype=0, *storage_path=0; | 364 | char *cmdopts = xstrdup(""), *fstabname, *fstype=0, *storage_path=0; |
371 | FILE *fstab; | 365 | FILE *fstab; |
372 | int i, opt, all = FALSE, rc = 0; | 366 | int i, opt, all = FALSE, rc = 0; |
373 | struct mntent mtpair[2], *mtcur = mtpair; | 367 | struct mntent mtpair[2], *mtcur = mtpair; |
@@ -493,7 +487,7 @@ int mount_main(int argc, char **argv) | |||
493 | // Mount the last thing we found. | 487 | // Mount the last thing we found. |
494 | 488 | ||
495 | mtcur = mtnext; | 489 | mtcur = mtnext; |
496 | mtcur->mnt_opts=bb_xstrdup(mtcur->mnt_opts); | 490 | mtcur->mnt_opts = xstrdup(mtcur->mnt_opts); |
497 | append_mount_options(&(mtcur->mnt_opts),cmdopts); | 491 | append_mount_options(&(mtcur->mnt_opts),cmdopts); |
498 | rc = singlemount(mtcur, 0); | 492 | rc = singlemount(mtcur, 0); |
499 | free(mtcur->mnt_opts); | 493 | free(mtcur->mnt_opts); |
diff --git a/util-linux/nfsmount.c b/util-linux/nfsmount.c index 705975d29..e7d194f0f 100644 --- a/util-linux/nfsmount.c +++ b/util-linux/nfsmount.c | |||
@@ -26,10 +26,6 @@ | |||
26 | */ | 26 | */ |
27 | 27 | ||
28 | #include "busybox.h" | 28 | #include "busybox.h" |
29 | #include <unistd.h> | ||
30 | #include <string.h> | ||
31 | #include <errno.h> | ||
32 | #include <time.h> | ||
33 | #include <sys/utsname.h> | 29 | #include <sys/utsname.h> |
34 | #undef TRUE | 30 | #undef TRUE |
35 | #undef FALSE | 31 | #undef FALSE |
@@ -391,7 +387,7 @@ int nfsmount(const char *spec, const char *node, int *flags, | |||
391 | } | 387 | } |
392 | sprintf(new_opts, "%s%saddr=%s", | 388 | sprintf(new_opts, "%s%saddr=%s", |
393 | old_opts, *old_opts ? "," : "", s); | 389 | old_opts, *old_opts ? "," : "", s); |
394 | *mount_opts = bb_xstrdup(new_opts); | 390 | *mount_opts = xstrdup(new_opts); |
395 | 391 | ||
396 | /* Set default options. | 392 | /* Set default options. |
397 | * rsize/wsize (and bsize, for ver >= 3) are left 0 in order to | 393 | * rsize/wsize (and bsize, for ver >= 3) are left 0 in order to |
@@ -459,7 +455,7 @@ int nfsmount(const char *spec, const char *node, int *flags, | |||
459 | else if (!strcmp(opt, "mountport")) | 455 | else if (!strcmp(opt, "mountport")) |
460 | mountport = val; | 456 | mountport = val; |
461 | else if (!strcmp(opt, "mounthost")) | 457 | else if (!strcmp(opt, "mounthost")) |
462 | mounthost=bb_xstrndup(opteq+1, | 458 | mounthost=xstrndup(opteq+1, |
463 | strcspn(opteq+1," \t\n\r,")); | 459 | strcspn(opteq+1," \t\n\r,")); |
464 | else if (!strcmp(opt, "mountprog")) | 460 | else if (!strcmp(opt, "mountprog")) |
465 | mountprog = val; | 461 | mountprog = val; |
@@ -729,7 +725,7 @@ int nfsmount(const char *spec, const char *node, int *flags, | |||
729 | if (!bg) | 725 | if (!bg) |
730 | goto fail; | 726 | goto fail; |
731 | if (!running_bg) { | 727 | if (!running_bg) { |
732 | prev_bg_host = bb_xstrdup(hostname); | 728 | prev_bg_host = xstrdup(hostname); |
733 | if (retry > 0) | 729 | if (retry > 0) |
734 | retval = EX_BG; | 730 | retval = EX_BG; |
735 | goto fail; | 731 | goto fail; |
diff --git a/util-linux/readprofile.c b/util-linux/readprofile.c index 8fe8787ba..aaa419a3c 100644 --- a/util-linux/readprofile.c +++ b/util-linux/readprofile.c | |||
@@ -4,19 +4,7 @@ | |||
4 | * | 4 | * |
5 | * Copyright (C) 1994,1996 Alessandro Rubini (rubini@ipvvis.unipv.it) | 5 | * Copyright (C) 1994,1996 Alessandro Rubini (rubini@ipvvis.unipv.it) |
6 | * | 6 | * |
7 | * This program is free software; you can redistribute it and/or modify | 7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2 of the License, or | ||
10 | * (at your option) any later version. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
20 | */ | 8 | */ |
21 | 9 | ||
22 | /* | 10 | /* |
@@ -44,17 +32,8 @@ | |||
44 | * Paul Mundt <lethal@linux-sh.org>. | 32 | * Paul Mundt <lethal@linux-sh.org>. |
45 | */ | 33 | */ |
46 | 34 | ||
47 | #include <errno.h> | ||
48 | #include <stdio.h> | ||
49 | #include <fcntl.h> | ||
50 | #include <stdlib.h> | ||
51 | #include <unistd.h> | ||
52 | #include <string.h> | ||
53 | #include <sys/types.h> | ||
54 | #include <sys/stat.h> | ||
55 | #include <sys/utsname.h> | ||
56 | |||
57 | #include "busybox.h" | 35 | #include "busybox.h" |
36 | #include <sys/utsname.h> | ||
58 | 37 | ||
59 | #define S_LEN 128 | 38 | #define S_LEN 128 |
60 | 39 | ||
@@ -138,7 +117,7 @@ int readprofile_main(int argc, char **argv) | |||
138 | to_write = 1; /* sth different from sizeof(int) */ | 117 | to_write = 1; /* sth different from sizeof(int) */ |
139 | } | 118 | } |
140 | 119 | ||
141 | fd = bb_xopen(defaultpro,O_WRONLY); | 120 | fd = xopen(defaultpro,O_WRONLY); |
142 | 121 | ||
143 | if (write(fd, &multiplier, to_write) != to_write) | 122 | if (write(fd, &multiplier, to_write) != to_write) |
144 | bb_perror_msg_and_die("error writing %s", defaultpro); | 123 | bb_perror_msg_and_die("error writing %s", defaultpro); |
@@ -151,7 +130,7 @@ int readprofile_main(int argc, char **argv) | |||
151 | * Use an fd for the profiling buffer, to skip stdio overhead | 130 | * Use an fd for the profiling buffer, to skip stdio overhead |
152 | */ | 131 | */ |
153 | 132 | ||
154 | proFd = bb_xopen(proFile,O_RDONLY); | 133 | proFd = xopen(proFile,O_RDONLY); |
155 | 134 | ||
156 | if (((int)(len=lseek(proFd,0,SEEK_END)) < 0) | 135 | if (((int)(len=lseek(proFd,0,SEEK_END)) < 0) |
157 | || (lseek(proFd,0,SEEK_SET) < 0)) | 136 | || (lseek(proFd,0,SEEK_SET) < 0)) |
@@ -198,7 +177,7 @@ int readprofile_main(int argc, char **argv) | |||
198 | 177 | ||
199 | total = 0; | 178 | total = 0; |
200 | 179 | ||
201 | map = bb_xfopen(mapFile, "r"); | 180 | map = xfopen(mapFile, "r"); |
202 | 181 | ||
203 | while (fgets(mapline,S_LEN,map)) { | 182 | while (fgets(mapline,S_LEN,map)) { |
204 | if (sscanf(mapline,"%llx %s %s",&fn_add,mode,fn_name) != 3) | 183 | if (sscanf(mapline,"%llx %s %s",&fn_add,mode,fn_name) != 3) |
diff --git a/util-linux/umount.c b/util-linux/umount.c index b5696f78b..b74b11027 100644 --- a/util-linux/umount.c +++ b/util-linux/umount.c | |||
@@ -66,8 +66,8 @@ int umount_main(int argc, char **argv) | |||
66 | } else while (getmntent_r(fp,&me,path,sizeof(path))) { | 66 | } else while (getmntent_r(fp,&me,path,sizeof(path))) { |
67 | m = xmalloc(sizeof(struct mtab_list)); | 67 | m = xmalloc(sizeof(struct mtab_list)); |
68 | m->next = mtl; | 68 | m->next = mtl; |
69 | m->device = bb_xstrdup(me.mnt_fsname); | 69 | m->device = xstrdup(me.mnt_fsname); |
70 | m->dir = bb_xstrdup(me.mnt_dir); | 70 | m->dir = xstrdup(me.mnt_dir); |
71 | mtl = m; | 71 | mtl = m; |
72 | } | 72 | } |
73 | endmntent(fp); | 73 | endmntent(fp); |