From c6b42b484830bedbc66e1fd784da00cda65db8b2 Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Sun, 6 Jul 2008 13:55:55 +0000 Subject: [PATCH] busybox: more 1.11.0 patches --- package/busybox/busybox-1.11.0-man.patch | 40 ++++++++ package/busybox/busybox-1.11.0-uname.patch | 108 +++++++++++++++++++++ 2 files changed, 148 insertions(+) create mode 100644 package/busybox/busybox-1.11.0-man.patch create mode 100644 package/busybox/busybox-1.11.0-uname.patch diff --git a/package/busybox/busybox-1.11.0-man.patch b/package/busybox/busybox-1.11.0-man.patch new file mode 100644 index 0000000000..0e29e61a4b --- /dev/null +++ b/package/busybox/busybox-1.11.0-man.patch @@ -0,0 +1,40 @@ +--- busybox-1.11.0/miscutils/man.c Wed Jun 25 14:51:35 2008 ++++ busybox-1.11.0-man/miscutils/man.c Fri Jul 4 23:55:56 2008 +@@ -73,7 +73,7 @@ + char *sec_list; + char *cur_path, *cur_sect; + char *line, *value; +- int count_mp, alloc_mp, cur_mp; ++ int count_mp, cur_mp; + int opt; + + opt_complementary = "-1"; /* at least one argument */ +@@ -81,8 +81,8 @@ + argv += optind; + + sec_list = xstrdup("1:2:3:4:5:6:7:8:9"); +- alloc_mp = 10; +- man_path_list = xmalloc(10 * sizeof(man_path_list[0])); ++ /* Last valid man_path_list[] is [0x10] */ ++ man_path_list = xzalloc(0x11 * sizeof(man_path_list[0])); + count_mp = 0; + man_path_list[0] = xstrdup(getenv("MANPATH")); + if (man_path_list[0]) +@@ -107,11 +107,13 @@ + if (strcmp("MANPATH", line) == 0) { + man_path_list[count_mp] = xstrdup(value); + count_mp++; +- if (alloc_mp == count_mp) { +- alloc_mp += 10; +- man_path_list = xrealloc(man_path_list, alloc_mp * sizeof(man_path_list[0])); ++ /* man_path_list is NULL terminated */ ++ man_path_list[count_mp] = NULL; ++ if (!(count_mp & 0xf)) { /* 0x10, 0x20 etc */ ++ /* so that last valid man_path_list[] is [count_mp + 0x10] */ ++ man_path_list = xrealloc(man_path_list, ++ (count_mp + 0x11) * sizeof(man_path_list[0])); + } +- /* thus man_path_list is always NULL terminated */ + } + if (strcmp("MANSECT", line) == 0) { + free(sec_list); diff --git a/package/busybox/busybox-1.11.0-uname.patch b/package/busybox/busybox-1.11.0-uname.patch new file mode 100644 index 0000000000..01f8b51f41 --- /dev/null +++ b/package/busybox/busybox-1.11.0-uname.patch @@ -0,0 +1,108 @@ +--- busybox-1.11.0/applets/individual.c Wed Jun 25 14:51:37 2008 ++++ busybox-1.11.0-uname/applets/individual.c Wed Jul 2 13:32:17 2008 +@@ -14,13 +14,11 @@ + int main(int argc, char **argv) + { + applet_name = argv[0]; +- + return APPLET_main(argc,argv); + } + + void bb_show_usage(void) + { +- printf(APPLET_full_usage "\n"); +- ++ fputs(APPLET_full_usage "\n", stdout); + exit(EXIT_FAILURE); + } +--- busybox-1.11.0/coreutils/uname.c Wed Jun 25 14:51:30 2008 ++++ busybox-1.11.0-uname/coreutils/uname.c Wed Jul 2 13:32:17 2008 +@@ -17,7 +17,7 @@ + -m, --machine sun + -a, --all SunOS rocky8 4.0 sun + +- The default behavior is equivalent to `-s'. ++ The default behavior is equivalent to '-s'. + + David MacKenzie */ + +@@ -39,47 +39,43 @@ + } uname_info_t; + + static const char options[] ALIGN1 = "snrvmpa"; +-static const unsigned short utsname_offset[] ALIGN2 = { +- offsetof(uname_info_t,name.sysname), +- offsetof(uname_info_t,name.nodename), +- offsetof(uname_info_t,name.release), +- offsetof(uname_info_t,name.version), +- offsetof(uname_info_t,name.machine), +- offsetof(uname_info_t,processor) ++static const unsigned short utsname_offset[] = { ++ offsetof(uname_info_t, name.sysname), ++ offsetof(uname_info_t, name.nodename), ++ offsetof(uname_info_t, name.release), ++ offsetof(uname_info_t, name.version), ++ offsetof(uname_info_t, name.machine), ++ offsetof(uname_info_t, processor) + }; + + int uname_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; +-int uname_main(int argc, char **argv) ++int uname_main(int argc ATTRIBUTE_UNUSED, char **argv) + { + uname_info_t uname_info; + #if defined(__sparc__) && defined(__linux__) + char *fake_sparc = getenv("FAKE_SPARC"); + #endif +- const unsigned short int *delta; ++ const unsigned short *delta; + char toprint; + + toprint = getopt32(argv, options); + +- if (argc != optind) { ++ if (argv[optind]) { /* coreutils-6.9 compat */ + bb_show_usage(); + } + +- if (toprint & (1 << 6)) { ++ if (toprint & (1 << 6)) { /* -a => all opts on */ + toprint = 0x3f; + } + +- if (toprint == 0) { +- toprint = 1; /* sysname */ ++ if (toprint == 0) { /* no opts => -s (sysname) */ ++ toprint = 1; + } + +- if (uname(&uname_info.name) == -1) { +- bb_error_msg_and_die("cannot get system name"); +- } ++ uname(&uname_info.name); /* never fails */ + + #if defined(__sparc__) && defined(__linux__) +- if ((fake_sparc != NULL) +- && ((fake_sparc[0] == 'y') +- || (fake_sparc[0] == 'Y'))) { ++ if (fake_sparc && (fake_sparc[0] | 0x20) == 'y') { + strcpy(uname_info.name.machine, "sparc"); + } + #endif +@@ -89,7 +85,8 @@ + delta = utsname_offset; + do { + if (toprint & 1) { +- printf(((char *)(&uname_info)) + *delta); ++ /* printf would not be safe here */ ++ fputs((char *)(&uname_info) + *delta, stdout); + if (toprint > 1) { + bb_putchar(' '); + } +@@ -98,5 +95,5 @@ + } while (toprint >>= 1); + bb_putchar('\n'); + +- fflush_stdout_and_exit(EXIT_SUCCESS); ++ fflush_stdout_and_exit(EXIT_SUCCESS); /* coreutils-6.9 compat */ + } -- 2.30.2