From 46297bc7bd86826fa79195f36059ce408ef45b6c Mon Sep 17 00:00:00 2001
From: Nick Mathewson <nickm@torproject.org>
Date: Fri, 1 Jul 2011 11:52:39 -0400
Subject: [PATCH] Fix a rare memory leak in rend_cache_store

When we rejected a descriptor for not being the one we wanted, we
were letting the parsed descriptor go out of scope.

Found by Coverity; CID # 30.

Bugfix on 0.2.1.26.

(No changes file yet, since this is not in any 0.2.1.x release.)
---
 src/or/rendcommon.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/or/rendcommon.c b/src/or/rendcommon.c
index 8727a70c2e..e0c101e1ee 100644
--- a/src/or/rendcommon.c
+++ b/src/or/rendcommon.c
@@ -1077,6 +1077,7 @@ rend_cache_store(const char *desc, size_t desc_len, int published,
     log_warn(LD_REND, "Received service descriptor for service ID %s; "
              "expected descriptor for service ID %s.",
              query, safe_str(service_id));
+    rend_service_descriptor_free(parsed);
     return -2;
   }
   now = time(NULL);
-- 
GitLab