From b6869bc38cb9ac391636d02218e39e80e3870b2a Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Mon, 26 Jul 1999 00:49:56 +0000 Subject: [PATCH] lots of changes from size_t to ssize_t (krb5_ret_stringz): check return value from realloc git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@6553 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/store.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/lib/krb5/store.c b/lib/krb5/store.c index 3fdf6e637..e413786e4 100644 --- a/lib/krb5/store.c +++ b/lib/krb5/store.c @@ -58,7 +58,7 @@ krb5_storage_is_flags(krb5_storage *sp, krb5_flags flags) return (sp->flags & flags) == flags; } -size_t +ssize_t _krb5_put_int(void *buffer, unsigned long value, size_t size) { unsigned char *p = buffer; @@ -70,7 +70,7 @@ _krb5_put_int(void *buffer, unsigned long value, size_t size) return size; } -size_t +ssize_t _krb5_get_int(void *buffer, unsigned long *value, size_t size) { unsigned char *p = buffer; @@ -284,10 +284,11 @@ krb5_store_stringz(krb5_storage *sp, char *s) { size_t len = strlen(s) + 1; - size_t ret; + ssize_t ret; + ret = sp->store(sp, s, len); if(ret != len) { - if((int)ret < 0) + if(ret < 0) return ret; else return KRB5_CC_END; @@ -302,10 +303,18 @@ krb5_ret_stringz(krb5_storage *sp, char c; char *s = NULL; size_t len = 0; - size_t ret; + ssize_t ret; + while((ret = sp->fetch(sp, &c, 1)) == 1){ + char *tmp; + len++; - s = realloc(s, len); + tmp = realloc (s, len); + if (tmp == NULL) { + free (s); + return ENOMEM; + } + s = tmp; s[len - 1] = c; if(c == 0) break;