From: John Kohl Date: Tue, 8 May 1990 13:42:01 +0000 (+0000) Subject: need to append to not nuke the file X-Git-Tag: krb5-1.0-alpha2~628 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=abb37e967975432e80a832e9eebf0f91506c0d07;p=krb5.git need to append to not nuke the file allocate extra space for the null end-of-list want sizeof char, not char * git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@777 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/lib/krb5/keytab/file/ktf_util.c b/src/lib/krb5/keytab/file/ktf_util.c index 2207d8bc5..fec787b96 100644 --- a/src/lib/krb5/keytab/file/ktf_util.c +++ b/src/lib/krb5/keytab/file/ktf_util.c @@ -64,7 +64,7 @@ int mode; krb5_error_code kerror; if (!(KTFILEP(id) = fopen(KTFILENAME(id), - (mode == KRB5_LOCKMODE_EXCLUSIVE) ? "w" : "r"))) + (mode == KRB5_LOCKMODE_EXCLUSIVE) ? "a" : "r"))) return errno; if (kerror = krb5_lock_file(KTFILEP(id), KTFILENAME(id), mode)) { @@ -127,7 +127,7 @@ krb5_keytab_entry **entrypp; return KRB5_KT_END; if (!count || (count < 0)) return KRB5_KT_END; /* XXX */ - if (!(ret_entry->principal = (krb5_data **)calloc(count, sizeof(krb5_data *)))) + if (!(ret_entry->principal = (krb5_data **)calloc(count+1, sizeof(krb5_data *)))) return ENOMEM; for (i = 0; i < count; i++) { if (!xfread(&princ_size, sizeof(princ_size), 1, KTFILEP(id))) @@ -196,7 +196,7 @@ krb5_keytab_entry *entry; if (!xfwrite(&size, sizeof(size), 1, KTFILEP(id))) { goto abend; } - if (!xfwrite((*princp)->data, sizeof(char *), size, KTFILEP(id))) { + if (!xfwrite((*princp)->data, sizeof(char), size, KTFILEP(id))) { goto abend; } }