summaryrefslogtreecommitdiffstats
path: root/src/providers
diff options
context:
space:
mode:
authorJan Zeleny <jzeleny@redhat.com>2012-07-26 04:46:53 -0400
committerJakub Hrozek <jhrozek@redhat.com>2012-07-27 10:37:06 +0200
commit53c4d11be243befd7cdaacc03f7a0505df1fb195 (patch)
tree8a8d855d51d50b2580415077a28ed95473bb6205 /src/providers
parent1187b00ab819eac8de47b139526aa763f464d91d (diff)
downloadsssd-53c4d11be243befd7cdaacc03f7a0505df1fb195.tar.gz
sssd-53c4d11be243befd7cdaacc03f7a0505df1fb195.tar.xz
sssd-53c4d11be243befd7cdaacc03f7a0505df1fb195.zip
Always free request in data provider PAM callback
In case of error the request wasn't freed and the callback just ended.
Diffstat (limited to 'src/providers')
-rw-r--r--src/providers/data_provider_be.c5
1 files changed, 3 insertions, 2 deletions
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);
}