In case supplicant_dbus_method_call() function returns error, 'data'
memory is not freed.
---
tools/supplicant.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/tools/supplicant.c b/tools/supplicant.c
index e2e6fea..a5b68ef
--- a/tools/supplicant.c
+++ b/tools/supplicant.c
@@ -1795,6 +1795,7 @@ int supplicant_interface_create(const char *ifname, const
char *driver,
void *user_data)
{
struct interface_create_data *data;
+ int ret;
if (!ifname)
return -EINVAL;
@@ -1811,11 +1812,15 @@ int supplicant_interface_create(const char *ifname,
const char *driver,
data->callback = callback;
data->user_data = user_data;
- return supplicant_dbus_method_call(SUPPLICANT_PATH,
+ ret = supplicant_dbus_method_call(SUPPLICANT_PATH,
SUPPLICANT_INTERFACE,
"GetInterface",
interface_get_params,
interface_get_result, data);
+ if (ret < 0)
+ dbus_free(data);
+
+ return ret;
}
int supplicant_interface_remove(struct supplicant_interface *interface,
--
1.7.9.5
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman