Diff between a964070fdda42784078e43491df5367abc47fc14 and 6616acfe8206ede4054b9be2a8821e6a8b59f7a0

Changed Files

File Additions Deletions Status
tools/btgatt-client.c +5 -6 modified

Full Patch

diff --git a/tools/btgatt-client.c b/tools/btgatt-client.c
index f628bbb..41b85ad 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);
 }