From: Patrick Donnelly Date: Wed, 22 Nov 2017 05:34:32 +0000 (-0800) Subject: test: pass correct buffer length to ceph_getdents X-Git-Tag: v12.2.5~41^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F21173%2Fhead;p=ceph.git 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 (cherry picked from commit ef5699441e056133967ffbf29076eb79594bf5e5) --- diff --git a/src/test/libcephfs/test.cc b/src/test/libcephfs/test.cc index 957c7edc8dd9..30acadb9f7ed 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);