aboutsummaryrefslogtreecommitdiff
blob: d767d8170dfa9ac6bd73eaacdf0a314b63d1b821 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
commit dc2ffda7819d2ebeed3526d9e6da8f53221818de
Author: Yehuda Sadeh <yehuda@redhat.com>
Date:   Thu Oct 20 10:17:36 2016 -0700

    rgw: handle empty POST condition
    
    Fixes: http://tracker.ceph.com/issues/17635
    
    Before accessing json entity, need to check that iterator is valid.
    If there is no entry return appropriate error code.
    
    Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
    (cherry picked from commit 23cb642243e09ca4a8e104f62a3bb7b2cbb6ea12)

diff --git a/src/rgw/rgw_policy_s3.cc b/src/rgw/rgw_policy_s3.cc
index 3843511..8af70a8 100644
--- a/src/rgw/rgw_policy_s3.cc
+++ b/src/rgw/rgw_policy_s3.cc
@@ -286,11 +286,13 @@ int RGWPolicy::from_json(bufferlist& bl, string& err_msg)
       int r = add_condition(v[0], v[1], v[2], err_msg);
       if (r < 0)
         return r;
-    } else {
+    } else if (!citer.end()) {
       JSONObj *c = *citer;
       dout(0) << "adding simple_check: " << c->get_name() << " : " << c->get_data() << dendl;
 
       add_simple_check(c->get_name(), c->get_data());
+    } else {
+      return -EINVAL;
     }
   }
   return 0;