From: Yehuda Sadeh Date: Wed, 17 Aug 2011 19:55:50 +0000 (-0700) Subject: rgw: fix virtual bucket name handling X-Git-Tag: v0.34~75 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d9df58e1b4e60006ec87851e292cb12c5b66e121;p=ceph.git rgw: fix virtual bucket name handling --- diff --git a/src/rgw/rgw_rest.cc b/src/rgw/rgw_rest.cc index abd18337dbf4..7a6eafce1b62 100644 --- a/src/rgw/rgw_rest.cc +++ b/src/rgw/rgw_rest.cc @@ -395,7 +395,7 @@ void init_entities_from_header(struct req_state *s) if (pos > 0 && h[pos - 1] == '.') { string encoded_bucket = h.substr(0, pos-1); url_decode(encoded_bucket, s->bucket_str); - s->bucket = s->bucket_str.c_str(); + s->bucket = strdup(s->bucket_str.c_str()); s->host_bucket = s->bucket; } else { s->host_bucket = NULL; @@ -473,11 +473,11 @@ void init_entities_from_header(struct req_state *s) goto done; url_decode(first, s->bucket_str); - s->bucket = s->bucket_str.c_str(); + s->bucket = strdup(s->bucket_str.c_str()); if (req.size()) { url_decode(req, s->object_str); - s->object = s->object_str.c_str(); + s->object = strdup(s->object_str.c_str()); } goto done;