In the case where agent disappears from D-Bus while there are pending
requests, request->driver may become null. As it's useless to send a
Cancel to a nonexistent agent, not to mention accessing null pointer
causes a crash, check for the pointer value before creating a D-Bus
message.
---
src/agent.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/agent.c b/src/agent.c
index a340026..f67b30f 100644
--- a/src/agent.c
+++ b/src/agent.c
@@ -166,6 +166,9 @@ static int send_cancel_request(struct connman_agent *agent,
{
DBusMessage *message;
+ if (!request->driver)
+ return 0;
+
DBG("send cancel req to %s %s", agent->owner, agent->path);
message = dbus_message_new_method_call(agent->owner,
--
1.9.1
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman