From 7c08c54fec0f95d309242a04270e76adce2bfc5f Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Fri, 21 Aug 2015 21:14:31 +0200 Subject: [PATCH] rgw: fix dangerous removal from STL map in filter_out_temp_url(). Fixes: #12750 Signed-off-by: Radoslaw Zarzynski --- src/rgw/rgw_op.cc | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index c3827714d0f..d5e16793512 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -2181,17 +2181,17 @@ void RGWPutMetadataAccount::filter_out_temp_url(map& add_att map& temp_url_keys) { map::iterator iter; - for (iter = add_attrs.begin(); iter != add_attrs.end(); ++iter) { - const string name = iter->first; - if (name.compare(RGW_ATTR_TEMPURL_KEY1) == 0) { - temp_url_keys[0] = iter->second.c_str(); - add_attrs.erase(name); - } - if (name.compare(RGW_ATTR_TEMPURL_KEY2) == 0) { - temp_url_keys[1] = iter->second.c_str(); - add_attrs.erase(name); - } + iter = add_attrs.find(RGW_ATTR_TEMPURL_KEY1); + if (iter != add_attrs.end()) { + temp_url_keys[0] = iter->second.c_str(); + add_attrs.erase(iter); + } + + iter = add_attrs.find(RGW_ATTR_TEMPURL_KEY2); + if (iter != add_attrs.end()) { + temp_url_keys[1] = iter->second.c_str(); + add_attrs.erase(iter); } set::const_iterator riter; -- 2.47.3