summaryrefslogtreecommitdiff
path: root/package
diff options
context:
space:
mode:
authorPeter Korsgaard <jacmet@sunsite.dk>2008-07-06 13:55:55 +0000
committerPeter Korsgaard <jacmet@sunsite.dk>2008-07-06 13:55:55 +0000
commitc6b42b484830bedbc66e1fd784da00cda65db8b2 (patch)
tree0aba124563f179ce34ba1ddd97e694a2850810c7 /package
parent54e9332892d339114224a54c0bd39f761ff5f1a4 (diff)
busybox: more 1.11.0 patches
Diffstat (limited to 'package')
-rw-r--r--package/busybox/busybox-1.11.0-man.patch40
-rw-r--r--package/busybox/busybox-1.11.0-uname.patch108
2 files changed, 148 insertions, 0 deletions
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 000000000..0e29e61a4
--- /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 000000000..01f8b51f4
--- /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 <djm@gnu.ai.mit.edu> */
+
+@@ -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 */
+ }