From: Adam C. Emerson Date: Thu, 26 Mar 2026 02:23:11 +0000 (-0400) Subject: rgw/test: Construct argv in vector, not VLA X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f3307bf7b70bb3ff89fb123861cadfc4ac521942;p=ceph.git rgw/test: Construct argv in vector, not VLA Signed-off-by: Adam C. Emerson --- diff --git a/src/rgw/driver/daos/rgw_sal_daos.cc b/src/rgw/driver/daos/rgw_sal_daos.cc index 4b322e998902..a1a1023c84ac 100644 --- a/src/rgw/driver/daos/rgw_sal_daos.cc +++ b/src/rgw/driver/daos/rgw_sal_daos.cc @@ -1831,11 +1831,11 @@ int DaosMultipartUpload::complete( 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) { diff --git a/src/rgw/driver/motr/rgw_sal_motr.cc b/src/rgw/driver/motr/rgw_sal_motr.cc index 6167df46aedd..af08af044463 100644 --- a/src/rgw/driver/motr/rgw_sal_motr.cc +++ b/src/rgw/driver/motr/rgw_sal_motr.cc @@ -2821,11 +2821,11 @@ int MotrMultipartUpload::complete(const DoutPrefixProvider *dpp, 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) { diff --git a/src/test/test_rgw_admin_helper.cc b/src/test/test_rgw_admin_helper.cc index 114ffd371e34..b7ca101226bc 100644 --- a/src/test/test_rgw_admin_helper.cc +++ b/src/test/test_rgw_admin_helper.cc @@ -308,7 +308,8 @@ namespace admin_helper /* child */ list l; get_str_list(cmd, " \t", l); - char *argv[l.size()]; + // One extra for argv[0] and one for the NULL. + std::vector argv(l.size() + 2); unsigned loop = 1; argv[0] = (char *)"radosgw-admin"; @@ -322,7 +323,7 @@ namespace admin_helper { 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) { diff --git a/src/test/test_rgw_admin_log.cc b/src/test/test_rgw_admin_log.cc index aebff32cd006..14ac64738cff 100644 --- a/src/test/test_rgw_admin_log.cc +++ b/src/test/test_rgw_admin_log.cc @@ -309,7 +309,8 @@ int run_rgw_admin(string& cmd, string& resp) { /* child */ list l; get_str_list(cmd, " \t", l); - char *argv[l.size()]; + // One extra for argv[0] and one for the NULL. + std::vector argv(l.size() + 2); unsigned loop = 1; argv[0] = (char *)"radosgw-admin"; @@ -321,7 +322,7 @@ int run_rgw_admin(string& cmd, string& resp) { 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);