mirror of
https://git.kernel.org/pub/scm/bluetooth/bluez.git
synced 2024-11-24 12:44:19 +08:00
tools: Fix memory leaks
req is allocated memory that must be freed. It appears all other error paths got fail which handles this. g_new0 allocates memory to data which must be freed. g_malloc0 allocates memory to comp which must be freed.
This commit is contained in:
parent
ca769001a8
commit
31ce1e9a5b
@ -914,7 +914,7 @@ static void cmd_import_node(int argc, char *argv[])
|
|||||||
|
|
||||||
/* Number of elements */
|
/* Number of elements */
|
||||||
if (sscanf(argv[4], "%u", &req->arg3) != 1)
|
if (sscanf(argv[4], "%u", &req->arg3) != 1)
|
||||||
return;
|
goto fail;
|
||||||
|
|
||||||
/* DevKey */
|
/* DevKey */
|
||||||
req->data2 = l_util_from_hexstring(argv[5], &sz);
|
req->data2 = l_util_from_hexstring(argv[5], &sz);
|
||||||
|
@ -525,6 +525,7 @@ bool mesh_gatt_notify(GDBusProxy *proxy, bool enable, GDBusReturnFunction cb,
|
|||||||
notify_io_destroy();
|
notify_io_destroy();
|
||||||
if (cb)
|
if (cb)
|
||||||
cb(NULL, user_data);
|
cb(NULL, user_data);
|
||||||
|
g_free(data);
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
method = "StopNotify";
|
method = "StopNotify";
|
||||||
|
@ -396,8 +396,10 @@ bool node_parse_composition(struct mesh_node *node, uint8_t *data, uint16_t len)
|
|||||||
uint16_t vendor_id;
|
uint16_t vendor_id;
|
||||||
struct mesh_element *ele;
|
struct mesh_element *ele;
|
||||||
ele = g_malloc0(sizeof(struct mesh_element));
|
ele = g_malloc0(sizeof(struct mesh_element));
|
||||||
if (!ele)
|
if (!ele) {
|
||||||
|
g_free(comp);
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
ele->index = i;
|
ele->index = i;
|
||||||
ele->loc = get_le16(data);
|
ele->loc = get_le16(data);
|
||||||
@ -412,8 +414,10 @@ bool node_parse_composition(struct mesh_node *node, uint8_t *data, uint16_t len)
|
|||||||
mod_id = get_le16(data);
|
mod_id = get_le16(data);
|
||||||
/* initialize uppper 16 bits to 0xffff for SIG models */
|
/* initialize uppper 16 bits to 0xffff for SIG models */
|
||||||
mod_id |= 0xffff0000;
|
mod_id |= 0xffff0000;
|
||||||
if (!node_set_model(node, ele->index, mod_id))
|
if (!node_set_model(node, ele->index, mod_id)) {
|
||||||
|
g_free(comp);
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
data += 2;
|
data += 2;
|
||||||
len -= 2;
|
len -= 2;
|
||||||
}
|
}
|
||||||
@ -421,8 +425,10 @@ bool node_parse_composition(struct mesh_node *node, uint8_t *data, uint16_t len)
|
|||||||
mod_id = get_le16(data + 2);
|
mod_id = get_le16(data + 2);
|
||||||
vendor_id = get_le16(data);
|
vendor_id = get_le16(data);
|
||||||
mod_id |= (vendor_id << 16);
|
mod_id |= (vendor_id << 16);
|
||||||
if (!node_set_model(node, ele->index, mod_id))
|
if (!node_set_model(node, ele->index, mod_id)) {
|
||||||
|
g_free(comp);
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
data += 4;
|
data += 4;
|
||||||
len -= 4;
|
len -= 4;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user