From: Imre Kaloz <kaloz@openwrt.org>
Date: Sun, 12 Apr 2015 14:46:19 +0000 (+0000)
Subject: generic: make sure we only try to mangle bootargs we do have
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=6cfe1539da954a69ed41c6e8d424a34406285ac3;p=openwrt%2Fstaging%2Fsvanheule.git

generic: make sure we only try to mangle bootargs we do have

Signed-off-by: Imre Kaloz <kaloz@openwrt.org>

SVN-Revision: 45393
---

diff --git a/target/linux/generic/patches-3.18/995-mangle_bootargs.patch b/target/linux/generic/patches-3.18/995-mangle_bootargs.patch
index 5d56cf4462..0029e90822 100644
--- a/target/linux/generic/patches-3.18/995-mangle_bootargs.patch
+++ b/target/linux/generic/patches-3.18/995-mangle_bootargs.patch
@@ -1,8 +1,8 @@
 --- a/init/main.c
 +++ b/init/main.c
-@@ -379,6 +379,26 @@ static void __init setup_command_line(ch
- 	strcpy(static_command_line, command_line);
- }
+@@ -362,6 +362,29 @@ static inline void setup_nr_cpu_ids(void
+ static inline void smp_prepare_cpus(unsigned int maxcpus) { }
+ #endif
  
 +#ifdef CONFIG_MANGLE_BOOTARGS
 +static void __init mangle_bootargs(char *command_line)
@@ -11,10 +11,14 @@
 +	char *rootfs;
 +
 +	rootdev = strstr(command_line, "root=/dev/mtdblock");
-+	strncpy(rootdev, "mangled_rootblock=", 18);
++
++	if (rootdev)
++		strncpy(rootdev, "mangled_rootblock=", 18);
 +
 +	rootfs = strstr(command_line, "rootfstype");
-+	strncpy(rootfs, "mangled_fs", 10);
++
++	if (rootfs)
++		strncpy(rootfs, "mangled_fs", 10);
 +
 +}
 +#else
@@ -22,12 +26,11 @@
 +{
 +}
 +#endif
-+
 +
  /*
-  * We need to finalize in a non-__init function or else race conditions
-  * between the root thread and the init thread may cause start_kernel to
-@@ -530,6 +550,7 @@ asmlinkage __visible void __init start_k
+  * We need to store the untouched command line for future reference.
+  * We also need to store the touched command line since the parameter
+@@ -530,6 +553,7 @@ asmlinkage __visible void __init start_k
  	pr_notice("%s", linux_banner);
  	setup_arch(&command_line);
  	mm_init_cpumask(&init_mm);
diff --git a/target/linux/generic/patches-4.0/995-mangle_bootargs.patch b/target/linux/generic/patches-4.0/995-mangle_bootargs.patch
index 38df82acc1..ebfc6d86fc 100644
--- a/target/linux/generic/patches-4.0/995-mangle_bootargs.patch
+++ b/target/linux/generic/patches-4.0/995-mangle_bootargs.patch
@@ -1,8 +1,8 @@
 --- a/init/main.c
 +++ b/init/main.c
-@@ -368,6 +368,26 @@ static void __init setup_command_line(ch
- 	strcpy(static_command_line, command_line);
- }
+@@ -351,6 +351,29 @@ static inline void setup_nr_cpu_ids(void
+ static inline void smp_prepare_cpus(unsigned int maxcpus) { }
+ #endif
  
 +#ifdef CONFIG_MANGLE_BOOTARGS
 +static void __init mangle_bootargs(char *command_line)
@@ -11,10 +11,14 @@
 +	char *rootfs;
 +
 +	rootdev = strstr(command_line, "root=/dev/mtdblock");
-+	strncpy(rootdev, "mangled_rootblock=", 18);
++
++	if (rootdev)
++		strncpy(rootdev, "mangled_rootblock=", 18);
 +
 +	rootfs = strstr(command_line, "rootfstype");
-+	strncpy(rootfs, "mangled_fs", 10);
++
++	if (rootfs)
++		strncpy(rootfs, "mangled_fs", 10);
 +
 +}
 +#else
@@ -22,12 +26,11 @@
 +{
 +}
 +#endif
-+
 +
  /*
-  * We need to finalize in a non-__init function or else race conditions
-  * between the root thread and the init thread may cause start_kernel to
-@@ -519,6 +539,7 @@ asmlinkage __visible void __init start_k
+  * We need to store the untouched command line for future reference.
+  * We also need to store the touched command line since the parameter
+@@ -519,6 +542,7 @@ asmlinkage __visible void __init start_k
  	pr_notice("%s", linux_banner);
  	setup_arch(&command_line);
  	mm_init_cpumask(&init_mm);