From d63303de9702e28da0992899855ba4ea9b71738d Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 7 Feb 2012 21:36:53 -0800 Subject: [PATCH] client: -EINVAL write if not opened writable Fixes: #1827 Signed-off-by: Sage Weil --- src/client/Client.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/client/Client.cc b/src/client/Client.cc index 4c16a6c4d01f0..652a7010138da 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -5260,6 +5260,10 @@ int Client::_write(Fh *f, int64_t offset, uint64_t size, const char *buf) assert(in->snapid == CEPH_NOSNAP); + // was Fh opened as writeable? + if ((f->mode & CEPH_FILE_MODE_WR) == 0) + return -EINVAL; + // use/adjust fd pos? if (offset < 0) { lock_fh_pos(f); -- 2.39.5