unsigned int pfxlen;
const char *cp, *resid;
krb5_error_code err = 0;
-
+ krb5_keytab id;
+
+ *ktid = NULL;
+
cp = strchr (name, ':');
- if (!cp) {
- return (*krb5_kt_dfl_ops.resolve)(context, name, ktid);
- }
+ if (!cp)
+ return (*krb5_kt_dfl_ops.resolve)(context, name, ktid);
pfxlen = cp - name;
k5_mutex_unlock(&kt_typehead_lock);
for (; tlist; tlist = tlist->next) {
if (strcmp (tlist->ops->prefix, pfx) == 0) {
- err = (*tlist->ops->resolve)(context, resid, ktid);
+ err = (*tlist->ops->resolve)(context, resid, &id);
+ if (!err)
+ *ktid = id;
goto cleanup;
}
}