diff --git a/lib/krb5/fcache.c b/lib/krb5/fcache.c index c95bad263..29903b79f 100644 --- a/lib/krb5/fcache.c +++ b/lib/krb5/fcache.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997 - 2001 Kungliga Tekniska Högskolan + * Copyright (c) 1997 - 2002 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -58,7 +58,7 @@ struct fcc_cursor { #define FCC_CURSOR(C) ((struct fcc_cursor*)(C)) -static char* +static const char* fcc_get_name(krb5_context context, krb5_ccache id) { @@ -248,6 +248,7 @@ fcc_initialize(krb5_context context, { krb5_storage *sp; sp = krb5_storage_from_fd(fd); + krb5_storage_set_eof_code(sp, KRB5_CC_END); if(context->fcache_vno != 0) f->version = context->fcache_vno; else @@ -321,6 +322,7 @@ fcc_store_cred(krb5_context context, { krb5_storage *sp; sp = krb5_storage_from_fd(fd); + krb5_storage_set_eof_code(sp, KRB5_CC_END); storage_set_flags(context, sp, FCACHE(id)->version); ret = krb5_store_creds(sp, creds); krb5_storage_free(sp); @@ -366,11 +368,10 @@ init_fcc (krb5_context context, return ret; } sp = krb5_storage_from_fd(fd); + krb5_storage_set_eof_code(sp, KRB5_CC_END); ret = krb5_ret_int8(sp, &pvno); - if(ret == KRB5_CC_END) { - + if(ret == KRB5_CC_END) return ENOENT; - } if(ret) return ret; if(pvno != 5) { diff --git a/lib/krb5/keytab_keyfile.c b/lib/krb5/keytab_keyfile.c index 273c3614e..56293ed34 100644 --- a/lib/krb5/keytab_keyfile.c +++ b/lib/krb5/keytab_keyfile.c @@ -208,7 +208,7 @@ akf_start_seq_get(krb5_context context, krb5_storage_free(c->sp); close(c->fd); krb5_clear_error_string (context); - if(ret == KRB5_CC_END) + if(ret == KRB5_KT_END) return KRB5_KT_NOTFOUND; return ret; } @@ -227,7 +227,7 @@ akf_next_entry(krb5_context context, off_t pos; int ret; - pos = cursor->sp->seek(cursor->sp, 0, SEEK_CUR); + pos = krb5_storage_seek(cursor->sp, 0, SEEK_CUR); if ((pos - 4) / (4 + 8) >= d->num_entries) return KRB5_KT_END; @@ -255,7 +255,7 @@ akf_next_entry(krb5_context context, goto out; } - ret = cursor->sp->fetch(cursor->sp, entry->keyblock.keyvalue.data, 8); + ret = krb5_storage_read(cursor->sp, entry->keyblock.keyvalue.data, 8); if(ret != 8) ret = (ret < 0) ? errno : KRB5_KT_END; else @@ -264,7 +264,7 @@ akf_next_entry(krb5_context context, entry->timestamp = time(NULL); out: - cursor->sp->seek(cursor->sp, pos + 4 + 8, SEEK_SET); + krb5_storage_seek(cursor->sp, pos + 4 + 8, SEEK_SET); return ret; } @@ -316,7 +316,7 @@ akf_add_entry(krb5_context context, if (created) len = 0; else { - if((*sp->seek)(sp, 0, SEEK_SET) < 0) { + if(krb5_storage_seek(sp, 0, SEEK_SET) < 0) { ret = errno; krb5_storage_free(sp); close(fd); @@ -333,7 +333,7 @@ akf_add_entry(krb5_context context, } len++; - if((*sp->seek)(sp, 0, SEEK_SET) < 0) { + if(krb5_storage_seek(sp, 0, SEEK_SET) < 0) { ret = errno; krb5_storage_free(sp); close(fd); @@ -349,7 +349,7 @@ akf_add_entry(krb5_context context, } - if((*sp->seek)(sp, (len - 1) * (8 + 4), SEEK_CUR) < 0) { + if(krb5_storage_seek(sp, (len - 1) * (8 + 4), SEEK_CUR) < 0) { ret = errno; krb5_storage_free(sp); close(fd); @@ -363,8 +363,8 @@ akf_add_entry(krb5_context context, close(fd); return ret; } - ret = sp->store(sp, entry->keyblock.keyvalue.data, - entry->keyblock.keyvalue.length); + ret = krb5_storage_write(sp, entry->keyblock.keyvalue.data, + entry->keyblock.keyvalue.length); if(ret != entry->keyblock.keyvalue.length) { krb5_storage_free(sp); close(fd); diff --git a/lib/krb5/keytab_krb4.c b/lib/krb5/keytab_krb4.c index 6f57576be..c510b1a52 100644 --- a/lib/krb5/keytab_krb4.c +++ b/lib/krb5/keytab_krb4.c @@ -139,6 +139,7 @@ krb4_kt_start_seq_get_int (krb5_context context, return ret; } c->sp = krb5_storage_from_fd(c->fd); + krb5_storage_set_eof_code(c->sp, KRB5_KT_END); return 0; } @@ -187,7 +188,7 @@ read_v4_entry (krb5_context context, krb5_free_principal (context, ed->entry.principal); return ret; } - ret = c->sp->fetch(c->sp, key, 8); + ret = krb5_storage_read(c->sp, key, 8); if (ret < 0) { krb5_free_principal(context, ed->entry.principal); return ret; @@ -274,7 +275,7 @@ krb4_store_keytab_entry(krb5_context context, ret = krb5_store_stringz(sp, instance); ret = krb5_store_stringz(sp, realm); ret = krb5_store_int8(sp, entry->vno); - ret = (*sp->store)(sp, entry->keyblock.keyvalue.data, 8); + ret = krb5_storage_write(sp, entry->keyblock.keyvalue.data, 8); } return 0; } @@ -301,6 +302,7 @@ krb4_kt_add_entry (krb5_context context, } } sp = krb5_storage_from_fd(fd); + krb5_storage_set_eof_code(sp, KRB5_KT_END); if(sp == NULL) { close(fd); return ENOMEM;