diff options
author | Jan Zeleny <jzeleny@redhat.com> | 2012-07-26 04:46:53 -0400 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2012-07-27 10:37:06 +0200 |
commit | 53c4d11be243befd7cdaacc03f7a0505df1fb195 (patch) | |
tree | 8a8d855d51d50b2580415077a28ed95473bb6205 | |
parent | 1187b00ab819eac8de47b139526aa763f464d91d (diff) | |
download | sssd-53c4d11be243befd7cdaacc03f7a0505df1fb195.tar.gz sssd-53c4d11be243befd7cdaacc03f7a0505df1fb195.tar.bz2 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.
-rw-r--r-- | src/providers/data_provider_be.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/providers/data_provider_be.c b/src/providers/data_provider_be.c index 5d51f2fa..3b901097 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); } |