From d7827cfb24763fd7f0d3a890c4bcf4eefad54b4d Mon Sep 17 00:00:00 2001 From: Johan Danielsson Date: Mon, 21 Oct 1996 23:12:23 +0000 Subject: [PATCH] Removed some warnings git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@874 ec53bebd-3082-4978-b11e-865c3cabbd6b --- cache.c | 510 +++++++++++++++++++++-------------------- krbhst.c | 5 +- lib/krb5/cache.c | 510 +++++++++++++++++++++-------------------- lib/krb5/krbhst.c | 5 +- lib/krb5/send_to_kdc.c | 4 +- lib/krb5/str2key.c | 4 +- send_to_kdc.c | 4 +- str2key.c | 4 +- 8 files changed, 528 insertions(+), 518 deletions(-) diff --git a/cache.c b/cache.c index a26644d3d..7e22452e9 100644 --- a/cache.c +++ b/cache.c @@ -5,9 +5,9 @@ void krb5_free_ccache(krb5_context context, krb5_ccache val) { - free(((krb5_fcache*)(val->data.data))->filename); - krb5_data_free (&val->data); - free(val); + free(((krb5_fcache*)(val->data.data))->filename); + krb5_data_free (&val->data); + free(val); } @@ -16,38 +16,38 @@ krb5_cc_resolve(krb5_context context, const char *residual, krb5_ccache *id) { - krb5_ccache p; - krb5_fcache *f; + krb5_ccache p; + krb5_fcache *f; - if(strncmp(residual, "FILE:", 5)){ - return -1; - } + if(strncmp(residual, "FILE:", 5)){ + return -1; + } - p = ALLOC(1, krb5_ccache_data); + p = ALLOC(1, krb5_ccache_data); - if(!p) - return ENOMEM; + if(!p) + return ENOMEM; - f = ALLOC(1, krb5_fcache); + f = ALLOC(1, krb5_fcache); - if(!f){ - free(p); - return ENOMEM; - } - f->filename = strdup(residual + 5); - if(!f->filename){ - free(f); - free(p); - return ENOMEM; - } + if(!f){ + free(p); + return ENOMEM; + } + f->filename = strdup(residual + 5); + if(!f->filename){ + free(f); + free(p); + return ENOMEM; + } - p->data.data = f; - p->data.length = sizeof(*f); - p->type = 1; + p->data.data = f; + p->data.length = sizeof(*f); + p->type = 1; - *id = p; + *id = p; - return 0; + return 0; } #if 0 @@ -70,20 +70,20 @@ char* krb5_cc_get_name(krb5_context context, krb5_ccache id) { - return ((krb5_fcache*)(id->data.data))->filename; + return ((krb5_fcache*)(id->data.data))->filename; } char* krb5_cc_default_name(krb5_context context) { - static char name[1024]; - char *p; - p = getenv("KRB5CCNAME"); - if(p) - strcpy(name, p); - else - sprintf(name, "FILE:/tmp/krb5cc_%d", getuid()); - return name; + static char name[1024]; + char *p; + p = getenv("KRB5CCNAME"); + if(p) + strcpy(name, p); + else + sprintf(name, "FILE:/tmp/krb5cc_%d", getuid()); + return name; } @@ -93,249 +93,271 @@ krb5_error_code krb5_cc_default(krb5_context context, krb5_ccache *id) { - return krb5_cc_resolve(context, - krb5_cc_default_name(context), - id); + return krb5_cc_resolve(context, + krb5_cc_default_name(context), + id); } static krb5_error_code store_int32(int fd, int32_t value) { - int ret; + int ret; - value = htonl(value); - ret = write(fd, &value, sizeof(value)); - if (ret != sizeof(value)) - return (ret<0)?errno:-1; - return 0; + value = htonl(value); + ret = write(fd, &value, sizeof(value)); + if (ret != sizeof(value)) + return (ret<0)?errno:-1; + return 0; } static krb5_error_code ret_int32(int fd, int32_t *value) { - int32_t v; - int ret; - ret = read(fd, &v, sizeof(v)); - if(ret != sizeof(v)) - return (ret<0)?errno:-1; /* XXX */ + int32_t v; + int ret; + ret = read(fd, &v, sizeof(v)); + if(ret != sizeof(v)) + return (ret<0)?errno:-1; /* XXX */ - *value = ntohl(v); - return 0; + *value = ntohl(v); + return 0; } static krb5_error_code store_int16(int fd, int16_t value) { - int ret; + int ret; - value = htons(value); - ret = write(fd, &value, sizeof(value)); - if (ret != sizeof(value)) - return (ret<0)?errno:-1; - return 0; + value = htons(value); + ret = write(fd, &value, sizeof(value)); + if (ret != sizeof(value)) + return (ret<0)?errno:-1; + return 0; } static krb5_error_code ret_int16(int fd, int16_t *value) { - int16_t v; - int ret; - ret = read(fd, &v, sizeof(v)); - if(ret != sizeof(v)) - return (ret<0)?errno:-1; /* XXX */ + int16_t v; + int ret; + ret = read(fd, &v, sizeof(v)); + if(ret != sizeof(v)) + return (ret<0)?errno:-1; /* XXX */ - *value = ntohs(v); - return 0; + *value = ntohs(v); + return 0; } static krb5_error_code store_int8(int fd, int8_t value) { - int ret; + int ret; - ret = write(fd, &value, sizeof(value)); - if (ret != sizeof(value)) - return (ret<0)?errno:-1; - return 0; + ret = write(fd, &value, sizeof(value)); + if (ret != sizeof(value)) + return (ret<0)?errno:-1; + return 0; } static krb5_error_code ret_int8(int fd, int8_t *value) { - int ret; + int ret; - ret = read (fd, value, sizeof(*value)); - if (ret != sizeof(*value)) - return (ret<0)?errno:-1; - return 0; + ret = read (fd, value, sizeof(*value)); + if (ret != sizeof(*value)) + return (ret<0)?errno:-1; + return 0; } static krb5_error_code store_data(int fd, krb5_data data) { - int ret; - ret = store_int32(fd, data.length); - if(ret < 0) - return ret; - return write(fd, data.data, data.length); + int ret; + ret = store_int32(fd, data.length); + if(ret < 0) + return ret; + return write(fd, data.data, data.length); } static krb5_error_code ret_data(int fd, krb5_data *data) { - int ret; - int size; - ret = ret_int32(fd, &size); - data->length = size; - data->data = malloc(size); - ret = read(fd, data->data, size); - if(ret != size) - return (ret < 0)? errno : -1; /* XXX */ - return 0; + int ret; + int size; + ret = ret_int32(fd, &size); + data->length = size; + data->data = malloc(size); + ret = read(fd, data->data, size); + if(ret != size) + return (ret < 0)? errno : -1; /* XXX */ + return 0; } static krb5_error_code store_principal(int fd, krb5_principal p) { - int i; - store_int32(fd, p->type); - store_int32(fd, p->ncomp); - store_data(fd, p->realm); - for(i = 0; i < p->ncomp; i++) - store_data(fd, p->comp[i]); - return 0; + int i; + store_int32(fd, p->type); + store_int32(fd, p->ncomp); + store_data(fd, p->realm); + for(i = 0; i < p->ncomp; i++) + store_data(fd, p->comp[i]); + return 0; } static krb5_error_code ret_principal(int fd, krb5_principal *princ) { - int i; - krb5_principal p; + int i; + krb5_principal p; - p = ALLOC(1, krb5_principal_data); + p = ALLOC(1, krb5_principal_data); - if(ret_int32(fd, &p->type)) - return -1; - ret_int32(fd, &p->ncomp); - ret_data(fd, &p->realm); - p->comp = ALLOC(p->ncomp, krb5_data); - for(i = 0; i < p->ncomp; i++) - ret_data(fd, &p->comp[i]); - *princ = p; - return 0; + if(ret_int32(fd, &p->type)) + return -1; + ret_int32(fd, &p->ncomp); + ret_data(fd, &p->realm); + p->comp = ALLOC(p->ncomp, krb5_data); + for(i = 0; i < p->ncomp; i++) + ret_data(fd, &p->comp[i]); + *princ = p; + return 0; } static krb5_error_code store_keyblock(int fd, krb5_keyblock p) { - store_int32(fd, p.keytype); - store_data(fd, p.contents); - return 0; + store_int32(fd, p.keytype); + store_data(fd, p.contents); + return 0; } static krb5_error_code ret_keyblock(int fd, krb5_keyblock *p) { - ret_int32(fd, (int32_t*)&p->keytype); - ret_data(fd, &p->contents); - return 0; + ret_int32(fd, (int32_t*)&p->keytype); + ret_data(fd, &p->contents); + return 0; } static krb5_error_code store_times(int fd, krb5_times times) { - store_int32(fd, times.authtime); - store_int32(fd, times.starttime); - store_int32(fd, times.endtime); - store_int32(fd, times.renew_till); - return 0; + store_int32(fd, times.authtime); + store_int32(fd, times.starttime); + store_int32(fd, times.endtime); + store_int32(fd, times.renew_till); + return 0; } static krb5_error_code ret_times(int fd, krb5_times *times) { - ret_int32(fd, ×->authtime); - ret_int32(fd, ×->starttime); - ret_int32(fd, ×->endtime); - ret_int32(fd, ×->renew_till); - return 0; + ret_int32(fd, ×->authtime); + ret_int32(fd, ×->starttime); + ret_int32(fd, ×->endtime); + ret_int32(fd, ×->renew_till); + return 0; } static krb5_error_code store_address(int fd, krb5_address p) { - store_int32(fd, p.type); - store_data(fd, p.address); - return 0; + store_int32(fd, p.type); + store_data(fd, p.address); + return 0; } static krb5_error_code ret_address(int fd, krb5_address *adr) { - ret_int32(fd, (int32_t*)&adr->type); - ret_data(fd, &adr->address); - return 0; + ret_int32(fd, (int32_t*)&adr->type); + ret_data(fd, &adr->address); + return 0; } static krb5_error_code store_addrs(int fd, krb5_addresses p) { - int i; - store_int32(fd, p.number); - for(i = 0; inumber); - adr->addrs = ALLOC(adr->number, krb5_address); - for(i = 0; i < adr->number; i++) - ret_address(fd, &adr->addrs[i]); - return 0; + int i; + ret_int32(fd, &adr->number); + adr->addrs = ALLOC(adr->number, krb5_address); + for(i = 0; i < adr->number; i++) + ret_address(fd, &adr->addrs[i]); + return 0; } static krb5_error_code store_ticket(int fd, krb5_ticket p) { - int i; - store_data(fd, p.enc_part); - return 0; + store_data(fd, p.enc_part); + return 0; } static krb5_error_code ret_ticket(int fd, krb5_ticket *tkt) { - int i; - ret_data(fd, &tkt->enc_part); - return 0; + ret_data(fd, &tkt->enc_part); + return 0; } static krb5_error_code store_authdata(int fd, krb5_data p) { - store_data(fd, p); - return 0; + store_data(fd, p); + return 0; } static krb5_error_code ret_authdata(int fd, krb5_data *auth) { - ret_data(fd, auth); - return 0; + ret_data(fd, auth); + return 0; +} + +krb5_error_code +erase_file(const char *filename) +{ + int fd; + off_t pos; + char *p; + + fd = open(filename, O_RDWR); + if(fd < 0) + if(errno == ENOENT) + return 0; + else + return errno; + pos = lseek(fd, 0, SEEK_END); + lseek(fd, 0, SEEK_SET); + p = (char*) malloc(pos); + memset(p, 0, pos); + write(fd, p, pos); + free(p); + close(fd); + unlink(filename); + return 0; } krb5_error_code @@ -343,70 +365,48 @@ krb5_cc_initialize(krb5_context context, krb5_ccache id, krb5_principal primary_principal) { - char cc[1024]; - char *p; - int ret; - int fd; + int ret; + int fd; - char *f; + char *f; - f = krb5_cc_get_name(context, id); + f = krb5_cc_get_name(context, id); - if(ret = erase_file(f)) - return ret; + if((ret = erase_file(f))) + return ret; - fd = open(f, O_RDWR | O_CREAT | O_EXCL, 0600); - if(fd == -1) - return errno; - store_int16(fd, 0x503); - store_principal(fd, primary_principal); - close(fd); + fd = open(f, O_RDWR | O_CREAT | O_EXCL, 0600); + if(fd == -1) + return errno; + store_int16(fd, 0x503); + store_principal(fd, primary_principal); + close(fd); - return 0; + return 0; } -krb5_error_code -erase_file(const char *filename) -{ - int fd; - off_t pos; - - fd = open(filename, O_RDWR); - if(fd < 0) - if(errno == ENOENT) - return 0; - else - return errno; - pos = lseek(fd, 0, SEEK_END); - lseek(fd, 0, SEEK_SET); - for(; pos > 0; pos -= 16) - write(fd, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16); - close(fd); - unlink(filename); - return 0; -} krb5_error_code krb5_cc_destroy(krb5_context context, krb5_ccache id) { - char *f; - int ret; - f = krb5_cc_get_name(context, id); + char *f; + int ret; + f = krb5_cc_get_name(context, id); - ret = erase_file(f); + ret = erase_file(f); - krb5_free_ccache(context, id); - return ret; + krb5_free_ccache(context, id); + return ret; } krb5_error_code krb5_cc_close(krb5_context context, krb5_ccache id) { - krb5_data_free (&id->data); - free(id); - return 0; + krb5_data_free (&id->data); + free(id); + return 0; } krb5_error_code @@ -414,45 +414,45 @@ krb5_cc_store_cred(krb5_context context, krb5_ccache id, krb5_creds *creds) { - int fd; - krb5_fcache *f; + int fd; + krb5_fcache *f; - f = (krb5_fcache *)id->data.data; + f = (krb5_fcache *)id->data.data; - fd = open(f->filename, O_WRONLY | O_APPEND); - if(fd < 0) - return errno; - store_principal(fd, creds->client); - store_principal(fd, creds->server); - store_keyblock(fd, creds->session); - store_times(fd, creds->times); - store_int8(fd, 0); /* s/key */ - store_int32(fd, 0); /* flags */ - store_addrs(fd, creds->addresses); - store_authdata(fd, creds->authdata); - store_ticket(fd, creds->ticket); - store_ticket(fd, creds->second_ticket); - close(fd); - return 0; + fd = open(f->filename, O_WRONLY | O_APPEND); + if(fd < 0) + return errno; + store_principal(fd, creds->client); + store_principal(fd, creds->server); + store_keyblock(fd, creds->session); + store_times(fd, creds->times); + store_int8(fd, 0); /* s/key */ + store_int32(fd, 0); /* flags */ + store_addrs(fd, creds->addresses); + store_authdata(fd, creds->authdata); + store_ticket(fd, creds->ticket); + store_ticket(fd, creds->second_ticket); + close(fd); + return 0; /* XXX */ } static krb5_error_code krb5_cc_read_cred (int fd, krb5_creds *creds) { - int8_t dummy8; - int32_t dummy32; + int8_t dummy8; + int32_t dummy32; - return ret_principal (fd, &creds->client) || - ret_principal (fd, &creds->server) || - ret_keyblock (fd, &creds->session) || - ret_times (fd, &creds->times) || - ret_int8 (fd, &dummy8) || - ret_int32 (fd, &dummy32) || - ret_addrs (fd, &creds->addresses) || - ret_authdata (fd, &creds->authdata) || - ret_ticket (fd, &creds->ticket) || - ret_ticket (fd, &creds->second_ticket); + return ret_principal (fd, &creds->client) || + ret_principal (fd, &creds->server) || + ret_keyblock (fd, &creds->session) || + ret_times (fd, &creds->times) || + ret_int8 (fd, &dummy8) || + ret_int32 (fd, &dummy32) || + ret_addrs (fd, &creds->addresses) || + ret_authdata (fd, &creds->authdata) || + ret_ticket (fd, &creds->ticket) || + ret_ticket (fd, &creds->second_ticket); } krb5_error_code @@ -462,7 +462,7 @@ krb5_cc_retrieve_cred(krb5_context context, krb5_creds *mcreds, krb5_creds *creds) { - + return 0; /* XXX */ } krb5_error_code @@ -470,17 +470,16 @@ krb5_cc_get_principal(krb5_context context, krb5_ccache id, krb5_principal *principal) { - int fd; - char *f; - int16_t tag; + int fd; + int16_t tag; - fd = open(krb5_cc_get_name(context, id), O_RDONLY); - if(fd < 0) - return errno; - ret_int16(fd, &tag); - ret_principal(fd, principal); - close(fd); - return 0; + fd = open(krb5_cc_get_name(context, id), O_RDONLY); + if(fd < 0) + return errno; + ret_int16(fd, &tag); + ret_principal(fd, principal); + close(fd); + return 0; } krb5_error_code @@ -488,18 +487,18 @@ krb5_cc_start_seq_get (krb5_context context, krb5_ccache id, krb5_cc_cursor *cursor) { - int16_t tag; - krb5_principal principal; + int16_t tag; + krb5_principal principal; - if (id->type != 1) - abort (); - cursor->fd = open (krb5_cc_get_name (context, id), O_RDONLY); - if (cursor->fd < 0) - return errno; - ret_int16 (cursor->fd, &tag); - ret_principal (cursor->fd, &principal); - krb5_free_principal (principal); - return 0; + if (id->type != 1) + abort (); + cursor->fd = open (krb5_cc_get_name (context, id), O_RDONLY); + if (cursor->fd < 0) + return errno; + ret_int16 (cursor->fd, &tag); + ret_principal (cursor->fd, &principal); + krb5_free_principal (principal); + return 0; } krb5_error_code @@ -508,9 +507,9 @@ krb5_cc_next_cred (krb5_context context, krb5_creds *creds, krb5_cc_cursor *cursor) { - if (id->type != 1) - abort (); - return krb5_cc_read_cred (cursor->fd, creds); + if (id->type != 1) + abort (); + return krb5_cc_read_cred (cursor->fd, creds); } krb5_error_code @@ -518,9 +517,9 @@ krb5_cc_end_seq_get (krb5_context context, krb5_ccache id, krb5_cc_cursor *cursor) { - if (id->type != 1) - abort (); - return close (cursor->fd); + if (id->type != 1) + abort (); + return close (cursor->fd); } krb5_error_code @@ -528,6 +527,7 @@ krb5_cc_get_first(krb5_context context, krb5_ccache id, krb5_cc_cursor *cursor) { + return 0; /* XXX */ } krb5_error_code @@ -536,6 +536,7 @@ krb5_cc_get_next(krb5_context context, krb5_creds *creds, krb5_cc_cursor *cursor) { + return 0; /* XXX */ } krb5_error_code @@ -543,6 +544,7 @@ krb5_cc_end_get(krb5_context context, krb5_ccache id, krb5_cc_cursor *cursor) { + return 0; /* XXX */ } krb5_error_code @@ -551,6 +553,7 @@ krb5_cc_remove_cred(krb5_context context, krb5_flags which, krb5_creds *cred) { + return 0; /* XXX */ } krb5_error_code @@ -558,5 +561,6 @@ krb5_cc_set_flags(krb5_context context, krb5_ccache id, krb5_flags flags) { + return 0; /* XXX */ } diff --git a/krbhst.c b/krbhst.c index 2367afd9f..4c2aaf67a 100644 --- a/krbhst.c +++ b/krbhst.c @@ -9,7 +9,7 @@ krb5_get_krbhst (krb5_context context, char buf[BUFSIZ]; char *val; - sprintf (buf, "realms %.*s kdc", realm->length, realm->data); + sprintf (buf, "realms %.*s kdc", (int)realm->length, (char*)realm->data); err = krb5_get_config_tag (context->cf, buf, &val); if (err) return err; @@ -23,5 +23,6 @@ krb5_error_code krb5_free_krbhst (krb5_context context, char *const *hostlist) { - free (hostlist); + free ((void*)hostlist); + return 0; /* XXX */ } diff --git a/lib/krb5/cache.c b/lib/krb5/cache.c index a26644d3d..7e22452e9 100644 --- a/lib/krb5/cache.c +++ b/lib/krb5/cache.c @@ -5,9 +5,9 @@ void krb5_free_ccache(krb5_context context, krb5_ccache val) { - free(((krb5_fcache*)(val->data.data))->filename); - krb5_data_free (&val->data); - free(val); + free(((krb5_fcache*)(val->data.data))->filename); + krb5_data_free (&val->data); + free(val); } @@ -16,38 +16,38 @@ krb5_cc_resolve(krb5_context context, const char *residual, krb5_ccache *id) { - krb5_ccache p; - krb5_fcache *f; + krb5_ccache p; + krb5_fcache *f; - if(strncmp(residual, "FILE:", 5)){ - return -1; - } + if(strncmp(residual, "FILE:", 5)){ + return -1; + } - p = ALLOC(1, krb5_ccache_data); + p = ALLOC(1, krb5_ccache_data); - if(!p) - return ENOMEM; + if(!p) + return ENOMEM; - f = ALLOC(1, krb5_fcache); + f = ALLOC(1, krb5_fcache); - if(!f){ - free(p); - return ENOMEM; - } - f->filename = strdup(residual + 5); - if(!f->filename){ - free(f); - free(p); - return ENOMEM; - } + if(!f){ + free(p); + return ENOMEM; + } + f->filename = strdup(residual + 5); + if(!f->filename){ + free(f); + free(p); + return ENOMEM; + } - p->data.data = f; - p->data.length = sizeof(*f); - p->type = 1; + p->data.data = f; + p->data.length = sizeof(*f); + p->type = 1; - *id = p; + *id = p; - return 0; + return 0; } #if 0 @@ -70,20 +70,20 @@ char* krb5_cc_get_name(krb5_context context, krb5_ccache id) { - return ((krb5_fcache*)(id->data.data))->filename; + return ((krb5_fcache*)(id->data.data))->filename; } char* krb5_cc_default_name(krb5_context context) { - static char name[1024]; - char *p; - p = getenv("KRB5CCNAME"); - if(p) - strcpy(name, p); - else - sprintf(name, "FILE:/tmp/krb5cc_%d", getuid()); - return name; + static char name[1024]; + char *p; + p = getenv("KRB5CCNAME"); + if(p) + strcpy(name, p); + else + sprintf(name, "FILE:/tmp/krb5cc_%d", getuid()); + return name; } @@ -93,249 +93,271 @@ krb5_error_code krb5_cc_default(krb5_context context, krb5_ccache *id) { - return krb5_cc_resolve(context, - krb5_cc_default_name(context), - id); + return krb5_cc_resolve(context, + krb5_cc_default_name(context), + id); } static krb5_error_code store_int32(int fd, int32_t value) { - int ret; + int ret; - value = htonl(value); - ret = write(fd, &value, sizeof(value)); - if (ret != sizeof(value)) - return (ret<0)?errno:-1; - return 0; + value = htonl(value); + ret = write(fd, &value, sizeof(value)); + if (ret != sizeof(value)) + return (ret<0)?errno:-1; + return 0; } static krb5_error_code ret_int32(int fd, int32_t *value) { - int32_t v; - int ret; - ret = read(fd, &v, sizeof(v)); - if(ret != sizeof(v)) - return (ret<0)?errno:-1; /* XXX */ + int32_t v; + int ret; + ret = read(fd, &v, sizeof(v)); + if(ret != sizeof(v)) + return (ret<0)?errno:-1; /* XXX */ - *value = ntohl(v); - return 0; + *value = ntohl(v); + return 0; } static krb5_error_code store_int16(int fd, int16_t value) { - int ret; + int ret; - value = htons(value); - ret = write(fd, &value, sizeof(value)); - if (ret != sizeof(value)) - return (ret<0)?errno:-1; - return 0; + value = htons(value); + ret = write(fd, &value, sizeof(value)); + if (ret != sizeof(value)) + return (ret<0)?errno:-1; + return 0; } static krb5_error_code ret_int16(int fd, int16_t *value) { - int16_t v; - int ret; - ret = read(fd, &v, sizeof(v)); - if(ret != sizeof(v)) - return (ret<0)?errno:-1; /* XXX */ + int16_t v; + int ret; + ret = read(fd, &v, sizeof(v)); + if(ret != sizeof(v)) + return (ret<0)?errno:-1; /* XXX */ - *value = ntohs(v); - return 0; + *value = ntohs(v); + return 0; } static krb5_error_code store_int8(int fd, int8_t value) { - int ret; + int ret; - ret = write(fd, &value, sizeof(value)); - if (ret != sizeof(value)) - return (ret<0)?errno:-1; - return 0; + ret = write(fd, &value, sizeof(value)); + if (ret != sizeof(value)) + return (ret<0)?errno:-1; + return 0; } static krb5_error_code ret_int8(int fd, int8_t *value) { - int ret; + int ret; - ret = read (fd, value, sizeof(*value)); - if (ret != sizeof(*value)) - return (ret<0)?errno:-1; - return 0; + ret = read (fd, value, sizeof(*value)); + if (ret != sizeof(*value)) + return (ret<0)?errno:-1; + return 0; } static krb5_error_code store_data(int fd, krb5_data data) { - int ret; - ret = store_int32(fd, data.length); - if(ret < 0) - return ret; - return write(fd, data.data, data.length); + int ret; + ret = store_int32(fd, data.length); + if(ret < 0) + return ret; + return write(fd, data.data, data.length); } static krb5_error_code ret_data(int fd, krb5_data *data) { - int ret; - int size; - ret = ret_int32(fd, &size); - data->length = size; - data->data = malloc(size); - ret = read(fd, data->data, size); - if(ret != size) - return (ret < 0)? errno : -1; /* XXX */ - return 0; + int ret; + int size; + ret = ret_int32(fd, &size); + data->length = size; + data->data = malloc(size); + ret = read(fd, data->data, size); + if(ret != size) + return (ret < 0)? errno : -1; /* XXX */ + return 0; } static krb5_error_code store_principal(int fd, krb5_principal p) { - int i; - store_int32(fd, p->type); - store_int32(fd, p->ncomp); - store_data(fd, p->realm); - for(i = 0; i < p->ncomp; i++) - store_data(fd, p->comp[i]); - return 0; + int i; + store_int32(fd, p->type); + store_int32(fd, p->ncomp); + store_data(fd, p->realm); + for(i = 0; i < p->ncomp; i++) + store_data(fd, p->comp[i]); + return 0; } static krb5_error_code ret_principal(int fd, krb5_principal *princ) { - int i; - krb5_principal p; + int i; + krb5_principal p; - p = ALLOC(1, krb5_principal_data); + p = ALLOC(1, krb5_principal_data); - if(ret_int32(fd, &p->type)) - return -1; - ret_int32(fd, &p->ncomp); - ret_data(fd, &p->realm); - p->comp = ALLOC(p->ncomp, krb5_data); - for(i = 0; i < p->ncomp; i++) - ret_data(fd, &p->comp[i]); - *princ = p; - return 0; + if(ret_int32(fd, &p->type)) + return -1; + ret_int32(fd, &p->ncomp); + ret_data(fd, &p->realm); + p->comp = ALLOC(p->ncomp, krb5_data); + for(i = 0; i < p->ncomp; i++) + ret_data(fd, &p->comp[i]); + *princ = p; + return 0; } static krb5_error_code store_keyblock(int fd, krb5_keyblock p) { - store_int32(fd, p.keytype); - store_data(fd, p.contents); - return 0; + store_int32(fd, p.keytype); + store_data(fd, p.contents); + return 0; } static krb5_error_code ret_keyblock(int fd, krb5_keyblock *p) { - ret_int32(fd, (int32_t*)&p->keytype); - ret_data(fd, &p->contents); - return 0; + ret_int32(fd, (int32_t*)&p->keytype); + ret_data(fd, &p->contents); + return 0; } static krb5_error_code store_times(int fd, krb5_times times) { - store_int32(fd, times.authtime); - store_int32(fd, times.starttime); - store_int32(fd, times.endtime); - store_int32(fd, times.renew_till); - return 0; + store_int32(fd, times.authtime); + store_int32(fd, times.starttime); + store_int32(fd, times.endtime); + store_int32(fd, times.renew_till); + return 0; } static krb5_error_code ret_times(int fd, krb5_times *times) { - ret_int32(fd, ×->authtime); - ret_int32(fd, ×->starttime); - ret_int32(fd, ×->endtime); - ret_int32(fd, ×->renew_till); - return 0; + ret_int32(fd, ×->authtime); + ret_int32(fd, ×->starttime); + ret_int32(fd, ×->endtime); + ret_int32(fd, ×->renew_till); + return 0; } static krb5_error_code store_address(int fd, krb5_address p) { - store_int32(fd, p.type); - store_data(fd, p.address); - return 0; + store_int32(fd, p.type); + store_data(fd, p.address); + return 0; } static krb5_error_code ret_address(int fd, krb5_address *adr) { - ret_int32(fd, (int32_t*)&adr->type); - ret_data(fd, &adr->address); - return 0; + ret_int32(fd, (int32_t*)&adr->type); + ret_data(fd, &adr->address); + return 0; } static krb5_error_code store_addrs(int fd, krb5_addresses p) { - int i; - store_int32(fd, p.number); - for(i = 0; inumber); - adr->addrs = ALLOC(adr->number, krb5_address); - for(i = 0; i < adr->number; i++) - ret_address(fd, &adr->addrs[i]); - return 0; + int i; + ret_int32(fd, &adr->number); + adr->addrs = ALLOC(adr->number, krb5_address); + for(i = 0; i < adr->number; i++) + ret_address(fd, &adr->addrs[i]); + return 0; } static krb5_error_code store_ticket(int fd, krb5_ticket p) { - int i; - store_data(fd, p.enc_part); - return 0; + store_data(fd, p.enc_part); + return 0; } static krb5_error_code ret_ticket(int fd, krb5_ticket *tkt) { - int i; - ret_data(fd, &tkt->enc_part); - return 0; + ret_data(fd, &tkt->enc_part); + return 0; } static krb5_error_code store_authdata(int fd, krb5_data p) { - store_data(fd, p); - return 0; + store_data(fd, p); + return 0; } static krb5_error_code ret_authdata(int fd, krb5_data *auth) { - ret_data(fd, auth); - return 0; + ret_data(fd, auth); + return 0; +} + +krb5_error_code +erase_file(const char *filename) +{ + int fd; + off_t pos; + char *p; + + fd = open(filename, O_RDWR); + if(fd < 0) + if(errno == ENOENT) + return 0; + else + return errno; + pos = lseek(fd, 0, SEEK_END); + lseek(fd, 0, SEEK_SET); + p = (char*) malloc(pos); + memset(p, 0, pos); + write(fd, p, pos); + free(p); + close(fd); + unlink(filename); + return 0; } krb5_error_code @@ -343,70 +365,48 @@ krb5_cc_initialize(krb5_context context, krb5_ccache id, krb5_principal primary_principal) { - char cc[1024]; - char *p; - int ret; - int fd; + int ret; + int fd; - char *f; + char *f; - f = krb5_cc_get_name(context, id); + f = krb5_cc_get_name(context, id); - if(ret = erase_file(f)) - return ret; + if((ret = erase_file(f))) + return ret; - fd = open(f, O_RDWR | O_CREAT | O_EXCL, 0600); - if(fd == -1) - return errno; - store_int16(fd, 0x503); - store_principal(fd, primary_principal); - close(fd); + fd = open(f, O_RDWR | O_CREAT | O_EXCL, 0600); + if(fd == -1) + return errno; + store_int16(fd, 0x503); + store_principal(fd, primary_principal); + close(fd); - return 0; + return 0; } -krb5_error_code -erase_file(const char *filename) -{ - int fd; - off_t pos; - - fd = open(filename, O_RDWR); - if(fd < 0) - if(errno == ENOENT) - return 0; - else - return errno; - pos = lseek(fd, 0, SEEK_END); - lseek(fd, 0, SEEK_SET); - for(; pos > 0; pos -= 16) - write(fd, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16); - close(fd); - unlink(filename); - return 0; -} krb5_error_code krb5_cc_destroy(krb5_context context, krb5_ccache id) { - char *f; - int ret; - f = krb5_cc_get_name(context, id); + char *f; + int ret; + f = krb5_cc_get_name(context, id); - ret = erase_file(f); + ret = erase_file(f); - krb5_free_ccache(context, id); - return ret; + krb5_free_ccache(context, id); + return ret; } krb5_error_code krb5_cc_close(krb5_context context, krb5_ccache id) { - krb5_data_free (&id->data); - free(id); - return 0; + krb5_data_free (&id->data); + free(id); + return 0; } krb5_error_code @@ -414,45 +414,45 @@ krb5_cc_store_cred(krb5_context context, krb5_ccache id, krb5_creds *creds) { - int fd; - krb5_fcache *f; + int fd; + krb5_fcache *f; - f = (krb5_fcache *)id->data.data; + f = (krb5_fcache *)id->data.data; - fd = open(f->filename, O_WRONLY | O_APPEND); - if(fd < 0) - return errno; - store_principal(fd, creds->client); - store_principal(fd, creds->server); - store_keyblock(fd, creds->session); - store_times(fd, creds->times); - store_int8(fd, 0); /* s/key */ - store_int32(fd, 0); /* flags */ - store_addrs(fd, creds->addresses); - store_authdata(fd, creds->authdata); - store_ticket(fd, creds->ticket); - store_ticket(fd, creds->second_ticket); - close(fd); - return 0; + fd = open(f->filename, O_WRONLY | O_APPEND); + if(fd < 0) + return errno; + store_principal(fd, creds->client); + store_principal(fd, creds->server); + store_keyblock(fd, creds->session); + store_times(fd, creds->times); + store_int8(fd, 0); /* s/key */ + store_int32(fd, 0); /* flags */ + store_addrs(fd, creds->addresses); + store_authdata(fd, creds->authdata); + store_ticket(fd, creds->ticket); + store_ticket(fd, creds->second_ticket); + close(fd); + return 0; /* XXX */ } static krb5_error_code krb5_cc_read_cred (int fd, krb5_creds *creds) { - int8_t dummy8; - int32_t dummy32; + int8_t dummy8; + int32_t dummy32; - return ret_principal (fd, &creds->client) || - ret_principal (fd, &creds->server) || - ret_keyblock (fd, &creds->session) || - ret_times (fd, &creds->times) || - ret_int8 (fd, &dummy8) || - ret_int32 (fd, &dummy32) || - ret_addrs (fd, &creds->addresses) || - ret_authdata (fd, &creds->authdata) || - ret_ticket (fd, &creds->ticket) || - ret_ticket (fd, &creds->second_ticket); + return ret_principal (fd, &creds->client) || + ret_principal (fd, &creds->server) || + ret_keyblock (fd, &creds->session) || + ret_times (fd, &creds->times) || + ret_int8 (fd, &dummy8) || + ret_int32 (fd, &dummy32) || + ret_addrs (fd, &creds->addresses) || + ret_authdata (fd, &creds->authdata) || + ret_ticket (fd, &creds->ticket) || + ret_ticket (fd, &creds->second_ticket); } krb5_error_code @@ -462,7 +462,7 @@ krb5_cc_retrieve_cred(krb5_context context, krb5_creds *mcreds, krb5_creds *creds) { - + return 0; /* XXX */ } krb5_error_code @@ -470,17 +470,16 @@ krb5_cc_get_principal(krb5_context context, krb5_ccache id, krb5_principal *principal) { - int fd; - char *f; - int16_t tag; + int fd; + int16_t tag; - fd = open(krb5_cc_get_name(context, id), O_RDONLY); - if(fd < 0) - return errno; - ret_int16(fd, &tag); - ret_principal(fd, principal); - close(fd); - return 0; + fd = open(krb5_cc_get_name(context, id), O_RDONLY); + if(fd < 0) + return errno; + ret_int16(fd, &tag); + ret_principal(fd, principal); + close(fd); + return 0; } krb5_error_code @@ -488,18 +487,18 @@ krb5_cc_start_seq_get (krb5_context context, krb5_ccache id, krb5_cc_cursor *cursor) { - int16_t tag; - krb5_principal principal; + int16_t tag; + krb5_principal principal; - if (id->type != 1) - abort (); - cursor->fd = open (krb5_cc_get_name (context, id), O_RDONLY); - if (cursor->fd < 0) - return errno; - ret_int16 (cursor->fd, &tag); - ret_principal (cursor->fd, &principal); - krb5_free_principal (principal); - return 0; + if (id->type != 1) + abort (); + cursor->fd = open (krb5_cc_get_name (context, id), O_RDONLY); + if (cursor->fd < 0) + return errno; + ret_int16 (cursor->fd, &tag); + ret_principal (cursor->fd, &principal); + krb5_free_principal (principal); + return 0; } krb5_error_code @@ -508,9 +507,9 @@ krb5_cc_next_cred (krb5_context context, krb5_creds *creds, krb5_cc_cursor *cursor) { - if (id->type != 1) - abort (); - return krb5_cc_read_cred (cursor->fd, creds); + if (id->type != 1) + abort (); + return krb5_cc_read_cred (cursor->fd, creds); } krb5_error_code @@ -518,9 +517,9 @@ krb5_cc_end_seq_get (krb5_context context, krb5_ccache id, krb5_cc_cursor *cursor) { - if (id->type != 1) - abort (); - return close (cursor->fd); + if (id->type != 1) + abort (); + return close (cursor->fd); } krb5_error_code @@ -528,6 +527,7 @@ krb5_cc_get_first(krb5_context context, krb5_ccache id, krb5_cc_cursor *cursor) { + return 0; /* XXX */ } krb5_error_code @@ -536,6 +536,7 @@ krb5_cc_get_next(krb5_context context, krb5_creds *creds, krb5_cc_cursor *cursor) { + return 0; /* XXX */ } krb5_error_code @@ -543,6 +544,7 @@ krb5_cc_end_get(krb5_context context, krb5_ccache id, krb5_cc_cursor *cursor) { + return 0; /* XXX */ } krb5_error_code @@ -551,6 +553,7 @@ krb5_cc_remove_cred(krb5_context context, krb5_flags which, krb5_creds *cred) { + return 0; /* XXX */ } krb5_error_code @@ -558,5 +561,6 @@ krb5_cc_set_flags(krb5_context context, krb5_ccache id, krb5_flags flags) { + return 0; /* XXX */ } diff --git a/lib/krb5/krbhst.c b/lib/krb5/krbhst.c index 2367afd9f..4c2aaf67a 100644 --- a/lib/krb5/krbhst.c +++ b/lib/krb5/krbhst.c @@ -9,7 +9,7 @@ krb5_get_krbhst (krb5_context context, char buf[BUFSIZ]; char *val; - sprintf (buf, "realms %.*s kdc", realm->length, realm->data); + sprintf (buf, "realms %.*s kdc", (int)realm->length, (char*)realm->data); err = krb5_get_config_tag (context->cf, buf, &val); if (err) return err; @@ -23,5 +23,6 @@ krb5_error_code krb5_free_krbhst (krb5_context context, char *const *hostlist) { - free (hostlist); + free ((void*)hostlist); + return 0; /* XXX */ } diff --git a/lib/krb5/send_to_kdc.c b/lib/krb5/send_to_kdc.c index e450daaff..1b7c0b813 100644 --- a/lib/krb5/send_to_kdc.c +++ b/lib/krb5/send_to_kdc.c @@ -67,7 +67,7 @@ krb5_sendto_kdc (krb5_context context, } for (i = 0; i < 3; ++i) - for (hp = hostlist; p = *hp; ++hp) { + for (hp = hostlist; (p = *hp); ++hp) { char *addr; char *colon; @@ -77,7 +77,7 @@ krb5_sendto_kdc (krb5_context context, hostent = gethostbyname (p); if (colon) *colon++ = ':'; - while (addr = *hostent->h_addr_list++) { + while ((addr = *hostent->h_addr_list++)) { struct sockaddr_in a; memset (&a, 0, sizeof(a)); diff --git a/lib/krb5/str2key.c b/lib/krb5/str2key.c index a63e584b1..b8a38b122 100644 --- a/lib/krb5/str2key.c +++ b/lib/krb5/str2key.c @@ -119,7 +119,7 @@ krb5_string_to_key (char *str, for (i = 0; i < len; i += 8) { unsigned char tmp[8]; - init (tmp, &s[i]); + init (tmp, (unsigned char*)&s[i]); if (odd == 0) { odd = 1; @@ -135,7 +135,7 @@ krb5_string_to_key (char *str, free (s); des_set_odd_parity (&tempkey); if (des_is_weak_key (&tempkey)) - xor ((char *)&tempkey, "0x000x000x000x000x000x000x000xF0"); + xor ((unsigned char *)&tempkey, (unsigned char*)"0x000x000x000x000x000x000x000xF0"); memcpy (key->contents.data, &tempkey, sizeof(tempkey)); return 0; } diff --git a/send_to_kdc.c b/send_to_kdc.c index e450daaff..1b7c0b813 100644 --- a/send_to_kdc.c +++ b/send_to_kdc.c @@ -67,7 +67,7 @@ krb5_sendto_kdc (krb5_context context, } for (i = 0; i < 3; ++i) - for (hp = hostlist; p = *hp; ++hp) { + for (hp = hostlist; (p = *hp); ++hp) { char *addr; char *colon; @@ -77,7 +77,7 @@ krb5_sendto_kdc (krb5_context context, hostent = gethostbyname (p); if (colon) *colon++ = ':'; - while (addr = *hostent->h_addr_list++) { + while ((addr = *hostent->h_addr_list++)) { struct sockaddr_in a; memset (&a, 0, sizeof(a)); diff --git a/str2key.c b/str2key.c index a63e584b1..b8a38b122 100644 --- a/str2key.c +++ b/str2key.c @@ -119,7 +119,7 @@ krb5_string_to_key (char *str, for (i = 0; i < len; i += 8) { unsigned char tmp[8]; - init (tmp, &s[i]); + init (tmp, (unsigned char*)&s[i]); if (odd == 0) { odd = 1; @@ -135,7 +135,7 @@ krb5_string_to_key (char *str, free (s); des_set_odd_parity (&tempkey); if (des_is_weak_key (&tempkey)) - xor ((char *)&tempkey, "0x000x000x000x000x000x000x000xF0"); + xor ((unsigned char *)&tempkey, (unsigned char*)"0x000x000x000x000x000x000x000xF0"); memcpy (key->contents.data, &tempkey, sizeof(tempkey)); return 0; }