From: Konstantin Khorenko <[email protected]>

  memfd_test.c: In function 'mfd_fail_grow_write.part.0':
  memfd_test.c:685:13: warning: '<unknown>' may be used uninitialized
  [-Wmaybe-uninitialized]
    685 |         l = pwrite(fd, buf, mfd_def_size * 8, 0);
        |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

pwrite() is declared with attribute 'access (read_only, 2, 3)', so GCC
knows it reads from the buffer. malloc() returns uninitialized memory,
hence the warning. Use calloc() to zero-initialize the buffer. The
actual contents don't matter here since the test verifies that pwrite()
fails on a sealed memfd.

Signed-off-by: Konstantin Khorenko <[email protected]>
Signed-off-by: Eva Kurchatova <[email protected]>
---
 tools/testing/selftests/memfd/memfd_test.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/memfd/memfd_test.c 
b/tools/testing/selftests/memfd/memfd_test.c
index 2ca07ea7202a..cdab3a837624 100644
--- a/tools/testing/selftests/memfd/memfd_test.c
+++ b/tools/testing/selftests/memfd/memfd_test.c
@@ -688,9 +688,9 @@ static void mfd_assert_grow_write(int fd)
        if (hugetlbfs_test)
                return;
 
-       buf = malloc(mfd_def_size * 8);
+       buf = calloc(1, mfd_def_size * 8);
        if (!buf) {
-               printf("malloc(%zu) failed: %m\n", mfd_def_size * 8);
+               printf("calloc(1, %zu) failed: %m\n", mfd_def_size * 8);
                abort();
        }
 
-- 
2.54.0


Reply via email to