]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
selftests/ring-buffer: Add test for out-of-bound pgoff mapping
authorVincent Donnefort <vdonnefort@google.com>
Wed, 18 Dec 2024 17:03:18 +0000 (17:03 +0000)
committerShuah Khan <skhan@linuxfoundation.org>
Wed, 15 Jan 2025 00:06:32 +0000 (17:06 -0700)
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>
tools/testing/selftests/ring-buffer/map_test.c

index d10a847130fbc3949b5a6b9e63ac659988f5db17..a58f520f2f41af9bc332beda97b40d91f72519ca 100644 (file)
@@ -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;