From ef5699441e056133967ffbf29076eb79594bf5e5 Mon Sep 17 00:00:00 2001 From: Patrick Donnelly Date: Tue, 21 Nov 2017 21:34:32 -0800 Subject: [PATCH] test: pass correct buffer length to ceph_getdents This test fails if the randvar r is 0. Fixes: http://tracker.ceph.com/issues/22221 Signed-off-by: Patrick Donnelly --- src/test/libcephfs/test.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/test/libcephfs/test.cc b/src/test/libcephfs/test.cc index 957c7edc8dd..30acadb9f7e 100644 --- a/src/test/libcephfs/test.cc +++ b/src/test/libcephfs/test.cc @@ -365,12 +365,13 @@ TEST(LibCephFS, DirLs) { // test getdents struct dirent *getdents_entries; - getdents_entries = (struct dirent *)malloc((r + 2) * sizeof(*getdents_entries)); + size_t getdents_entries_len = (r + 2) * sizeof(*getdents_entries); + getdents_entries = (struct dirent *)malloc(getdents_entries_len); int count = 0; std::vector found; while (true) { - int len = ceph_getdents(cmount, ls_dir, (char *)getdents_entries, r * sizeof(*getdents_entries)); + int len = ceph_getdents(cmount, ls_dir, (char *)getdents_entries, getdents_entries_len); if (len == 0) break; ASSERT_GT(len, 0); -- 2.39.5