Extend the ring-buffer mapping test coverage by checking an out-of-bound pgoff which has proven to be problematic in the past.
Cc: Shuah Khan skhan@linuxfoundation.org Cc: linux-kselftest@vger.kernel.org Signed-off-by: Vincent Donnefort vdonnefort@google.com
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;
base-commit: 61baee2dc5341c936e7fa7b1ca33c5607868de69
Hi Shuah,
Care to take this through your tree?
On Wed, 18 Dec 2024 17:03:18 +0000 Vincent Donnefort vdonnefort@google.com wrote:
Extend the ring-buffer mapping test coverage by checking an out-of-bound pgoff which has proven to be problematic in the past.
Cc: Shuah Khan skhan@linuxfoundation.org Cc: linux-kselftest@vger.kernel.org Signed-off-by: Vincent Donnefort vdonnefort@google.com
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;
base-commit: 61baee2dc5341c936e7fa7b1ca33c5607868de69
You can ignore the above "base-commit" (I don't have it), as it applies fine to v6.13-rc4.
-- Steve
On 12/23/24 20:05, Steven Rostedt wrote:
Hi Shuah,
Care to take this through your tree?
On Wed, 18 Dec 2024 17:03:18 +0000 Vincent Donnefort vdonnefort@google.com wrote:
Extend the ring-buffer mapping test coverage by checking an out-of-bound pgoff which has proven to be problematic in the past.
Cc: Shuah Khan skhan@linuxfoundation.org Cc: linux-kselftest@vger.kernel.org Signed-off-by: Vincent Donnefort vdonnefort@google.com
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;
base-commit: 61baee2dc5341c936e7fa7b1ca33c5607868de69
You can ignore the above "base-commit" (I don't have it), as it applies fine to v6.13-rc4.
Applied to linux_kselftest next for Linux 6.14-rc1.
thanks, -- Shuah
linux-kselftest-mirror@lists.linaro.org