From d878aac68ea38bbfdacb9a61aa371e09b9971cc2 Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Tue, 21 Jan 2014 14:30:25 +0200 Subject: [PATCH] core: Convert bt_modalias to use asprintf over GLib --- src/adapter.c | 2 +- src/device.c | 4 ++-- src/uuid-helper.c | 17 ++++++++++++++--- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/adapter.c b/src/adapter.c index f2d805d1c..b8e790e09 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 65bb3c960..aa15e0aaf 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 f9d51eaed..1995ea1a6 100644 --- a/src/uuid-helper.c +++ b/src/uuid-helper.c @@ -26,6 +26,7 @@ #endif #include +#include #include #include @@ -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) -- 2.47.3