Message ID | 20241218170318.2814991-1-vdonnefort@google.com |
---|---|
State | New |
Headers | show |
Series | selftests/ring-buffer: Add test for out-of-bound pgoff mapping | expand |
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
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;
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> base-commit: 61baee2dc5341c936e7fa7b1ca33c5607868de69