diff mbox series

selftests/mm/ksm_functional: prevent unmapping undefined address

Message ID 20240105202401.28851-1-inwardvessel@gmail.com (mailing list archive)
State New
Headers show
Series selftests/mm/ksm_functional: prevent unmapping undefined address | expand

Commit Message

JP Kobryn Jan. 5, 2024, 8:24 p.m. UTC
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.

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>
---
 tools/testing/selftests/mm/ksm_functional_tests.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

David Hildenbrand Jan. 7, 2024, 8:42 p.m. UTC | #1
On 05.01.24 21:24, JP Kobryn wrote:
> 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.
> 
> 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>
> ---
>   tools/testing/selftests/mm/ksm_functional_tests.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/testing/selftests/mm/ksm_functional_tests.c b/tools/testing/selftests/mm/ksm_functional_tests.c
> index fbff0dd09191..d615767e396b 100644
> --- a/tools/testing/selftests/mm/ksm_functional_tests.c
> +++ b/tools/testing/selftests/mm/ksm_functional_tests.c
> @@ -155,12 +155,12 @@ static char *mmap_and_merge_range(char val, unsigned long size, int prot,
>   	/* 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,

Indeed, thanks.

Reviewed-by: David Hildenbrand <david@redhat.com>
diff mbox series

Patch

diff --git a/tools/testing/selftests/mm/ksm_functional_tests.c b/tools/testing/selftests/mm/ksm_functional_tests.c
index fbff0dd09191..d615767e396b 100644
--- a/tools/testing/selftests/mm/ksm_functional_tests.c
+++ b/tools/testing/selftests/mm/ksm_functional_tests.c
@@ -155,12 +155,12 @@  static char *mmap_and_merge_range(char val, unsigned long size, int prot,
 	/* 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,