diff options
author | Jonas Gorski <jonas.gorski@gmail.com> | 2016-07-28 18:08:35 +0200 |
---|---|---|
committer | Jonas Gorski <jonas.gorski@gmail.com> | 2016-08-01 00:13:35 +0200 |
commit | 532eb5f58109f310d6705d142422d8b2820bf654 (patch) | |
tree | d29e489423d9ab80a19b9141e0b2ca2abd66beee /target/linux/ipq806x/patches-4.4 | |
parent | ba1aa4e33b7861b429b55f57bc11b83aac47d460 (diff) | |
download | mtk-20170518-532eb5f58109f310d6705d142422d8b2820bf654.zip mtk-20170518-532eb5f58109f310d6705d142422d8b2820bf654.tar.gz mtk-20170518-532eb5f58109f310d6705d142422d8b2820bf654.tar.bz2 |
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/patches-4.4')
-rw-r--r-- | target/linux/ipq806x/patches-4.4/996-ATAG_DTB_COMPAT_CMDLINE_MANGLE.patch | 2 |
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 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@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; + |