summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorGopal Tiwari <gtiwari@redhat.com>2022-05-31 13:11:08 +0530
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2022-05-31 12:50:38 -0700
commitfc57aa92a4f32f7c0f38198e6d26b529b537a047 (patch)
tree6559d863cc94ba9af98b5b1aab78e98d51d0bb51 /plugins
parent6f02010ce0043ec2e17eb15f2a1dd42f6c64e223 (diff)
downloadbluez-fc57aa92a4f32f7c0f38198e6d26b529b537a047.tar.gz
sixaxis: Fix memory leaks
While performing static tool analysis using coverity found following reports for resouse leak bluez-5.64/plugins/sixaxis.c:425: alloc_arg: "get_pairing_type_for_device" allocates memory that is stored into "sysfs_path". bluez-5.64/plugins/sixaxis.c:428: leaked_storage: Variable "sysfs_path" going out of scope leaks the storage it points to.
Diffstat (limited to 'plugins')
-rw-r--r--plugins/sixaxis.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/plugins/sixaxis.c b/plugins/sixaxis.c
index ddecbcccb..10cf15948 100644
--- a/plugins/sixaxis.c
+++ b/plugins/sixaxis.c
@@ -424,10 +424,15 @@ static void device_added(struct udev_device *udevice)
cp = get_pairing_type_for_device(udevice, &bus, &sysfs_path);
if (!cp || (cp->type != CABLE_PAIRING_SIXAXIS &&
- cp->type != CABLE_PAIRING_DS4))
+ cp->type != CABLE_PAIRING_DS4)) {
+ g_free(sysfs_path);
return;
- if (bus != BUS_USB)
+ }
+
+ if (bus != BUS_USB) {
+ g_free(sysfs_path);
return;
+ }
info("sixaxis: compatible device connected: %s (%04X:%04X %s)",
cp->name, cp->vid, cp->pid, sysfs_path);