[25678] in CVS-changelog-for-Kerberos-V5
svn rev #25168: trunk/src/lib/krb5/ccache/
daemon@ATHENA.MIT.EDU (ghudson@mit.edu)
Wed Sep 7 15:11:15 2011
Date: Wed, 7 Sep 2011 15:10:25 -0400
From: ghudson@mit.edu
Message-Id: <201109071910.p87JAPgC024358@drugstore.mit.edu>
To: cvs-krb5@mit.edu
Reply-To: krbdev@mit.edu
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: cvs-krb5-bounces@mit.edu
http://src.mit.edu/fisheye/changelog/krb5/?cs=25168
Commit By: ghudson
Log Message:
Fix some error-handling bugs in cc_dir.c.
Changed Files:
U trunk/src/lib/krb5/ccache/cc_dir.c
Modified: trunk/src/lib/krb5/ccache/cc_dir.c
===================================================================
--- trunk/src/lib/krb5/ccache/cc_dir.c 2011-09-06 23:23:43 UTC (rev 25167)
+++ trunk/src/lib/krb5/ccache/cc_dir.c 2011-09-07 19:10:25 UTC (rev 25168)
@@ -184,7 +184,7 @@
krb5_error_code ret = KRB5_CC_IO;
char *newpath = NULL;
FILE *fp = NULL;
- int fd = -1;
+ int fd = -1, status;
if (asprintf(&newpath, "%s.XXXXXX", primary_path) < 0)
return ENOMEM;
@@ -200,7 +200,9 @@
fd = -1;
if (fprintf(fp, "%s\n", contents) < 0)
goto cleanup;
- if (fclose(fp) == EOF)
+ status = fclose(fp);
+ fp = NULL;
+ if (status == EOF)
goto cleanup;
fp = NULL;
if (rename(newpath, primary_path) != 0)
@@ -365,7 +367,7 @@
{
krb5_error_code ret;
char *dirname = NULL, *template = NULL, *residual = NULL;
- krb5_ccache fcc;
+ krb5_ccache fcc = NULL;
*cache_out = NULL;
ret = get_context_default_dir(context, &dirname);
@@ -390,9 +392,12 @@
}
ret = make_cache(residual, fcc, cache_out);
if (ret)
- krb5_fcc_ops.destroy(context, fcc);
+ goto cleanup;
+ fcc = NULL;
cleanup:
+ if (fcc != NULL)
+ krb5_fcc_ops.destroy(context, fcc);
free(dirname);
free(template);
free(residual);
_______________________________________________
cvs-krb5 mailing list
cvs-krb5@mit.edu
https://mailman.mit.edu/mailman/listinfo/cvs-krb5