From 53c4d11be243befd7cdaacc03f7a0505df1fb195 Mon Sep 17 00:00:00 2001 From: Jan Zeleny Date: Thu, 26 Jul 2012 04:46:53 -0400 Subject: Always free request in data provider PAM callback In case of error the request wasn't freed and the callback just ended. --- src/providers/data_provider_be.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/providers/data_provider_be.c b/src/providers/data_provider_be.c index 5d51f2fab..3b9010970 100644 --- a/src/providers/data_provider_be.c +++ b/src/providers/data_provider_be.c @@ -770,13 +770,13 @@ static void be_pam_handler_callback(struct be_req *req, if (!dbret) { DEBUG(1, ("Failed to generate dbus reply\n")); dbus_message_unref(reply); - return; + goto done; } dbus_conn = sbus_get_connection(req->becli->conn); if (!dbus_conn) { DEBUG(SSSDBG_CRIT_FAILURE, ("D-BUS not connected\n")); - return; + goto done; } dbus_connection_send(dbus_conn, reply, NULL); @@ -784,6 +784,7 @@ static void be_pam_handler_callback(struct be_req *req, DEBUG(4, ("Sent result [%d][%s]\n", pd->pam_status, pd->domain)); +done: talloc_free(req); } -- cgit