summaryrefslogtreecommitdiff
path: root/gsupplicant
diff options
context:
space:
mode:
authorManeesh Jain <maneesh.jain@samsung.com>2015-10-05 15:24:21 +0530
committerPatrik Flykt <patrik.flykt@linux.intel.com>2015-10-08 12:13:03 +0300
commit3dcf067140bd968b0124d078e3a08f1a305e0a05 (patch)
tree4b7dac698e72a075e605374b77a57ff933fceac5 /gsupplicant
parentea66bc2f59d2a3339ff07c5f556ee4876538115d (diff)
downloadconnman-3dcf067140bd968b0124d078e3a08f1a305e0a05.tar.gz
gsupplicant: Fix Potential crash issue in case of dbus_malloc0() fail
Return -ENOMEM if dbus_malloc0() allocation fails.
Diffstat (limited to 'gsupplicant')
-rw-r--r--gsupplicant/supplicant.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c
index 98ca94b8..342cb01c 100644
--- a/gsupplicant/supplicant.c
+++ b/gsupplicant/supplicant.c
@@ -4980,6 +4980,9 @@ int g_supplicant_interface_p2p_connect(GSupplicantInterface *interface,
return -ENOTSUP;
data = dbus_malloc0(sizeof(*data));
+ if (!data)
+ return -ENOMEM;
+
data->interface = interface;
data->path = g_strdup(interface->path);
data->peer = peer_params;
@@ -5124,6 +5127,9 @@ int g_supplicant_interface_p2p_add_service(GSupplicantInterface *interface,
return -ENOTSUP;
data = dbus_malloc0(sizeof(*data));
+ if (!data)
+ return -ENOMEM;
+
data->registration = true;
data->interface = interface;
data->service = p2p_service_params;
@@ -5154,6 +5160,9 @@ int g_supplicant_interface_p2p_del_service(GSupplicantInterface *interface,
return -ENOTSUP;
data = dbus_malloc0(sizeof(*data));
+ if (!data)
+ return -ENOMEM;
+
data->interface = interface;
data->service = p2p_service_params;
@@ -5239,6 +5248,9 @@ int g_supplicant_set_widi_ies(GSupplicantP2PServiceParams *p2p_service_params,
return -EFAULT;
data = dbus_malloc0(sizeof(*data));
+ if (!data)
+ return -ENOMEM;
+
data->service = p2p_service_params;
data->callback = callback;
data->user_data = user_data;