]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Fixing NULL pointer dereference 7424/head
authorIgor Fedotov <ifedotov@mirantis.com>
Thu, 19 Nov 2015 10:38:40 +0000 (13:38 +0300)
committerAbhishek Varshney <abhishek.varshney@flipkart.com>
Fri, 29 Jan 2016 09:59:26 +0000 (15:29 +0530)
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
(cherry picked from commit 93d3dfe0441be50a6990d458ee0ee3289af39b20)

src/rgw/rgw_orphan.cc

index 0bf34d8d94127fc8402a7756efbab85867ae3d4e..f59e1f75db4f794f7f240c3d455d0bdc980055f6 100644 (file)
@@ -165,17 +165,13 @@ int RGWOrphanSearch::init(const string& job_name, RGWOrphanSearchInfo *info) {
     return r;
   }
 
-  uint64_t num_shards = (info->num_shards ? info->num_shards : DEFAULT_NUM_SHARDS);
   if (r == 0) {
-    if (num_shards != state.info.num_shards) {
-      return -EINVAL;
-    }
     search_info = state.info;
     search_stage = state.stage;
-  } else { /* r == -ENOENT */
+  } else if (info) { /* r == -ENOENT, initiate a new job if info was provided */ 
     search_info = *info;
     search_info.job_name = job_name;
-    search_info.num_shards = num_shards;
+    search_info.num_shards = (info->num_shards ? info->num_shards : DEFAULT_NUM_SHARDS);
     search_info.start_time = ceph_clock_now(store->ctx());
     search_stage = RGWOrphanSearchStage(ORPHAN_SEARCH_STAGE_INIT);
 
@@ -184,6 +180,9 @@ int RGWOrphanSearch::init(const string& job_name, RGWOrphanSearchInfo *info) {
       lderr(store->ctx()) << "ERROR: failed to write state ret=" << r << dendl;
       return r;
     }
+  } else {
+      lderr(store->ctx()) << "ERROR: job not found" << dendl;
+      return r;
   }
 
   index_objs_prefix = RGW_ORPHAN_INDEX_PREFIX + string(".");