]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
rgw/kafka: fix potential memory leak when push to queue fails
authorYuval Lifshitz <ylifshit@redhat.com>
Tue, 20 Jun 2023 10:21:33 +0000 (10:21 +0000)
committerYuval Lifshitz <ylifshit@redhat.com>
Tue, 20 Jun 2023 10:21:33 +0000 (10:21 +0000)
Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
src/rgw/rgw_kafka.cc

index 678e6d62bfe9ffcf0b56ffe2b77ba2d74dccbe7a..832c4667b94e1a336e9f1bbdebbb350ddf9bb275 100644 (file)
@@ -602,7 +602,9 @@ public:
     if (stopped) {
       return STATUS_MANAGER_STOPPED;
     }
-    if (messages.push(new message_wrapper_t(conn_name, topic, message, nullptr))) {
+    auto message_wrapper = std::make_unique<message_wrapper_t>(conn_name, topic, message, nullptr);
+    if (messages.push(message_wrapper.get())) {
+      std::ignore = message_wrapper.release();
       ++queued;
       return STATUS_OK;
     }
@@ -616,7 +618,9 @@ public:
     if (stopped) {
       return STATUS_MANAGER_STOPPED;
     }
-    if (messages.push(new message_wrapper_t(conn_name, topic, message, cb))) {
+    auto message_wrapper = std::make_unique<message_wrapper_t>(conn_name, topic, message, cb);
+    if (messages.push(message_wrapper.get())) {
+      std::ignore = message_wrapper.release();
       ++queued;
       return STATUS_OK;
     }