From 100df3425037f6dbb20358a584d553adc22904ea Mon Sep 17 00:00:00 2001 From: Johan Danielsson Date: Thu, 14 Aug 1997 19:28:56 +0000 Subject: [PATCH] Fix reallocation bug. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2974 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/store_emem.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/krb5/store_emem.c b/lib/krb5/store_emem.c index 7bf8079be..d399d03b4 100644 --- a/lib/krb5/store_emem.c +++ b/lib/krb5/store_emem.c @@ -63,8 +63,16 @@ emem_store(krb5_storage *sp, void *data, size_t size) { emem_storage *s = (emem_storage*)sp->data; if(size > s->base + s->size - s->ptr){ - s->size = 2 * (size + (s->ptr - s->base)); /* XXX */ - s->base = realloc(s->base, s->size); + void *base; + size_t sz, off; + sz = 2 * (size + (s->ptr - s->base)); /* XXX */ + off = s->ptr - s->base; + base = realloc(s->base, sz); + if(base == NULL) + return 0; + s->size = sz; + s->base = base; + s->ptr = (char*)base + off; } memmove(s->ptr, data, size); sp->seek(sp, size, SEEK_CUR);