From: Igor Fedotov Date: Thu, 19 Nov 2015 10:38:40 +0000 (+0300) Subject: Fixing NULL pointer dereference X-Git-Tag: v0.94.6~27^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F7186%2Fhead;p=ceph.git Fixing NULL pointer dereference Signed-off-by: Igor Fedotov (cherry picked from commit 93d3dfe0441be50a6990d458ee0ee3289af39b20) --- diff --git a/src/rgw/rgw_orphan.cc b/src/rgw/rgw_orphan.cc index 0bf34d8d941..f59e1f75db4 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(".");