From: Andrew Tridgell Date: Fri, 8 Jan 2010 22:04:18 +0000 (+1100) Subject: s4-messaging: fixed a memory leak in messaging_path() X-Git-Tag: samba-4.0.0alpha11~52 X-Git-Url: http://git.samba.org/samba.git/?p=ira%2Fwip.git;a=commitdiff_plain;h=6a36799d30c1bfb685ccfe77257433710f23215c;ds=sidebyside s4-messaging: fixed a memory leak in messaging_path() It is a bit convoluted to fix, as cluster_id_string() may return a const string. --- diff --git a/source4/lib/messaging/messaging.c b/source4/lib/messaging/messaging.c index 277688e8b6a..d4dfff7c8cc 100644 --- a/source4/lib/messaging/messaging.c +++ b/source4/lib/messaging/messaging.c @@ -119,8 +119,15 @@ static NTSTATUS irpc_uptime(struct irpc_message *msg, */ static char *messaging_path(struct messaging_context *msg, struct server_id server_id) { - return talloc_asprintf(msg, "%s/msg.%s", msg->base_path, - cluster_id_string(msg, server_id)); + TALLOC_CTX *tmp_ctx = talloc_new(msg); + const char *id = cluster_id_string(tmp_ctx, server_id); + char *s; + if (id == NULL) { + return NULL; + } + s = talloc_asprintf(msg, "%s/msg.%s", msg->base_path, id); + talloc_steal(s, tmp_ctx); + return s; } /*