]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix regression with handling double underscore
authorOrit Wasserman <owasserm@redhat.com>
Wed, 31 Aug 2016 20:25:57 +0000 (22:25 +0200)
committerOrit Wasserman <owasserm@redhat.com>
Wed, 19 Oct 2016 16:28:08 +0000 (18:28 +0200)
Fixes: http://tracker.ceph.com/issues/16856
Signed-off-by: Orit Wasserman <owasserm@redhat.com>
(cherry picked from commit bc840afafdfe5e528e5c1b711e71420ac3cb5a67)

src/rgw/rgw_op.cc

index ce94155ac701f4769d36b01a207cbb88d5b463ab..61d3d74d94c705cedc11d69c7af847b472bb296f 100644 (file)
@@ -263,7 +263,8 @@ static int read_policy(RGWRados *store, struct req_state *s,
     obj.init_ns(bucket, oid, mp_ns);
     obj.set_in_extra_data(true);
   } else {
-    obj = rgw_obj(bucket, object);
+    obj = rgw_obj(bucket, object.name);
+    obj.set_instance(s->object.instance);
   }
   int ret = get_policy_from_attr(s->cct, store, s->obj_ctx, bucket_info, bucket_attrs, policy, obj);
   if (ret == -ENOENT && !object.empty()) {
@@ -410,6 +411,7 @@ int rgw_build_object_policies(RGWRados *store, struct req_state *s,
     s->object_acl = new RGWAccessControlPolicy(s->cct);
 
     rgw_obj obj(s->bucket, s->object);
+      
     store->set_atomic(s->obj_ctx, obj);
     if (prefetch_data) {
       store->set_prefetch_data(s->obj_ctx, obj);
@@ -430,7 +432,8 @@ static void rgw_bucket_object_pre_exec(struct req_state *s)
 
 int RGWGetObj::verify_permission()
 {
-  obj = rgw_obj(s->bucket, s->object);
+  obj = rgw_obj(s->bucket, s->object.name);
+  obj.set_instance(s->object.instance);
   store->set_atomic(s->obj_ctx, obj);
   if (get_data)
     store->set_prefetch_data(s->obj_ctx, obj);