From: Yehuda Sadeh Date: Wed, 25 Nov 2015 18:31:55 +0000 (-0800) Subject: rgw: fix tenant/bucket parsing X-Git-Tag: v10.0.2~127^2~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9bd0b11a60648f8fa65f81bcb9f1b8a9389d1b9e;p=ceph.git rgw: fix tenant/bucket parsing Signed-off-by: Yehuda Sadeh --- diff --git a/src/rgw/rgw_bucket.cc b/src/rgw/rgw_bucket.cc index 304448c79524..157fd085aa60 100644 --- a/src/rgw/rgw_bucket.cc +++ b/src/rgw/rgw_bucket.cc @@ -60,7 +60,11 @@ void rgw_make_bucket_entry_name(const string& tenant_name, const string& bucket_ void rgw_parse_url_bucket(const string &bucket, string &tenant_name, string &bucket_name) { int pos = bucket.find(':'); - tenant_name = bucket.substr(0, pos); + if (pos >= 0) { + tenant_name = bucket.substr(0, pos); + } else { + tenant_name.clear(); + } bucket_name = bucket.substr(pos + 1); } diff --git a/src/rgw/rgw_metadata.h b/src/rgw/rgw_metadata.h index ed21dc59487c..bb77e6561b21 100644 --- a/src/rgw/rgw_metadata.h +++ b/src/rgw/rgw_metadata.h @@ -116,7 +116,11 @@ protected: string &tenant_name, string &bucket_name) { int pos = bucket.find('/'); - tenant_name = bucket.substr(0, pos); + if (pos >= 0) { + tenant_name = bucket.substr(0, pos); + } else { + tenant_name.clear(); + } bucket_name = bucket.substr(pos + 1); } };