Diff between 26a2456f1f3a075b1a4b94454dcc6f13274b7c03 and 4548e3a6b21bbc185dd8284e128751ce87d108ae

Changed Files

File Additions Deletions Status
src/event.c +1 -1 modified
src/storage.c +3 -2 modified
src/storage.h +2 -1 modified

Full Patch

diff --git a/src/event.c b/src/event.c
index 3066635..91ce103 100644
--- a/src/event.c
+++ b/src/event.c
@@ -261,7 +261,7 @@ void btd_event_device_found(bdaddr_t *local, bdaddr_t *peer, addr_type_t type,
 	update_lastseen(local, peer);
 
 	if (data)
-		write_remote_eir(local, peer, data);
+		write_remote_eir(local, peer, data, data_len);
 
 	adapter_update_found_devices(adapter, peer, type, rssi,
 						confirm_name, data, data_len);
diff --git a/src/storage.c b/src/storage.c
index a47720a..248e397 100644
--- a/src/storage.c
+++ b/src/storage.c
@@ -359,13 +359,14 @@ int read_device_name(const char *src, const char *dst, char *name)
 	return 0;
 }
 
-int write_remote_eir(bdaddr_t *local, bdaddr_t *peer, uint8_t *data)
+int write_remote_eir(bdaddr_t *local, bdaddr_t *peer, uint8_t *data,
+							uint8_t data_len)
 {
 	char filename[PATH_MAX + 1], addr[18], str[481];
 	int i;
 
 	memset(str, 0, sizeof(str));
-	for (i = 0; i < HCI_MAX_EIR_LENGTH; i++)
+	for (i = 0; i < data_len; i++)
 		sprintf(str + (i * 2), "%2.2X", data[i]);
 
 	create_filename(filename, PATH_MAX, local, "eir");
diff --git a/src/storage.h b/src/storage.h
index 51259f6..4046e99 100644
--- a/src/storage.h
+++ b/src/storage.h
@@ -40,7 +40,8 @@ int write_remote_class(bdaddr_t *local, bdaddr_t *peer, uint32_t class);
 int read_remote_class(bdaddr_t *local, bdaddr_t *peer, uint32_t *class);
 int write_device_name(bdaddr_t *local, bdaddr_t *peer, char *name);
 int read_device_name(const char *src, const char *dst, char *name);
-int write_remote_eir(bdaddr_t *local, bdaddr_t *peer, uint8_t *data);
+int write_remote_eir(bdaddr_t *local, bdaddr_t *peer, uint8_t *data,
+							uint8_t data_len);
 int read_remote_eir(bdaddr_t *local, bdaddr_t *peer, uint8_t *data);
 int write_version_info(bdaddr_t *local, bdaddr_t *peer, uint16_t manufacturer, uint8_t lmp_ver, uint16_t lmp_subver);
 int write_features_info(bdaddr_t *local, bdaddr_t *peer, unsigned char *page1, unsigned char *page2);