Diff between dbf12268ac30c66a64e7f5f152d49964b6900513 and c7617662d585d91703e3c2d2450d5100d82edcac

Changed Files

File Additions Deletions Status
tools/btgatt-server.c +8 -0 modified

Full Patch

diff --git a/tools/btgatt-server.c b/tools/btgatt-server.c
index 2b89be1..c603b30 100644
--- a/tools/btgatt-server.c
+++ b/tools/btgatt-server.c
@@ -160,6 +160,14 @@ static void gap_device_name_write_cb(struct gatt_db_attribute *attrib,
 
 	PRLOG("GAP Device Name Write called\n");
 
+	/* If the value is being completely truncated, clean up and return */
+	if (!(offset + len)) {
+		free(server->device_name);
+		server->device_name = NULL;
+		server->name_len = 0;
+		goto done;
+	}
+
 	/* Implement this as a variable length attribute value. */
 	if (offset > server->name_len) {
 		error = BT_ATT_ERROR_INVALID_OFFSET;