From 3bb209772eada4ba5010be521f7ecaae567598d0 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 --- src/client/Client.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/client/Client.cc b/src/client/Client.cc index 35dbd94058c..12cd6c741fb 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -10134,6 +10134,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.47.3