summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-03-27 13:19:03 -0700
committerSage Weil <sage@inktank.com>2013-03-27 13:22:12 -0700
commit1507443271fda933032ef0877aff1890d4fd5b63 (patch)
tree967fb9c5abf1d120adb0ecdc1f2b3d658e09b472
parent6b6e0cef99e66b46ade35ab262f071982049bc22 (diff)
downloadceph-1507443271fda933032ef0877aff1890d4fd5b63.tar.gz
osd: disallow classes with flags==0
They must be RD, WR, or something.... Signed-off-by: Sage Weil <sage@inktank.com> (cherry picked from commit 89c69016e1dddb9f3ca40fd699e4a995ef1e3eee)
-rw-r--r--src/osd/ClassHandler.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/osd/ClassHandler.cc b/src/osd/ClassHandler.cc
index f6a5acfbe81..6675e9e4fc4 100644
--- a/src/osd/ClassHandler.cc
+++ b/src/osd/ClassHandler.cc
@@ -142,6 +142,11 @@ ClassHandler::ClassMethod *ClassHandler::ClassData::register_method(const char *
cls_method_call_t func)
{
/* no need for locking, called under the class_init mutex */
+ if (!flags) {
+ derr << "register_method " << name << "." << mname << " flags " << flags << " " << (void*)func
+ << " FAILED -- flags must be non-zero" << dendl;
+ return NULL;
+ }
dout(10) << "register_method " << name << "." << mname << " flags " << flags << " " << (void*)func << dendl;
ClassMethod& method = methods_map[mname];
method.func = func;