summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorJohn Kohl <jtkohl@mit.edu>1990-04-26 17:19:14 +0000
committerJohn Kohl <jtkohl@mit.edu>1990-04-26 17:19:14 +0000
commitad1c151e557af7b55f2dbb810d7d738a59dd00f9 (patch)
treebe31687d52a361ec025ed62d83d078b3fb20f901 /src/lib
parentedfaf185ccf72b3c9c80b40eb4bc7d60f7cab0ef (diff)
downloadkrb5-ad1c151e557af7b55f2dbb810d7d738a59dd00f9.tar.gz
krb5-ad1c151e557af7b55f2dbb810d7d738a59dd00f9.tar.xz
krb5-ad1c151e557af7b55f2dbb810d7d738a59dd00f9.zip
clean up & make work
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@593 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/krb5/keytab/file/ktf_resolv.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/lib/krb5/keytab/file/ktf_resolv.c b/src/lib/krb5/keytab/file/ktf_resolv.c
index 956133aab..8d9b44bee 100644
--- a/src/lib/krb5/keytab/file/ktf_resolv.c
+++ b/src/lib/krb5/keytab/file/ktf_resolv.c
@@ -18,6 +18,8 @@ static char krb5_ktfile_resolve_c[] =
#include <krb5/copyright.h>
#include <krb5/krb5.h>
+#include <krb5/ext-proto.h>
+#include <errno.h>
#include "ktfile.h"
@@ -28,19 +30,25 @@ krb5_ktfile_resolve(name, id)
{
krb5_ktfile_data *data;
- if ((*id = malloc(sizeof(struct _krb5_kt))) == NULL)
- return(KRB5_NO_MEMORY); /* XXX */
+ if ((*id = (krb5_keytab) malloc(sizeof(**id))) == NULL)
+ return(ENOMEM);
(*id)->ops = &krb5_ktf_ops;
- if ((data = (krb5_ktfile_data *)malloc(sizeof(krb5_ktfile_data))) == NULL)
- return(KRB5_NO_MEMORY); /* XXX */
+ if ((data = (krb5_ktfile_data *)malloc(sizeof(krb5_ktfile_data))) == NULL) {
+ xfree(*id);
+ return(ENOMEM);
+ }
- if ((data->name = (char *)calloc(strlen(name) + 1, sizeof(char))) == NULL)
- return(KRB5_NO_MEMORY); /* XXX */
+ if ((data->name = (char *)calloc(strlen(name) + 1, sizeof(char))) == NULL) {
+ xfree(data);
+ xfree(*id);
+ return(ENOMEM);
+ }
(void) strcpy(data->name, name);
+ data->openf = 0;
- id->data = (krb5_pointer)data;
+ (*id)->data = (krb5_pointer)data;
return(0); /* XXX */
}