summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-03-27 12:59:41 -0700
committerSage Weil <sage@inktank.com>2013-03-27 13:22:09 -0700
commit6b6e0cef99e66b46ade35ab262f071982049bc22 (patch)
treea72301ef2fc6eab0a6ea2db21bc0b3de3e806412
parent4bdd37495cedb1cf30a5311548492fe3f5db6e92 (diff)
downloadceph-6b6e0cef99e66b46ade35ab262f071982049bc22.tar.gz
osd: EINVAL when rmw_flags is 0
A broken client (e.g., v0.56) can send a request that ends up with an rmw_flags of 0. Treat this as invalid and return EINVAL. Fixes: #4556 Signed-off-by: Sage Weil <sage@inktank.com> (cherry picked from commit f2dda43c9ed4fda9cfa87362514985ee79e0ae15)
-rw-r--r--src/osd/OSD.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc
index e173f5e7517..c0e5cf217e6 100644
--- a/src/osd/OSD.cc
+++ b/src/osd/OSD.cc
@@ -6340,5 +6340,8 @@ int OSD::init_op_flags(MOSDOp *op)
}
}
+ if (op->rmw_flags == 0)
+ return -EINVAL;
+
return 0;
}