ehlo,

Struct sss_auth_token became opaque in commit
9acfb09f7969a69f58bd45c856b01700541853ca.
All ocasions of "struct sss_auth_token" was replaced with pointer to this
structure, but proper initialization of auth_tokens was missing
in struct authtok_conv.

Patch is attached.

LS
>From 374edcb41333acaac9d74bee2ac980609d868dff Mon Sep 17 00:00:00 2001
From: Lukas Slebodnik <[email protected]>
Date: Wed, 14 Aug 2013 13:21:31 +0200
Subject: [PATCH] proxy: Alocate auth tokens in struct authtok_conv

Struct sss_auth_token became opaque in commit
9acfb09f7969a69f58bd45c856b01700541853ca.
All ocasions of "struct sss_auth_token" was replaced with pointer to this
struct, but proper initialization of auth_tokens was missing
in struct authtok_conv.

Resolves:
https://fedorahosted.org/sssd/ticket/2046
---
 src/providers/proxy/proxy_child.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/src/providers/proxy/proxy_child.c 
b/src/providers/proxy/proxy_child.c
index 
efdf9120a8ec529283aa3f2c6cacd98d659a6ef7..c8e7985cceb4a77e377bf342e21b7e9fba30465d
 100644
--- a/src/providers/proxy/proxy_child.c
+++ b/src/providers/proxy/proxy_child.c
@@ -201,6 +201,23 @@ static errno_t call_pam_stack(const char *pam_target, 
struct pam_data *pd)
         conv.conv=proxy_internal_conv;
     }
     auth_data = talloc_zero(pd, struct authtok_conv);
+    if (auth_data == NULL) {
+        DEBUG(SSSDBG_CRIT_FAILURE, ("talloc_zero failed.\n"));
+        return ENOMEM;
+    }
+    auth_data->authtok = sss_authtok_new(auth_data);
+    if (auth_data->authtok == NULL) {
+        DEBUG(SSSDBG_CRIT_FAILURE, ("sss_authtok_new failed.\n"));
+        ret = ENOMEM;
+        goto fail;
+    }
+    auth_data->newauthtok = sss_authtok_new(auth_data);
+    if (auth_data->newauthtok == NULL) {
+        DEBUG(SSSDBG_CRIT_FAILURE, ("sss_authtok_new failed.\n"));
+        ret = ENOMEM;
+        goto fail;
+    }
+
     conv.appdata_ptr=auth_data;
 
     ret = pam_start(pam_target, pd->user, &conv, &pamh);
@@ -279,6 +296,9 @@ static errno_t call_pam_stack(const char *pam_target, 
struct pam_data *pd)
     pd->pam_status = pam_status;
 
     return EOK;
+fail:
+    free(auth_data);
+    return ret;
 }
 
 static int pc_pam_handler(DBusMessage *message, struct sbus_connection *conn)
-- 
1.8.3.1

_______________________________________________
sssd-devel mailing list
[email protected]
https://lists.fedorahosted.org/mailman/listinfo/sssd-devel

Reply via email to