From a5e6d1338bd3b96bd4b201611c7aa388065f1661 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Fri, 27 Feb 2009 03:32:31 +0000 Subject: [PATCH] catch error and, while here, destroy credential caches on error git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24866 ec53bebd-3082-4978-b11e-865c3cabbd6b --- appl/su/su.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/appl/su/su.c b/appl/su/su.c index e2f4cb3b4..d568ef780 100644 --- a/appl/su/su.c +++ b/appl/su/su.c @@ -237,11 +237,19 @@ krb5_start_session(void) } ret = krb5_cc_copy_cache(context, ccache, ccache2); + if (ret) { + krb5_cc_destroy(context, ccache); + krb5_cc_destroy(context, ccache2); + return 1; + } ret = asprintf(&cc_name, "%s:%s", krb5_cc_get_type(context, ccache2), krb5_cc_get_name(context, ccache2)); - if (ret == -1) + if (ret == -1) { + krb5_cc_destroy(context, ccache); + krb5_cc_destroy(context, ccache2); errx(1, "malloc - out of memory"); + } esetenv("KRB5CCNAME", cc_name, 1); /* convert creds? */