From 3ac5707c957c1a965ab4fae0d29cdd28596ca29a Mon Sep 17 00:00:00 2001 From: Olivier Martin Date: Mon, 16 May 2022 20:56:30 +0200 Subject: [PATCH] dbus: Fix battery value reading --- dbus/gattlib_char.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/dbus/gattlib_char.c b/dbus/gattlib_char.c index 588b412..33dadb0 100644 --- a/dbus/gattlib_char.c +++ b/dbus/gattlib_char.c @@ -245,10 +245,16 @@ EXIT: } #if BLUEZ_VERSION > BLUEZ_VERSIONS(5, 40) -static int read_battery_level(struct dbus_characteristic *dbus_characteristic, void* buffer, size_t* buffer_len) { +static int read_battery_level(struct dbus_characteristic *dbus_characteristic, void** buffer, size_t* buffer_len) { guchar percentage = org_bluez_battery1_get_percentage(dbus_characteristic->battery); - memcpy(buffer, &percentage, sizeof(uint8_t)); + *buffer = malloc(sizeof(uint8_t)); + if (buffer == NULL) { + *buffer_len = 0; + return GATTLIB_OUT_OF_MEMORY; + } + + memcpy(*buffer, &percentage, sizeof(uint8_t)); *buffer_len = sizeof(uint8_t); g_object_unref(dbus_characteristic->battery);