string
default "1.12.4" if BR2_BUSYBOX_VERSION_1_12_X
default "1.13.4" if BR2_BUSYBOX_VERSION_1_13_X
- default "1.14.0" if BR2_BUSYBOX_VERSION_1_14_X
+ default "1.14.1" if BR2_BUSYBOX_VERSION_1_14_X
config BR2_PACKAGE_BUSYBOX_FULLINSTALL
bool "Run BusyBox's own full installation"
+++ /dev/null
---- busybox-1.14.0/util-linux/acpid.c Tue Apr 14 01:43:11 2009
-+++ busybox-1.14.0-acpid/util-linux/acpid.c Sat Apr 18 13:33:19 2009
-@@ -78,8 +78,8 @@
- // goto configuration directory
- xchdir(opt_conf);
-
--// // setup signals
--// bb_signals(BB_FATAL_SIGS, record_signo);
-+ // prevent zombies
-+ signal(SIGCHLD, SIG_IGN);
-
- // no explicit evdev files given? -> use proc event interface
- if (!*argv) {
+++ /dev/null
---- busybox-1.14.0/editors/awk.c Tue Apr 14 01:43:09 2009
-+++ busybox-1.14.0-awk/editors/awk.c Mon May 18 23:49:29 2009
-@@ -1571,13 +1571,14 @@
- n++; /* we saw yet another delimiter */
- } else {
- pmatch[0].rm_eo = l;
-- if (s[l]) pmatch[0].rm_eo++;
-+ if (s[l])
-+ pmatch[0].rm_eo++;
- }
- memcpy(s1, s, l);
- /* make sure we remove *all* of the separator chars */
-- while (l < pmatch[0].rm_eo) {
-- s1[l++] = '\0';
-- }
-+ do {
-+ s1[l] = '\0';
-+ } while (++l < pmatch[0].rm_eo);
- nextword(&s1);
- s += pmatch[0].rm_eo;
- } while (*s);
+++ /dev/null
---- busybox-1.14.0/scripts/defconfig Tue Apr 14 01:42:52 2009
-+++ busybox-1.14.0-defconfig/scripts/defconfig Fri Apr 17 01:08:24 2009
-@@ -579,7 +579,7 @@
- CONFIG_EJECT=y
- CONFIG_FEATURE_EJECT_SCSI=y
- CONFIG_FBSPLASH=y
--CONFIG_FLASH_ERASEALL=y
-+# CONFIG_FLASH_ERASEALL is not set
- CONFIG_IONICE=y
- # CONFIG_INOTIFYD is not set
- CONFIG_LAST=y
+++ /dev/null
---- busybox-1.14.0/modutils/depmod.c Tue Apr 14 01:42:55 2009
-+++ busybox-1.14.0-depmod/modutils/depmod.c Mon May 18 22:37:14 2009
-@@ -40,26 +40,28 @@
- ARG_r = (1<<6) /* Compat dummy. Linux Makefile uses it */
- };
-
--static int FAST_FUNC parse_module(const char *fname, struct stat *sb,
-- void *data, int UNUSED_PARAM depth)
-+static int FAST_FUNC parse_module(const char *fname, struct stat *sb UNUSED_PARAM,
-+ void *data, int depth UNUSED_PARAM)
- {
-+ char modname[MODULE_NAME_LEN];
- module_info **first = (module_info **) data;
- char *image, *ptr;
- module_info *info;
-- size_t len = sb->st_size;
-+ /* Arbitrary. Was sb->st_size, but that breaks .gz etc */
-+ size_t len = (64*1024*1024 - 4096);
-
- if (strrstr(fname, ".ko") == NULL)
- return TRUE;
-
- image = xmalloc_open_zipped_read_close(fname, &len);
-- info = xzalloc(sizeof(module_info));
-+ info = xzalloc(sizeof(*info));
-
- info->next = *first;
- *first = info;
-
- info->dnext = info->dprev = info;
- info->name = xasprintf("/%s", fname);
-- info->modname = filename2modname(fname, NULL);
-+ info->modname = xstrdup(filename2modname(fname, modname));
- for (ptr = image; ptr < image + len - 10; ptr++) {
- if (strncmp(ptr, "depends=", 8) == 0) {
- char *u;
-@@ -69,12 +71,14 @@
- if (*u == '-')
- *u = '_';
- ptr += string_to_llist(ptr, &info->dependencies, ",");
-- } else if (ENABLE_FEATURE_MODUTILS_ALIAS &&
-- strncmp(ptr, "alias=", 6) == 0) {
-+ } else if (ENABLE_FEATURE_MODUTILS_ALIAS
-+ && strncmp(ptr, "alias=", 6) == 0
-+ ) {
- llist_add_to(&info->aliases, xstrdup(ptr + 6));
- ptr += strlen(ptr);
-- } else if (ENABLE_FEATURE_MODUTILS_SYMBOLS &&
-- strncmp(ptr, "__ksymtab_", 10) == 0) {
-+ } else if (ENABLE_FEATURE_MODUTILS_SYMBOLS
-+ && strncmp(ptr, "__ksymtab_", 10) == 0
-+ ) {
- ptr += 10;
- if (strncmp(ptr, "gpl", 3) == 0 ||
- strcmp(ptr, "strings") == 0)
-@@ -199,10 +203,17 @@
- if (!(option_mask32 & ARG_n))
- xfreopen_write("modules.alias", stdout);
- for (m = modules; m != NULL; m = m->next) {
-+ const char *fname = bb_basename(m->name);
-+ int fnlen = strchrnul(fname, '.') - fname;
- while (m->aliases) {
-- printf("alias %s %s\n",
-+ /* Last word can well be m->modname instead,
-+ * but depmod from module-init-tools 3.4
-+ * uses module basename, i.e., no s/-/_/g.
-+ * (pathname and .ko.* are still stripped)
-+ * Mimicking that... */
-+ printf("alias %s %.*s\n",
- (char*)llist_pop(&m->aliases),
-- m->modname);
-+ fnlen, fname);
- }
- }
- #endif
-@@ -210,10 +221,12 @@
- if (!(option_mask32 & ARG_n))
- xfreopen_write("modules.symbols", stdout);
- for (m = modules; m != NULL; m = m->next) {
-+ const char *fname = bb_basename(m->name);
-+ int fnlen = strchrnul(fname, '.') - fname;
- while (m->symbols) {
-- printf("alias symbol:%s %s\n",
-+ printf("alias symbol:%s %.*s\n",
- (char*)llist_pop(&m->symbols),
-- m->modname);
-+ fnlen, fname);
- }
- }
- #endif
+++ /dev/null
---- busybox-1.14.0/libbb/pw_encrypt_des.c Tue Apr 14 01:43:00 2009
-+++ busybox-1.14.0-des/libbb/pw_encrypt_des.c Fri May 1 03:40:16 2009
-@@ -778,8 +778,10 @@
- to64_msb_first(output + 2, (r0 >> 8));
- /* bits 7..0 of r0 and 31..16 of r1 */
- to64_msb_first(output + 6, (r0 << 16) | (r1 >> 16));
-- /* (bits 15..0 of r1 + 00) and NUL byte */
-+ /* bits 15..0 of r1 and two zero bits (plus extra zero byte) */
- to64_msb_first(output + 10, (r1 << 8));
-+ /* extra zero byte is encoded as '.', fixing it */
-+ output[13] = '\0';
- #endif
-
- return output;
+++ /dev/null
---- busybox-1.14.0/networking/udhcp/leases.c Tue Apr 14 01:42:51 2009
-+++ busybox-1.14.0-dhcp_hostname/networking/udhcp/leases.c Tue Apr 21 02:41:22 2009
-@@ -63,7 +63,8 @@
- if (oldest) {
- oldest->hostname[0] = '\0';
- if (hostname) {
-- hostname_length = hostname[-1]; /* look at option size byte */
-+ /* option size byte, + 1 for NUL */
-+ hostname_length = hostname[-1] + 1;
- if (hostname_length > sizeof(oldest->hostname))
- hostname_length = sizeof(oldest->hostname);
- hostname = (uint8_t*) safe_strncpy((char*)oldest->hostname, (char*)hostname, hostname_length);
+++ /dev/null
---- busybox-1.14.0/archival/gzip.c Tue Apr 14 01:42:55 2009
-+++ busybox-1.14.0-gzip/archival/gzip.c Mon May 18 22:36:12 2009
-@@ -389,19 +389,6 @@
- }
-
- /* ===========================================================================
-- * Clear input and output buffers
-- */
--static void clear_bufs(void)
--{
-- G1.outcnt = 0;
--#ifdef DEBUG
-- G1.insize = 0;
--#endif
-- G1.isize = 0;
--}
--
--
--/* ===========================================================================
- * Run a set of bytes through the crc shift register. If s is a NULL
- * pointer, then initialize the crc shift register contents instead.
- * Return the current crc in either case.
-@@ -2019,7 +2006,37 @@
- {
- struct stat s;
-
-- clear_bufs();
-+ /* Clear input and output buffers */
-+ G1.outcnt = 0;
-+#ifdef DEBUG
-+ G1.insize = 0;
-+#endif
-+ G1.isize = 0;
-+
-+ /* Reinit G2.xxx */
-+ memset(&G2, 0, sizeof(G2));
-+ G2.l_desc.dyn_tree = G2.dyn_ltree;
-+ G2.l_desc.static_tree = G2.static_ltree;
-+ G2.l_desc.extra_bits = extra_lbits;
-+ G2.l_desc.extra_base = LITERALS + 1;
-+ G2.l_desc.elems = L_CODES;
-+ G2.l_desc.max_length = MAX_BITS;
-+ //G2.l_desc.max_code = 0;
-+ G2.d_desc.dyn_tree = G2.dyn_dtree;
-+ G2.d_desc.static_tree = G2.static_dtree;
-+ G2.d_desc.extra_bits = extra_dbits;
-+ //G2.d_desc.extra_base = 0;
-+ G2.d_desc.elems = D_CODES;
-+ G2.d_desc.max_length = MAX_BITS;
-+ //G2.d_desc.max_code = 0;
-+ G2.bl_desc.dyn_tree = G2.bl_tree;
-+ //G2.bl_desc.static_tree = NULL;
-+ G2.bl_desc.extra_bits = extra_blbits,
-+ //G2.bl_desc.extra_base = 0;
-+ G2.bl_desc.elems = BL_CODES;
-+ G2.bl_desc.max_length = MAX_BL_BITS;
-+ //G2.bl_desc.max_code = 0;
-+
- s.st_ctime = 0;
- fstat(STDIN_FILENO, &s);
- zip(s.st_ctime);
-@@ -2064,29 +2081,6 @@
- SET_PTR_TO_GLOBALS(xzalloc(sizeof(struct globals) + sizeof(struct globals2))
- + sizeof(struct globals));
- barrier();
-- G2.l_desc.dyn_tree = G2.dyn_ltree;
-- G2.l_desc.static_tree = G2.static_ltree;
-- G2.l_desc.extra_bits = extra_lbits;
-- G2.l_desc.extra_base = LITERALS + 1;
-- G2.l_desc.elems = L_CODES;
-- G2.l_desc.max_length = MAX_BITS;
-- //G2.l_desc.max_code = 0;
--
-- G2.d_desc.dyn_tree = G2.dyn_dtree;
-- G2.d_desc.static_tree = G2.static_dtree;
-- G2.d_desc.extra_bits = extra_dbits;
-- //G2.d_desc.extra_base = 0;
-- G2.d_desc.elems = D_CODES;
-- G2.d_desc.max_length = MAX_BITS;
-- //G2.d_desc.max_code = 0;
--
-- G2.bl_desc.dyn_tree = G2.bl_tree;
-- //G2.bl_desc.static_tree = NULL;
-- G2.bl_desc.extra_bits = extra_blbits,
-- //G2.bl_desc.extra_base = 0;
-- G2.bl_desc.elems = BL_CODES;
-- G2.bl_desc.max_length = MAX_BL_BITS;
-- //G2.bl_desc.max_code = 0;
-
- /* Allocate all global buffers (for DYN_ALLOC option) */
- ALLOC(uch, G1.l_buf, INBUFSIZ);
+++ /dev/null
---- busybox-1.14.0/include/libbb.h Tue Apr 14 02:50:20 2009
-+++ busybox-1.14.0-libbb/include/libbb.h Fri May 15 23:22:02 2009
-@@ -965,6 +965,12 @@
- /* How long the longest ESC sequence we know? */
- KEYCODE_BUFFER_SIZE = 4
- };
-+/* Note: fd may be in blocking or non-blocking mode, both make sense.
-+ * For one, less uses non-blocking mode.
-+ * Only the first read syscall inside read_key may block indefinitely
-+ * (unless fd is in non-blocking mode),
-+ * subsequent reads will time out after a few milliseconds.
-+ */
- int read_key(int fd, smalluint *nbuffered, char *buffer) FAST_FUNC;
-
-
---- busybox-1.14.0/libbb/read.c Tue Apr 14 01:43:00 2009
-+++ busybox-1.14.0-libbb/libbb/read.c Fri May 15 23:22:02 2009
-@@ -229,7 +229,7 @@
- if (size > 64*1024)
- size = 64*1024;
- }
-- xrealloc(buf, total + 1);
-+ buf = xrealloc(buf, total + 1);
- buf[total] = '\0';
-
- if (maxsz_p)
-@@ -273,7 +273,7 @@
- free(buf);
- return NULL;
- }
-- xrealloc(buf, size + 1);
-+ buf = xrealloc(buf, size + 1);
- buf[size] = '\0';
-
- if (maxsz_p)
+++ /dev/null
---- busybox-1.14.0/util-linux/mdev.c Tue Apr 14 23:23:04 2009
-+++ busybox-1.14.0-mdev/util-linux/mdev.c Mon May 4 19:58:47 2009
-@@ -181,7 +181,8 @@
- * the rest of fields unless keep_matching == 1 */
-
- /* 2nd field: uid:gid - device ownership */
-- parse_chown_usergroup_or_die(&ugid, tokens[1]);
-+ if (get_uidgid(&ugid, tokens[1], 1) == 0)
-+ bb_error_msg("unknown user/group %s", tokens[1]);
-
- /* 3rd field: mode - device permissions */
- mode = strtoul(tokens[2], NULL, 8);
+++ /dev/null
---- busybox-1.14.0/procps/sysctl.c Tue Apr 14 01:43:09 2009
-+++ busybox-1.14.0-sysctl/procps/sysctl.c Sun May 10 23:40:52 2009
-@@ -214,11 +214,11 @@
- // (but _whitespace_ from ends should be trimmed first (and we do it right))
- //TODO: "var==1" is mishandled (must use "=1" as a value, but uses "1")
- while (config_read(parser, token, 2, 2, "# \t=", PARSE_NORMAL)) {
-+ char *tp;
- sysctl_dots_to_slashes(token[0]);
-- /* Save ~4 bytes by using parser internals */
-- /* parser->line is big enough for sprintf */
-- sprintf(parser->line, "%s=%s", token[0], token[1]);
-- sysctl_act_recursive(parser->line);
-+ tp = xasprintf("%s=%s", token[0], token[1]);
-+ sysctl_act_recursive(tp);
-+ free(tp);
- }
- if (ENABLE_FEATURE_CLEAN_UP)
- config_close(parser);
+++ /dev/null
---- busybox-1.14.0/include/platform.h Tue Apr 14 01:43:05 2009
-+++ busybox-1.14.0-unaligned/include/platform.h Sat Apr 18 00:14:34 2009
-@@ -173,7 +173,10 @@
- /* performs reasonably well (gcc usually inlines memcpy here) */
- #define move_from_unaligned16(v, u16p) (memcpy(&(v), (u16p), 2))
- #define move_from_unaligned32(v, u32p) (memcpy(&(v), (u32p), 4))
--#define move_to_unaligned32(u32p, v) (memcpy((u32p), &(v), 4))
-+#define move_to_unaligned32(u32p, v) do { \
-+ uint32_t __t = (v); \
-+ memcpy((u32p), &__t, 4); \
-+} while (0)
- #endif
-
- /* ---- Networking ------------------------------------------ */