svn rev #21841: trunk/src/lib/krb5/rcache/
ghudson@MIT.EDU
ghudson at MIT.EDU
Fri Jan 30 16:22:32 EST 2009
http://src.mit.edu/fisheye/changelog/krb5/?cs=21841
Commit By: ghudson
Log Message:
Make output parameter value of krb5_rc_resolve_full well-defined on
error return.
Changed Files:
U trunk/src/lib/krb5/rcache/rc_base.c
Modified: trunk/src/lib/krb5/rcache/rc_base.c
===================================================================
--- trunk/src/lib/krb5/rcache/rc_base.c 2009-01-30 21:21:10 UTC (rev 21840)
+++ trunk/src/lib/krb5/rcache/rc_base.c 2009-01-30 21:22:31 UTC (rev 21841)
@@ -133,13 +133,17 @@
}
-krb5_error_code krb5_rc_resolve_full(krb5_context context, krb5_rcache *id, char *string_name)
+krb5_error_code krb5_rc_resolve_full(krb5_context context, krb5_rcache *idptr,
+ char *string_name)
{
char *type;
char *residual;
krb5_error_code retval;
unsigned int diff;
+ krb5_rcache id;
+ *idptr = NULL;
+
if (!(residual = strchr(string_name,':')))
return KRB5_RC_PARSE;
@@ -149,22 +153,23 @@
(void) strncpy(type, string_name, diff);
type[residual - string_name] = '\0';
- if (!(*id = (krb5_rcache) malloc(sizeof(**id)))) {
+ if (!(id = (krb5_rcache) malloc(sizeof(*id)))) {
FREE(type);
return KRB5_RC_MALLOC;
}
- if ((retval = krb5_rc_resolve_type(context, id,type))) {
+ if ((retval = krb5_rc_resolve_type(context, &id,type))) {
FREE(type);
- FREE(*id);
+ FREE(id);
return retval;
}
FREE(type);
- if ((retval = krb5_rc_resolve(context, *id,residual + 1))) {
- k5_mutex_destroy(&(*id)->lock);
- FREE(*id);
+ if ((retval = krb5_rc_resolve(context, id,residual + 1))) {
+ k5_mutex_destroy(&id->lock);
+ FREE(id);
return retval;
}
- (*id)->magic = KV5M_RCACHE;
+ id->magic = KV5M_RCACHE;
+ *idptr = id;
return retval;
}
More information about the cvs-krb5
mailing list