diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2019-09-16 10:41:26 -0400 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2019-09-16 10:41:26 -0400 |
commit | 17489ee5e21563544b1f91110b04f713d5dcbc4e (patch) | |
tree | 684eb01068edf78cbc09736c50f0a00df7226663 | |
parent | b2b9f6bf14d8255b0004b5030147358b93d95846 (diff) | |
download | longterm-queue-4.18-17489ee5e21563544b1f91110b04f713d5dcbc4e.tar.gz |
mips: add fix for prev fix
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r-- | queue/MIPS-Fix-bounds-check-virt_addr_valid.patch | 44 | ||||
-rw-r--r-- | queue/series | 2 |
2 files changed, 45 insertions, 1 deletions
diff --git a/queue/MIPS-Fix-bounds-check-virt_addr_valid.patch b/queue/MIPS-Fix-bounds-check-virt_addr_valid.patch new file mode 100644 index 0000000..2e045ab --- /dev/null +++ b/queue/MIPS-Fix-bounds-check-virt_addr_valid.patch @@ -0,0 +1,44 @@ +From d6ed083f5cc621e15c15b56c3b585fd524dbcb0f Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens <hauke@hauke-m.de> +Date: Mon, 17 Jun 2019 00:30:39 +0200 +Subject: [PATCH] MIPS: Fix bounds check virt_addr_valid + +commit d6ed083f5cc621e15c15b56c3b585fd524dbcb0f upstream. + +The bounds check used the uninitialized variable vaddr, it should use +the given parameter kaddr instead. When using the uninitialized value +the compiler assumed it to be 0 and optimized this function to just +return 0 in all cases. + +This should make the function check the range of the given address and +only do the page map check in case it is in the expected range of +virtual addresses. + +Fixes: 074a1e1167af ("MIPS: Bounds check virt_addr_valid") +Cc: stable@vger.kernel.org # v4.12+ +Cc: Paul Burton <paul.burton@mips.com> +Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> +Signed-off-by: Paul Burton <paul.burton@mips.com> +Cc: ralf@linux-mips.org +Cc: jhogan@kernel.org +Cc: f4bug@amsat.org +Cc: linux-mips@vger.kernel.org +Cc: ysu@wavecomp.com +Cc: jcristau@debian.org + +diff --git a/arch/mips/mm/mmap.c b/arch/mips/mm/mmap.c +index 50ee7213b432..d79f2b432318 100644 +--- a/arch/mips/mm/mmap.c ++++ b/arch/mips/mm/mmap.c +@@ -203,7 +203,7 @@ unsigned long arch_randomize_brk(struct mm_struct *mm) + + bool __virt_addr_valid(const volatile void *kaddr) + { +- unsigned long vaddr = (unsigned long)vaddr; ++ unsigned long vaddr = (unsigned long)kaddr; + + if ((vaddr < PAGE_OFFSET) || (vaddr >= MAP_BASE)) + return false; +-- +2.7.4 + diff --git a/queue/series b/queue/series index 01380f8..2e4e9f6 100644 --- a/queue/series +++ b/queue/series @@ -225,4 +225,4 @@ Abort-file_remove_privs-for-non-reg.-files.patch net-mlx5-Avoid-reloading-already-removed-devices.patch drm-nouveau-Don-t-retry-infinitely-when-receiving-no.patch drm-nouveau-i2c-Enable-i2c-pads-busses-during-preini.patch - +MIPS-Fix-bounds-check-virt_addr_valid.patch |