]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
test: pass correct buffer length to ceph_getdents 21173/head
authorPatrick Donnelly <pdonnell@redhat.com>
Wed, 22 Nov 2017 05:34:32 +0000 (21:34 -0800)
committerNathan Cutler <ncutler@suse.com>
Mon, 2 Apr 2018 09:56:23 +0000 (11:56 +0200)
This test fails if the randvar r is 0.

Fixes: http://tracker.ceph.com/issues/22221
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit ef5699441e056133967ffbf29076eb79594bf5e5)

src/test/libcephfs/test.cc

index 957c7edc8dd9c87216b1be606e750f4ff65e4707..30acadb9f7ed0cb7edefeeb7e253dec10e0eadf8 100644 (file)
@@ -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<std::string> 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);