aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ipq806x
diff options
context:
space:
mode:
authorJonas Gorski <jonas.gorski@gmail.com>2016-07-28 18:08:35 +0200
committerJonas Gorski <jonas.gorski@gmail.com>2016-08-01 00:13:35 +0200
commit532eb5f58109f310d6705d142422d8b2820bf654 (patch)
treed29e489423d9ab80a19b9141e0b2ca2abd66beee /target/linux/ipq806x
parentba1aa4e33b7861b429b55f57bc11b83aac47d460 (diff)
downloadupstream-532eb5f58109f310d6705d142422d8b2820bf654.tar.gz
upstream-532eb5f58109f310d6705d142422d8b2820bf654.tar.bz2
upstream-532eb5f58109f310d6705d142422d8b2820bf654.zip
ipq806x: fix boot hang if cmdline contains words with r in the middle
The ATB DTB mangle code will enter an infinite loop if it encounters a word in the command line that contains an r in the middle of the word. Fix this by increasing ptr everytime before invoking strchr, ot avoid finding the same r again. This fixes booting at least on Netgear R7500v1, which contains "ubi.mtd=rootfs" in its commandline, triggering the misbehaviour. Fixes: 0ddcbee26151 ("ipq806x: activate ATAG DTB mangle and EA8500 rootblock in dts") Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Diffstat (limited to 'target/linux/ipq806x')
-rw-r--r--target/linux/ipq806x/patches-4.4/996-ATAG_DTB_COMPAT_CMDLINE_MANGLE.patch2
1 files changed, 1 insertions, 1 deletions
diff --git a/target/linux/ipq806x/patches-4.4/996-ATAG_DTB_COMPAT_CMDLINE_MANGLE.patch b/target/linux/ipq806x/patches-4.4/996-ATAG_DTB_COMPAT_CMDLINE_MANGLE.patch
index 8d5cbf9102..be15ec4772 100644
--- a/target/linux/ipq806x/patches-4.4/996-ATAG_DTB_COMPAT_CMDLINE_MANGLE.patch
+++ b/target/linux/ipq806x/patches-4.4/996-ATAG_DTB_COMPAT_CMDLINE_MANGLE.patch
@@ -64,9 +64,9 @@ Signed-off-by: Adrian Panella <ianchi74@outlook.com>
+ ptr = str - 1;
+
+ do {
-+ ptr++;
+ //first find an 'r' at the begining or after a space
+ do {
++ ptr++;
+ ptr = strchr(ptr, 'r');
+ if(!ptr) return dest;
+