]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
test: pass correct buffer length to ceph_getdents 19095/head
authorPatrick Donnelly <pdonnell@redhat.com>
Wed, 22 Nov 2017 05:34:32 +0000 (21:34 -0800)
committerPatrick Donnelly <pdonnell@redhat.com>
Wed, 22 Nov 2017 05:35:14 +0000 (21:35 -0800)
This test fails if the randvar r is 0.

Fixes: http://tracker.ceph.com/issues/22221
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
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);