diff options
Diffstat (limited to 'crypto/heimdal/lib/krb5/store_emem.c')
-rw-r--r-- | crypto/heimdal/lib/krb5/store_emem.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/crypto/heimdal/lib/krb5/store_emem.c b/crypto/heimdal/lib/krb5/store_emem.c index 526cf32..b59a647 100644 --- a/crypto/heimdal/lib/krb5/store_emem.c +++ b/crypto/heimdal/lib/krb5/store_emem.c @@ -34,7 +34,7 @@ #include "krb5_locl.h" #include "store-int.h" -RCSID("$Id: store_emem.c,v 1.13 2002/10/21 15:36:23 joda Exp $"); +RCSID("$Id: store_emem.c 21745 2007-07-31 16:11:25Z lha $"); typedef struct emem_storage{ unsigned char *base; @@ -112,16 +112,27 @@ emem_free(krb5_storage *sp) free(s->base); } -krb5_storage * +krb5_storage * KRB5_LIB_FUNCTION krb5_storage_emem(void) { krb5_storage *sp = malloc(sizeof(krb5_storage)); + if (sp == NULL) + return NULL; emem_storage *s = malloc(sizeof(*s)); + if (s == NULL) { + free(sp); + return NULL; + } sp->data = s; sp->flags = 0; sp->eof_code = HEIM_ERR_EOF; s->size = 1024; s->base = malloc(s->size); + if (s->base == NULL) { + free(sp); + free(s); + return NULL; + } s->len = 0; s->ptr = s->base; sp->fetch = emem_fetch; |