append_bl(etag_bl, CEPH_CRYPTO_MD5_DIGESTSIZE * 2 + 16, [&](auto iter) {
auto start = iter;
- iter = buf_to_hex(final_etag, sizeof(final_etag), iter);
+ iter = buf_to_hex(final_etag, iter);
iter = fmt::format_to(iter, "-{}", part_etags.size());
ldpp_dout(dpp, 10) << "calculated etag: " << std::string_view{start, iter} << dendl;
return iter;
- }
+ });
attrs[RGW_ATTR_ETAG] = etag_bl;
if (compressed) {
append_bl(etag_bl, CEPH_CRYPTO_MD5_DIGESTSIZE * 2 + 16, [&](auto iter) {
auto start = iter;
- iter = buf_to_hex(final_etag, sizeof(final_etag), iter);
+ iter = buf_to_hex(final_etag, iter);
iter = fmt::format_to(iter, "-{}", part_etags.size());
ldpp_dout(dpp, 10) << "calculated etag: " << std::string_view{start, iter} << dendl;
return iter;
- }
+ });
attrs[RGW_ATTR_ETAG] = etag_bl;
if (compressed) {
/* child */
list<string> l;
get_str_list(cmd, " \t", l);
- char *argv[l.size()];
+ // One extra for argv[0] and one for the NULL.
+ std::vector<char*> argv(l.size() + 2);
unsigned loop = 1;
argv[0] = (char *)"radosgw-admin";
{
cout << "Unable to open stdout file" << std::endl;
}
- execv((g_test->get_rgw_admin_path()).c_str(), argv);
+ execv((g_test->get_rgw_admin_path()).c_str(), argv.data());
}
else if (pid > 0)
{
/* child */
list<string> l;
get_str_list(cmd, " \t", l);
- char *argv[l.size()];
+ // One extra for argv[0] and one for the NULL.
+ std::vector<char*> argv(l.size() + 2);
unsigned loop = 1;
argv[0] = (char *)"radosgw-admin";
if (!freopen(RGW_ADMIN_RESP_PATH, "w+", stdout)) {
cout << "Unable to open stdout file" << std::endl;
}
- execv((g_test->get_rgw_admin_path()).c_str(), argv);
+ execv((g_test->get_rgw_admin_path()).c_str(), argv.data());
} else if (pid > 0) {
int status;
waitpid(pid, &status, 0);