| From f228b494e56d949be8d8ea09d4f973d1979201bf Mon Sep 17 00:00:00 2001 |
| From: Julien Grall <julien.grall@arm.com> |
| Date: Tue, 10 May 2016 15:40:31 +0100 |
| Subject: arm64: cpuinfo: Missing NULL terminator in compat_hwcap_str |
| |
| From: Julien Grall <julien.grall@arm.com> |
| |
| commit f228b494e56d949be8d8ea09d4f973d1979201bf upstream. |
| |
| The loop that browses the array compat_hwcap_str will stop when a NULL |
| is encountered, however NULL is missing at the end of array. This will |
| lead to overrun until a NULL is found somewhere in the following memory. |
| In reality, this works out because the compat_hwcap2_str array tends to |
| follow immediately in memory, and that *is* terminated correctly. |
| Furthermore, the unsigned int compat_elf_hwcap is checked before |
| printing each capability, so we end up doing the right thing because |
| the size of the two arrays is less than 32. Still, this is an obvious |
| mistake and should be fixed. |
| |
| Note for backporting: commit 12d11817eaafa414 ("arm64: Move |
| /proc/cpuinfo handling code") moved this code in v4.4. Prior to that |
| commit, the same change should be made in arch/arm64/kernel/setup.c. |
| |
| Fixes: 44b82b7700d0 "arm64: Fix up /proc/cpuinfo" |
| Signed-off-by: Julien Grall <julien.grall@arm.com> |
| Signed-off-by: Will Deacon <will.deacon@arm.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/arm64/kernel/setup.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/arch/arm64/kernel/setup.c |
| +++ b/arch/arm64/kernel/setup.c |
| @@ -473,7 +473,8 @@ static const char *compat_hwcap_str[] = |
| "idivt", |
| "vfpd32", |
| "lpae", |
| - "evtstrm" |
| + "evtstrm", |
| + NULL |
| }; |
| |
| static const char *compat_hwcap2_str[] = { |