From 738049bed997a5bba991de9bfaf455f056713467 Mon Sep 17 00:00:00 2001 From: Patrick Donnelly Date: Wed, 11 Nov 2020 11:37:09 -0800 Subject: [PATCH] client: check rdonly file handle on truncate Fixes: https://tracker.ceph.com/issues/48202 Signed-off-by: Patrick Donnelly (cherry picked from commit 3bb209772eada4ba5010be521f7ecaae567598d0) --- src/client/Client.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/client/Client.cc b/src/client/Client.cc index 6d23a73eee183..cb515836ed6af 100755 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -9813,6 +9813,8 @@ int Client::ftruncate(int fd, loff_t length, const UserPerm& perms) if (f->flags & O_PATH) return -EBADF; #endif + if ((f->mode & CEPH_FILE_MODE_WR) == 0) + return -EBADF; struct stat attr; attr.st_size = length; return _setattr(f->inode, &attr, CEPH_SETATTR_SIZE, perms); -- 2.39.5