| From: JP Kobryn <inwardvessel@gmail.com> |
| Subject: selftests/mm/ksm_functional: prevent unmapping undefined address |
| Date: Fri, 5 Jan 2024 12:24:01 -0800 |
| |
| Replace some goto statements with return statements so that unmap() is not |
| called on an undefined address. This change is made so that unmap() can |
| only be reached after mmap() is called (and the address mentioned is |
| defined). Returning MAP_FAILED seems acceptable since client code checks |
| for this value. |
| |
| Link: https://lkml.kernel.org/r/20240105202401.28851-1-inwardvessel@gmail.com |
| Fixes: 42096aa24b82 ("selftest/mm: ksm_functional_tests: test in mmap_and_merge_range() if anything got merged") |
| Signed-off-by: JP Kobryn <inwardvessel@gmail.com> |
| Reviewed-by: David Hildenbrand <david@redhat.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| tools/testing/selftests/mm/ksm_functional_tests.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/tools/testing/selftests/mm/ksm_functional_tests.c~selftests-mm-ksm_functional-prevent-unmapping-undefined-address |
| +++ a/tools/testing/selftests/mm/ksm_functional_tests.c |
| @@ -155,12 +155,12 @@ static char *mmap_and_merge_range(char v |
| /* Stabilize accounting by disabling KSM completely. */ |
| if (ksm_unmerge()) { |
| ksft_test_result_fail("Disabling (unmerging) KSM failed\n"); |
| - goto unmap; |
| + return MAP_FAILED; |
| } |
| |
| if (get_my_merging_pages() > 0) { |
| ksft_test_result_fail("Still pages merged\n"); |
| - goto unmap; |
| + return MAP_FAILED; |
| } |
| |
| map = mmap(NULL, size, PROT_READ|PROT_WRITE, |
| _ |