laforge has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-pcap/+/42843?usp=email )

Change subject: server: fix zmq message leak on send failure
......................................................................

server: fix zmq message leak on send failure

zmq_msg_send() only transfers ownership of the message to ZeroMQ on
success.  On failure the caller retains ownership, so the previously
init'd zmq_msg_t was leaked on every failed publish.  Close it
explicitly on the error path.

Change-Id: I501b1bf55bede4e69fa5d9b3f38d87341482ff49
AI-Assisted: yes (Claude)
---
M src/osmo_server_core.c
1 file changed, 3 insertions(+), 1 deletion(-)

Approvals:
  laforge: Looks good to me, approved
  Jenkins Builder: Verified




diff --git a/src/osmo_server_core.c b/src/osmo_server_core.c
index a13c64c..cc2c24e 100644
--- a/src/osmo_server_core.c
+++ b/src/osmo_server_core.c
@@ -59,9 +59,11 @@
        memcpy(zmq_msg_data(&msg), data, len);
        rc = zmq_msg_send(&msg, publ, flags);
        if (rc == -1) {
-               /* is the zmq_msg now owned? leak??? */
+               /* zmq_msg_send() only transfers ownership of the message on
+                * success; on failure we still own it and must close it. */
                LOGP(DSERVER, LOGL_ERROR, "Failed to send data rc=%d 
errno=%d/%s\n",
                        rc, errno, strerror(errno));
+               zmq_msg_close(&msg);
                return;
        }
 }

--
To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/42843?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: osmo-pcap
Gerrit-Branch: master
Gerrit-Change-Id: I501b1bf55bede4e69fa5d9b3f38d87341482ff49
Gerrit-Change-Number: 42843
Gerrit-PatchSet: 3
Gerrit-Owner: fixeria <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>

Reply via email to