From 473ad4ea2a35c74d89605b5579a4ff3866134c2d Mon Sep 17 00:00:00 2001 From: "Yan, Zheng" Date: Wed, 15 Feb 2017 11:45:26 +0800 Subject: [PATCH] test/libcephfs: avoid buffer overflow when testing ceph_getdents() The buffer size should be at least "2 * sizeof(struct dirent)". Otherwise, the code that checks dentry '..' overflow. Fixes: http://tracker.ceph.com/issues/18941 Signed-off-by: "Yan, Zheng" (cherry picked from commit fa6671345b8f3a82dcd232f99e55a982b0a641f1) --- src/test/libcephfs/test.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/libcephfs/test.cc b/src/test/libcephfs/test.cc index e2864f8e964cc..283d46ff25651 100644 --- a/src/test/libcephfs/test.cc +++ b/src/test/libcephfs/test.cc @@ -362,7 +362,7 @@ TEST(LibCephFS, DirLs) { // test getdents struct dirent *getdents_entries; - getdents_entries = (struct dirent *)malloc(r * sizeof(*getdents_entries)); + getdents_entries = (struct dirent *)malloc((r + 2) * sizeof(*getdents_entries)); int count = 0; std::vector found; -- 2.39.5