fix a slow memory leak in the recovery daemon in the error paths for the
authorRonnie Sahlberg <ronniesahlberg@gmail.com>
Mon, 15 Sep 2008 23:00:48 +0000 (09:00 +1000)
committerRonnie Sahlberg <ronniesahlberg@gmail.com>
Mon, 15 Sep 2008 23:00:48 +0000 (09:00 +1000)
memdump function

server/ctdb_recoverd.c

index 779d26f3e450616eeebf6ed1241cf8c496c1461c..b17f98945807e2193a881f4139449911a408f9a0 100644 (file)
@@ -1753,6 +1753,7 @@ static void mem_dump_handler(struct ctdb_context *ctdb, uint64_t srvid,
 
        if (data.dsize != sizeof(struct rd_memdump_reply)) {
                DEBUG(DEBUG_ERR, (__location__ " Wrong size of return address.\n"));
+               talloc_free(tmp_ctx);
                return;
        }
        rd = (struct rd_memdump_reply *)data.dptr;
@@ -1775,6 +1776,7 @@ DEBUG(DEBUG_ERR, ("recovery master memory dump\n"));
        ret = ctdb_send_message(ctdb, rd->pnn, rd->srvid, *dump);
        if (ret != 0) {
                DEBUG(DEBUG_ERR,("Failed to send rd memdump reply message\n"));
+               talloc_free(tmp_ctx);
                return;
        }