From 6616acfe8206ede4054b9be2a8821e6a8b59f7a0 Mon Sep 17 00:00:00 2001 From: Andrei Emeltchenko Date: Tue, 16 Sep 2014 17:03:50 +0300 Subject: [PATCH] tools/btgatt-client: Fix memory leak Simplify code and fix memory leaks --- tools/btgatt-client.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/tools/btgatt-client.c b/tools/btgatt-client.c index f628bbb46..41b85ad33 100644 --- a/tools/btgatt-client.c +++ b/tools/btgatt-client.c @@ -539,8 +539,7 @@ static void cmd_write_value(struct client *cli, char *cmd_str) if (strlen(argv[i]) != 2) { printf("Invalid value byte: %s\n", argv[i]); - free(value); - return; + goto done; } value[i-1] = strtol(argv[i], &endptr, 16); @@ -548,8 +547,7 @@ static void cmd_write_value(struct client *cli, char *cmd_str) || errno == ERANGE) { printf("Invalid value byte: %s\n", argv[i]); - free(value); - return; + goto done; } } } @@ -559,11 +557,11 @@ static void cmd_write_value(struct client *cli, char *cmd_str) false, value, length)) { printf("Failed to initiate write without response " "procedure\n"); - return; + goto done; } printf("Write command sent\n"); - return; + goto done; } if (!bt_gatt_client_write_value(cli->gatt, handle, value, length, @@ -571,6 +569,7 @@ static void cmd_write_value(struct client *cli, char *cmd_str) NULL, NULL)) printf("Failed to initiate write procedure\n"); +done: free(value); } -- 2.47.3