]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/test: Construct argv in vector, not VLA
authorAdam C. Emerson <aemerson@redhat.com>
Thu, 26 Mar 2026 02:23:11 +0000 (22:23 -0400)
committerAdam C. Emerson <aemerson@redhat.com>
Thu, 26 Mar 2026 04:07:21 +0000 (00:07 -0400)
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
src/rgw/driver/daos/rgw_sal_daos.cc
src/rgw/driver/motr/rgw_sal_motr.cc
src/test/test_rgw_admin_helper.cc
src/test/test_rgw_admin_log.cc

index 4b322e998902a3f7ea44a9d1e5df710ae23aa3f8..a1a1023c84ac6707131b7337409ea95788011941 100644 (file)
@@ -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) {
index 6167df46aedd04885d8ff9c5430658e6810fbb3a..af08af044463d1b7a9285551d594d0ffd509093c 100644 (file)
@@ -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) {
index 114ffd371e3458377d6ebfa1d2e035f961419ebc..b7ca101226bc417f9e34598e333d633e831e3b3c 100644 (file)
@@ -308,7 +308,8 @@ namespace admin_helper
             /* 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";
@@ -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)
         {
index aebff32cd0063cfe86ef03c875b600729d4e4202..14ac64738cff413d7b5c354745bc441f7896f841 100644 (file)
@@ -309,7 +309,8 @@ int run_rgw_admin(string& cmd, string& resp) {
     /* 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";
@@ -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);