From beb4b66c2f2eb4a22e6213b4b87d1670c10e5227 Mon Sep 17 00:00:00 2001 From: Igor Fedotov Date: Thu, 19 Nov 2015 13:38:40 +0300 Subject: [PATCH] Fixing NULL pointer dereference Signed-off-by: Igor Fedotov (cherry picked from commit 93d3dfe0441be50a6990d458ee0ee3289af39b20) --- src/rgw/rgw_orphan.cc | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/rgw/rgw_orphan.cc b/src/rgw/rgw_orphan.cc index 0bf34d8d94127..f59e1f75db4f7 100644 --- a/src/rgw/rgw_orphan.cc +++ b/src/rgw/rgw_orphan.cc @@ -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("."); -- 2.39.5