[LEDE-DEV] [PATCH] ipq806x: fix boot hang if cmdline contains words with r in the middle

Jonas Gorski jonas.gorski at gmail.com
Fri Jul 29 01:10:25 PDT 2016


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 at gmail.com>
---

This patch is also available in my staging tree at

https://git.lede-project.org/?p=lede/jogo/staging.git;a=shortlog;h=refs/heads/ipq806x-next

 .../linux/ipq806x/patches-4.4/996-ATAG_DTB_COMPAT_CMDLINE_MANGLE.patch  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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 8d5cbf9..be15ec4 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 at 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;
 +
-- 
2.1.4




More information about the Lede-dev mailing list