From: Danny Al-Gaaf Date: Wed, 24 Jul 2013 16:43:00 +0000 (+0200) Subject: rgw/rgw_metadata.cc: fix possible null dereferencing X-Git-Tag: v0.67-rc3~61^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ebff1ebd1011968bfdf1d88208d3b95ec1c2e476;p=ceph.git rgw/rgw_metadata.cc: fix possible null dereferencing CID 1054827 (#1 of 1): Dereference after null check (FORWARD_NULL) var_deref_model: Passing null pointer "objv_tracker->read_version" to function "obj_version::operator =(obj_version const &)", which dereferences it. Moved affected 2 cases into the block checking for objv_tracker Signed-off-by: Danny Al-Gaaf --- diff --git a/src/rgw/rgw_metadata.cc b/src/rgw/rgw_metadata.cc index ac8c703f5e05..e9094ad35d69 100644 --- a/src/rgw/rgw_metadata.cc +++ b/src/rgw/rgw_metadata.cc @@ -505,15 +505,15 @@ int RGWMetadataManager::pre_modify(RGWMetadataHandler *handler, string& section, /* if write version has not been set, and there's a read version, set it so that we can * log it */ - if (objv_tracker && objv_tracker->read_version.ver && - !objv_tracker->write_version.ver) { - objv_tracker->write_version = objv_tracker->read_version; - objv_tracker->write_version.ver++; + if (objv_tracker) { + if (objv_tracker->read_version.ver && !objv_tracker->write_version.ver) { + objv_tracker->write_version = objv_tracker->read_version; + objv_tracker->write_version.ver++; + } + log_data.read_version = objv_tracker->read_version; + log_data.write_version = objv_tracker->write_version; } - log_data.read_version = objv_tracker->read_version; - log_data.write_version = objv_tracker->write_version; - log_data.status = op_type; bufferlist logbl;