Author: igor Date: Sun Jan 4 15:19:59 2015 New Revision: 3097 Log: add busybox merged upstream patches
Added: trunk/busybox/busybox-1.23.0-upstream_fixes-1.patch Added: trunk/busybox/busybox-1.23.0-upstream_fixes-1.patch ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/busybox/busybox-1.23.0-upstream_fixes-1.patch Sun Jan 4 15:19:59 2015 (r3097) @@ -0,0 +1,105 @@ +Submitted By: Igor Živković <[email protected]> +Date: 2015-01-05 +Initial Package Version: 1.23.0 +Upstream Status: Already in upstream repo +Origin: Upstream +Description: This patch contains upstream ash and modprobe patches. + +diff -Naur busybox-1.23.0.orig/modutils/modprobe.c busybox-1.23.0/modutils/modprobe.c +--- busybox-1.23.0.orig/modutils/modprobe.c 2014-11-26 23:19:35.000000000 +0100 ++++ busybox-1.23.0/modutils/modprobe.c 2015-01-04 22:49:18.497169834 +0100 +@@ -238,17 +238,6 @@ + { + struct module_entry *m; + +- /* +- * get_or_add_modentry() strips path from name and works +- * on remaining basename. +- * This would make "rmmod dir/name" and "modprobe dir/name" +- * to work like "rmmod name" and "modprobe name", +- * which is wrong, and can be abused via implicit modprobing: +- * "ifconfig /usbserial up" tries to modprobe netdev-/usbserial. +- */ +- if (strchr(name, '/')) +- bb_error_msg_and_die("malformed module name '%s'", name); +- + m = get_or_add_modentry(name); + if (!(option_mask32 & (OPT_REMOVE | OPT_SHOW_DEPS)) + && (m->flags & MODULE_FLAG_LOADED) +diff -Naur busybox-1.23.0.orig/modutils/modprobe-small.c busybox-1.23.0/modutils/modprobe-small.c +--- busybox-1.23.0.orig/modutils/modprobe-small.c 2014-10-04 22:35:59.000000000 +0200 ++++ busybox-1.23.0/modutils/modprobe-small.c 2015-01-04 22:49:18.500169701 +0100 +@@ -149,9 +149,13 @@ + static char *filename2modname(const char *filename, char *modname) + { + int i; +- char *from; ++ const char *from; + +- from = bb_get_last_path_component_nostrip(filename); ++ // Disabled since otherwise "modprobe dir/name" would work ++ // as if it is "modprobe name". It is unclear why ++ // 'basenamization' was here in the first place. ++ //from = bb_get_last_path_component_nostrip(filename); ++ from = filename; + for (i = 0; i < (MODULE_NAME_LEN-1) && from[i] != '\0' && from[i] != '.'; i++) + modname[i] = (from[i] == '-') ? '_' : from[i]; + modname[i] = '\0'; +diff -Naur busybox-1.23.0.orig/modutils/modutils.c busybox-1.23.0/modutils/modutils.c +--- busybox-1.23.0.orig/modutils/modutils.c 2014-10-04 22:35:59.000000000 +0200 ++++ busybox-1.23.0/modutils/modutils.c 2015-01-04 22:49:18.501169657 +0100 +@@ -48,13 +48,17 @@ + char* FAST_FUNC filename2modname(const char *filename, char *modname) + { + int i; +- char *from; ++ const char *from; + + if (filename == NULL) + return NULL; + if (modname == NULL) + modname = xmalloc(MODULE_NAME_LEN); +- from = bb_get_last_path_component_nostrip(filename); ++ // Disabled since otherwise "modprobe dir/name" would work ++ // as if it is "modprobe name". It is unclear why ++ // 'basenamization' was here in the first place. ++ //from = bb_get_last_path_component_nostrip(filename); ++ from = filename; + for (i = 0; i < (MODULE_NAME_LEN-1) && from[i] != '\0' && from[i] != '.'; i++) + modname[i] = (from[i] == '-') ? '_' : from[i]; + modname[i] = '\0'; +diff -Naur busybox-1.23.0.orig/shell/ash.c busybox-1.23.0/shell/ash.c +--- busybox-1.23.0.orig/shell/ash.c 2014-11-20 01:08:23.000000000 +0100 ++++ busybox-1.23.0/shell/ash.c 2015-01-04 22:49:13.234402684 +0100 +@@ -6746,6 +6746,14 @@ + len = strlen(p); + if (!(subtype == VSPLUS || subtype == VSLENGTH)) + memtodest(p, len, syntax, quotes); ++#if ENABLE_UNICODE_SUPPORT ++ if (subtype == VSLENGTH && len > 0) { ++ reinit_unicode_for_ash(); ++ if (unicode_status == UNICODE_ON) { ++ len = unicode_strlen(p); ++ } ++ } ++#endif + return len; + } + +@@ -6829,15 +6837,7 @@ + varunset(p, var, 0, 0); + + if (subtype == VSLENGTH) { +- ssize_t n = varlen; +- if (n > 0) { +- reinit_unicode_for_ash(); +- if (unicode_status == UNICODE_ON) { +- const char *val = lookupvar(var); +- n = unicode_strlen(val); +- } +- } +- cvtnum(n > 0 ? n : 0); ++ cvtnum(varlen > 0 ? varlen : 0); + goto record; + } + -- http://lists.linuxfromscratch.org/listinfo/patches FAQ: http://www.linuxfromscratch.org/blfs/faq.html Unsubscribe: See the above information page
