|
|
67d7dc |
From b4233bca181580800b483a228ca5377efcfeb844 Mon Sep 17 00:00:00 2001
|
|
|
67d7dc |
From: Gopal Tiwari <gtiwari@redhat.com>
|
|
|
67d7dc |
Date: Tue, 31 May 2022 13:11:05 +0530
|
|
|
67d7dc |
Subject: [PATCH BlueZ 01/12] client/gatt: Fix memory leak issues
|
|
|
67d7dc |
|
|
|
67d7dc |
While performing the static tool analysis using coverity tool
|
|
|
67d7dc |
found following reports
|
|
|
67d7dc |
|
|
|
67d7dc |
Error: RESOURCE_LEAK (CWE-772):
|
|
|
67d7dc |
bluez-5.64/client/gatt.c:1531: leaked_storage: Variable "service"
|
|
|
67d7dc |
going out of scope leaks the storage it points to.
|
|
|
67d7dc |
|
|
|
67d7dc |
Error: RESOURCE_LEAK (CWE-772):
|
|
|
67d7dc |
bluez-5.64/client/gatt.c:2626: leaked_storage: Variable "chrc"
|
|
|
67d7dc |
going out of scope leaks the storage it points to.
|
|
|
67d7dc |
|
|
|
67d7dc |
Error: RESOURCE_LEAK (CWE-772):
|
|
|
67d7dc |
bluez-5.64/client/gatt.c:2906: leaked_storage: Variable "desc"
|
|
|
67d7dc |
going out of scope leaks the storage it points to.
|
|
|
67d7dc |
---
|
|
|
67d7dc |
client/gatt.c | 12 +++++++++---
|
|
|
67d7dc |
1 file changed, 9 insertions(+), 3 deletions(-)
|
|
|
67d7dc |
|
|
|
67d7dc |
diff --git a/client/gatt.c b/client/gatt.c
|
|
|
67d7dc |
index 13872c794..4c1efaf75 100644
|
|
|
67d7dc |
--- a/client/gatt.c
|
|
|
67d7dc |
+++ b/client/gatt.c
|
|
|
67d7dc |
@@ -1527,8 +1527,10 @@ void gatt_register_service(DBusConnection *conn, GDBusProxy *proxy,
|
|
|
67d7dc |
|
|
|
67d7dc |
if (argc > 2) {
|
|
|
67d7dc |
service->handle = parse_handle(argv[2]);
|
|
|
67d7dc |
- if (!service->handle)
|
|
|
67d7dc |
+ if (!service->handle) {
|
|
|
67d7dc |
+ service_free(service);
|
|
|
67d7dc |
return bt_shell_noninteractive_quit(EXIT_FAILURE);
|
|
|
67d7dc |
+ }
|
|
|
67d7dc |
}
|
|
|
67d7dc |
|
|
|
67d7dc |
if (g_dbus_register_interface(conn, service->path,
|
|
|
67d7dc |
@@ -2622,8 +2624,10 @@ void gatt_register_chrc(DBusConnection *conn, GDBusProxy *proxy,
|
|
|
67d7dc |
|
|
|
67d7dc |
if (argc > 3) {
|
|
|
67d7dc |
chrc->handle = parse_handle(argv[3]);
|
|
|
67d7dc |
- if (!chrc->handle)
|
|
|
67d7dc |
+ if (!chrc->handle) {
|
|
|
67d7dc |
+ chrc_free(chrc);
|
|
|
67d7dc |
return bt_shell_noninteractive_quit(EXIT_FAILURE);
|
|
|
67d7dc |
+ }
|
|
|
67d7dc |
}
|
|
|
67d7dc |
|
|
|
67d7dc |
if (g_dbus_register_interface(conn, chrc->path, CHRC_INTERFACE,
|
|
|
67d7dc |
@@ -2902,8 +2906,10 @@ void gatt_register_desc(DBusConnection *conn, GDBusProxy *proxy,
|
|
|
67d7dc |
|
|
|
67d7dc |
if (argc > 3) {
|
|
|
67d7dc |
desc->handle = parse_handle(argv[3]);
|
|
|
67d7dc |
- if (!desc->handle)
|
|
|
67d7dc |
+ if (!desc->handle) {
|
|
|
67d7dc |
+ desc_free(desc);
|
|
|
67d7dc |
return bt_shell_noninteractive_quit(EXIT_FAILURE);
|
|
|
67d7dc |
+ }
|
|
|
67d7dc |
}
|
|
|
67d7dc |
|
|
|
67d7dc |
if (g_dbus_register_interface(conn, desc->path, DESC_INTERFACE,
|
|
|
67d7dc |
--
|
|
|
67d7dc |
2.26.2
|
|
|
67d7dc |
|