From: Adam C. Emerson Date: Wed, 25 Mar 2026 19:20:35 +0000 (-0400) Subject: rgw: `RGWHTTPStreamRWRequest::complete_request` no longer uses VLAs X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8777112678dae13ab9232d4b033302febdd5592d;p=ceph.git rgw: `RGWHTTPStreamRWRequest::complete_request` no longer uses VLAs Signed-off-by: Adam C. Emerson --- diff --git a/src/rgw/rgw_rest_client.cc b/src/rgw/rgw_rest_client.cc index 5062875d19f3..8cd692aa9dc2 100644 --- a/src/rgw/rgw_rest_client.cc +++ b/src/rgw/rgw_rest_client.cc @@ -971,21 +971,13 @@ int RGWHTTPStreamRWRequest::complete_request(const DoutPrefixProvider* dpp, for (auto iter = out_headers.begin(); pattrs && iter != out_headers.end(); ++iter) { const string& attr_name = iter->first; if (attr_name.compare(0, sizeof(RGW_HTTP_RGWX_ATTR_PREFIX) - 1, RGW_HTTP_RGWX_ATTR_PREFIX) == 0) { - string name = attr_name.substr(sizeof(RGW_HTTP_RGWX_ATTR_PREFIX) - 1); - const char *src = name.c_str(); - char buf[name.size() + 1]; - char *dest = buf; - for (; *src; ++src, ++dest) { - switch(*src) { - case '_': - *dest = '-'; - break; - default: - *dest = tolower(*src); - } - } - *dest = '\0'; - (*pattrs)[buf] = iter->second; + std::string name; + name.reserve(attr_name.size() - (sizeof(RGW_HTTP_RGWX_ATTR_PREFIX) - 1)); + lowercase_dash_transform( + std::string_view{attr_name}.substr( + sizeof(RGW_HTTP_RGWX_ATTR_PREFIX) - 1), + std::back_inserter(name)); + (*pattrs)[std::move(name)] = iter->second; } }