From mboxrd@z Thu Jan 1 00:00:00 1970 From: Fabio M. Di Nitto Date: Tue, 25 Oct 2011 14:09:00 +0200 Subject: [Cluster-devel] [PATCH 09/19] config: fix possible memory leak in libccs fullxpath usage In-Reply-To: <1319544550-18366-1-git-send-email-fdinitto@redhat.com> References: <1319544550-18366-1-git-send-email-fdinitto@redhat.com> Message-ID: <8f5be849ec7a6da6059f2bc2b3aadc20428654b5.1319544159.git.fdinitto@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Spotted by Coverity Scan Signed-off-by: Fabio M. Di Nitto --- :100644 100644 6b2e138... 8c4501f... M config/libs/libccsconfdb/fullxpath.c config/libs/libccsconfdb/fullxpath.c | 14 ++++++-------- 1 files changed, 6 insertions(+), 8 deletions(-) diff --git a/config/libs/libccsconfdb/fullxpath.c b/config/libs/libccsconfdb/fullxpath.c index 6b2e138..8c4501f 100644 --- a/config/libs/libccsconfdb/fullxpath.c +++ b/config/libs/libccsconfdb/fullxpath.c @@ -174,10 +174,10 @@ static int dump_objdb_buff(confdb_handle_t dump_handle, hdb_handle_t cluster_han int xpathfull_init(confdb_handle_t handle) { int size = XMLBUFSIZE; - char *buffer, *newbuf; + char *buffer; hdb_handle_t cluster_handle; - newbuf = buffer = malloc(XMLBUFSIZE); + buffer = malloc(XMLBUFSIZE); if (!buffer) { errno = ENOMEM; goto fail; @@ -191,14 +191,9 @@ int xpathfull_init(confdb_handle_t handle) if (confdb_object_find(handle, OBJECT_PARENT_HANDLE, "cluster", strlen("cluster"), &cluster_handle) != CS_OK) goto fail; - if (dump_objdb_buff(handle, cluster_handle, cluster_handle, &newbuf, &size)) + if (dump_objdb_buff(handle, cluster_handle, cluster_handle, &buffer, &size)) goto fail; - if (newbuf != buffer) { - buffer = newbuf; - newbuf = NULL; - } - doc = xmlParseMemory(buffer, strlen(buffer)); if (!doc) goto fail; @@ -214,6 +209,9 @@ int xpathfull_init(confdb_handle_t handle) return 0; fail: + if (buffer) + free(buffer); + return -1; } -- 1.7.4.4