From 6e29450d6960ea10d2f5961238b14943fe12c0af Mon Sep 17 00:00:00 2001 From: Romuald Conty Date: Fri, 12 Nov 2010 19:24:20 +0000 Subject: [PATCH] Fix memory leak while using *_pick(). Thanks to frankmorgner (Fixes Issue 130) --- libnfc/drivers/acr122.c | 2 ++ libnfc/drivers/arygon.c | 2 ++ libnfc/drivers/pn531_usb.c | 2 ++ libnfc/drivers/pn532_uart.c | 2 ++ libnfc/drivers/pn533_usb.c | 2 ++ 5 files changed, 10 insertions(+) diff --git a/libnfc/drivers/acr122.c b/libnfc/drivers/acr122.c index f31c36b..f1ebe2e 100644 --- a/libnfc/drivers/acr122.c +++ b/libnfc/drivers/acr122.c @@ -118,11 +118,13 @@ acr122_pick_device (void) if (!acr122_list_devices (pndd, 1, &szN)) { DBG ("%s", "acr122_list_devices failed"); + free (pndd); return NULL; } if (szN == 0) { DBG ("%s", "No device found"); + free (pndd); return NULL; } } diff --git a/libnfc/drivers/arygon.c b/libnfc/drivers/arygon.c index 5a197e5..a395b68 100644 --- a/libnfc/drivers/arygon.c +++ b/libnfc/drivers/arygon.c @@ -96,11 +96,13 @@ arygon_pick_device (void) if (!arygon_list_devices (pndd, 1, &szN)) { DBG ("%s", "arygon_list_devices failed"); + free (pndd); return NULL; } if (szN == 0) { DBG ("%s", "No device found"); + free (pndd); return NULL; } } diff --git a/libnfc/drivers/pn531_usb.c b/libnfc/drivers/pn531_usb.c index 20696fb..05851e7 100644 --- a/libnfc/drivers/pn531_usb.c +++ b/libnfc/drivers/pn531_usb.c @@ -45,11 +45,13 @@ pn531_usb_pick_device (void) if (!pn531_usb_list_devices (pndd, 1, &szN)) { DBG ("%s", "pn531_usb_list_devices failed"); + free (pndd); return NULL; } if (szN == 0) { DBG ("%s", "No device found"); + free (pndd); return NULL; } } diff --git a/libnfc/drivers/pn532_uart.c b/libnfc/drivers/pn532_uart.c index 51a163c..0b1f435 100644 --- a/libnfc/drivers/pn532_uart.c +++ b/libnfc/drivers/pn532_uart.c @@ -60,11 +60,13 @@ pn532_uart_pick_device (void) if (!pn532_uart_list_devices (pndd, 1, &szN)) { DBG ("%s", "pn532_uart_list_devices failed"); + free (pndd); return NULL; } if (szN == 0) { DBG ("%s", "No device found"); + free (pndd); return NULL; } } diff --git a/libnfc/drivers/pn533_usb.c b/libnfc/drivers/pn533_usb.c index 7724e37..fd9764e 100644 --- a/libnfc/drivers/pn533_usb.c +++ b/libnfc/drivers/pn533_usb.c @@ -45,11 +45,13 @@ pn533_usb_pick_device (void) if (!pn533_usb_list_devices (pndd, 1, &szN)) { DBG ("%s", "pn533_usb_list_devices failed"); + free (pndd); return NULL; } if (szN == 0) { DBG ("%s", "No device found"); + free (pndd); return NULL; } }