On (14/08/13 11:46), Simo Sorce wrote: >On Wed, 2013-08-14 at 13:50 +0200, Lukas Slebodnik wrote: >> 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. > >NACK >You call free() on a talloced structure. >You want to call talloc_free() there. of course > >Otherwise LGTM. > >Simo. >
Thank you for review. It was copy&paste problem. Updated patch is attached. LS
>From f50280ab09a3dce72b7ba2a2848bb3620941af12 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..6f95ede6af78f0286933fc4259dd258ef69f2d37 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: + talloc_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
