diff options
author | Vincent Donnefort <vdonnefort@google.com> | 2024-12-18 20:03:18 +0300 |
---|---|---|
committer | Shuah Khan <skhan@linuxfoundation.org> | 2025-01-15 03:06:32 +0300 |
commit | b6f9cd83c60ebb48f580dd0ec9e9080590ebc053 (patch) | |
tree | d9c59bf4ebda4a2786455d5dad37adc9606c515c | |
parent | 103c0b5e82fb0f7c66c410897588095e9a1f64f6 (diff) | |
download | linux-b6f9cd83c60ebb48f580dd0ec9e9080590ebc053.tar.xz |
selftests/ring-buffer: Add test for out-of-bound pgoff mapping
Extend the ring-buffer mapping test coverage by checking an out-of-bound
pgoff which has proven to be problematic in the past.
Link: https://lore.kernel.org/r/20241218170318.2814991-1-vdonnefort@google.com
Cc: Shuah Khan <skhan@linuxfoundation.org>
Cc: linux-kselftest@vger.kernel.org
Signed-off-by: Vincent Donnefort <vdonnefort@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
-rw-r--r-- | tools/testing/selftests/ring-buffer/map_test.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/tools/testing/selftests/ring-buffer/map_test.c b/tools/testing/selftests/ring-buffer/map_test.c index d10a847130fb..a58f520f2f41 100644 --- a/tools/testing/selftests/ring-buffer/map_test.c +++ b/tools/testing/selftests/ring-buffer/map_test.c @@ -233,12 +233,18 @@ TEST_F(map, data_mmap) ASSERT_NE(data, MAP_FAILED); munmap(data, data_len); - /* Overflow the available subbufs by 1 */ + /* Offset within ring-buffer bounds, mapping size overflow */ meta_len += desc->meta->subbuf_size * 2; data = mmap(NULL, data_len, PROT_READ, MAP_SHARED, desc->cpu_fd, meta_len); ASSERT_EQ(data, MAP_FAILED); + /* Offset outside ring-buffer bounds */ + data_len = desc->meta->subbuf_size * desc->meta->nr_subbufs; + data = mmap(NULL, data_len, PROT_READ, MAP_SHARED, + desc->cpu_fd, data_len + (desc->meta->subbuf_size * 2)); + ASSERT_EQ(data, MAP_FAILED); + /* Verify meta-page padding */ if (desc->meta->meta_page_size > getpagesize()) { data_len = desc->meta->meta_page_size; |