]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
client: check rdonly file handle on truncate 38424/head
authorPatrick Donnelly <pdonnell@redhat.com>
Wed, 11 Nov 2020 19:37:09 +0000 (11:37 -0800)
committerNathan Cutler <ncutler@suse.com>
Thu, 3 Dec 2020 12:19:12 +0000 (13:19 +0100)
Fixes: https://tracker.ceph.com/issues/48202
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 3bb209772eada4ba5010be521f7ecaae567598d0)

src/client/Client.cc

index e34c99b2f49d808e577fe4f1b64aaaceea388ffe..690e79949990a2dc78c27061b55e6289e60379a5 100755 (executable)
@@ -9874,6 +9874,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);