From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43848) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wnnan-00038s-8X for qemu-devel@nongnu.org; Fri, 23 May 2014 07:24:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Wnnad-0000bs-Ty for qemu-devel@nongnu.org; Fri, 23 May 2014 07:24:53 -0400 Received: from mx1.redhat.com ([209.132.183.28]:54991) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wnnad-0000bI-JZ for qemu-devel@nongnu.org; Fri, 23 May 2014 07:24:43 -0400 From: Markus Armbruster Date: Fri, 23 May 2014 13:24:34 +0200 Message-Id: <1400844279-1685-3-git-send-email-armbru@redhat.com> In-Reply-To: <1400844279-1685-1-git-send-email-armbru@redhat.com> References: <1400844279-1685-1-git-send-email-armbru@redhat.com> Subject: [Qemu-devel] [PATCH v2 2/7] libcacard: Plug memory leaks around vreader_get_reader_list() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: mjt@tls.msk.ru, alevy@redhat.com Spotted by Coverity. Signed-off-by: Markus Armbruster Reviewed-by: Alon Levy --- libcacard/vcard_emul_nss.c | 4 ++++ libcacard/vscclient.c | 1 + 2 files changed, 5 insertions(+) diff --git a/libcacard/vcard_emul_nss.c b/libcacard/vcard_emul_nss.c index e2b196d..692534c 100644 --- a/libcacard/vcard_emul_nss.c +++ b/libcacard/vcard_emul_nss.c @@ -433,11 +433,13 @@ vcard_emul_find_vreader_from_slot(PK11SlotInfo *slot) VReader *reader = vreader_list_get_reader(current_entry); VReaderEmul *reader_emul = vreader_get_private(reader); if (reader_emul->slot == slot) { + vreader_list_delete(reader_list); return reader; } vreader_free(reader); } + vreader_list_delete(reader_list); return NULL; } @@ -1059,6 +1061,8 @@ vcard_emul_replay_insertion_events(void) next_entry = vreader_list_get_next(current_entry); vreader_queue_card_event(vreader); } + + vreader_list_delete(list); } /* diff --git a/libcacard/vscclient.c b/libcacard/vscclient.c index 29f4958..f2a753a 100644 --- a/libcacard/vscclient.c +++ b/libcacard/vscclient.c @@ -570,6 +570,7 @@ do_command(GIOChannel *source, "CARD_PRESENT" : " ", vreader_get_name(reader)); } + vreader_list_delete(list); } else if (*string != 0) { printf("valid commands:\n"); printf("insert [reader_id]\n"); -- 1.9.0