Diff between 1a9051e9ee8b7dd3194c47a528b199873a661a30 and d878aac68ea38bbfdacb9a61aa371e09b9971cc2

Changed Files

File Additions Deletions Status
src/adapter.c +1 -1 modified
src/device.c +2 -2 modified
src/uuid-helper.c +14 -3 modified

Full Patch

diff --git a/src/adapter.c b/src/adapter.c
index f2d805d..b8e790e 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -2958,7 +2958,7 @@ static void adapter_free(gpointer user_data)
 	g_free(adapter->system_name);
 	g_free(adapter->stored_alias);
 	g_free(adapter->current_alias);
-	g_free(adapter->modalias);
+	free(adapter->modalias);
 	g_free(adapter);
 }
 
diff --git a/src/device.c b/src/device.c
index 65bb3c9..aa15e0a 100644
--- a/src/device.c
+++ b/src/device.c
@@ -533,7 +533,7 @@ static void device_free(gpointer user_data)
 
 	g_free(device->path);
 	g_free(device->alias);
-	g_free(device->modalias);
+	free(device->modalias);
 	g_free(device);
 }
 
@@ -4528,7 +4528,7 @@ void btd_device_set_pnpid(struct btd_device *device, uint16_t source,
 	device->product = product;
 	device->version = version;
 
-	g_free(device->modalias);
+	free(device->modalias);
 	device->modalias = bt_modalias(source, vendor, product, version);
 
 	g_dbus_emit_property_changed(dbus_conn, device->path,
diff --git a/src/uuid-helper.c b/src/uuid-helper.c
index f9d51ea..1995ea1 100644
--- a/src/uuid-helper.c
+++ b/src/uuid-helper.c
@@ -26,6 +26,7 @@
 #endif
 
 #include <stdlib.h>
+#include <stdio.h>
 #include <errno.h>
 
 #include <bluetooth/bluetooth.h>
@@ -39,16 +40,26 @@
 char *bt_modalias(uint16_t source, uint16_t vendor,
 					uint16_t product, uint16_t version)
 {
+	char *str;
+	int err;
+
 	switch (source) {
 	case 0x0001:
-		return g_strdup_printf("%s:v%04Xp%04Xd%04X",
+		err = asprintf(&str, "%s:v%04Xp%04Xd%04X",
 					"bluetooth", vendor, product, version);
+		break;
 	case 0x0002:
-		return g_strdup_printf("%s:v%04Xp%04Xd%04X",
+		err = asprintf(&str, "%s:v%04Xp%04Xd%04X",
 					"usb", vendor, product, version);
+		break;
+	default:
+		return NULL;
 	}
 
-	return NULL;
+	if (err < 0)
+		return NULL;
+
+	return str;
 }
 
 char *bt_uuid2string(uuid_t *uuid)