From 6a0840461c7d632544dcad4b71e62d45c85b5dff Mon Sep 17 00:00:00 2001 From: Frank Morgner Date: Mon, 18 Dec 2017 14:36:56 +0100 Subject: [PATCH] fixed memory leak --- pcsc-relay/src/pcsc-relay.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pcsc-relay/src/pcsc-relay.c b/pcsc-relay/src/pcsc-relay.c index 8d9fc2d..cac7577 100644 --- a/pcsc-relay/src/pcsc-relay.c +++ b/pcsc-relay/src/pcsc-relay.c @@ -46,6 +46,8 @@ static struct rf_driver *rfdriver = &driver_openpicc; static driver_data_t *rfdriver_data = NULL; static struct sc_driver *scdriver = &driver_pcsc; static driver_data_t *scdriver_data = NULL; +static unsigned char *buf = NULL; +static size_t buflen = 0; /* Forward declaration */ static void daemonize(void); @@ -113,6 +115,7 @@ void cleanup(void) { rfdriver_data = NULL; scdriver->disconnect(scdriver_data); scdriver_data = NULL; + free(buf); } void @@ -136,9 +139,6 @@ hexdump(const char *label, unsigned char *buf, size_t len) int main (int argc, char **argv) { /*printf("%s:%d\n", __FILE__, __LINE__);*/ - unsigned char *buf = NULL; - size_t buflen; - unsigned char outputBuffer[MAX_EXT_BUFFER_SIZE]; size_t outputLength; @@ -213,6 +213,7 @@ int main (int argc, char **argv) daemonize(); } + cmdline_parser_free (&args_info); while(1) { /* get C-APDU */ @@ -248,7 +249,6 @@ int main (int argc, char **argv) err: - cmdline_parser_free (&args_info); cleanup(); exit(0);