From 2a54d3bcb131ca4abfb70cc0f1b38902beffa81a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Sat, 23 Aug 2003 20:15:39 +0000 Subject: [PATCH] (grow_descr): increment the size after we succeed to allocate the space git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@12617 ec53bebd-3082-4978-b11e-865c3cabbd6b --- kdc/connect.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/kdc/connect.c b/kdc/connect.c index 5b81410f2..8e65a200e 100644 --- a/kdc/connect.c +++ b/kdc/connect.c @@ -547,21 +547,23 @@ grow_descr (struct descr *d, size_t n) { if (d->size - d->len < n) { unsigned char *tmp; + size_t grow; - d->size += max(1024, d->len + n); - if (d->size >= max_request) { + grow = max(1024, d->len + n); + if (d->size + grow > max_request) { kdc_log(0, "Request exceeds max request size (%lu bytes).", - (unsigned long)d->size); + (unsigned long)d->size + grow); clear_descr(d); return -1; } - tmp = realloc (d->buf, d->size); + tmp = realloc (d->buf, d->size + grow); if (tmp == NULL) { kdc_log(0, "Failed to re-allocate %lu bytes.", - (unsigned long)d->size); + (unsigned long)d->size + grow); clear_descr(d); return -1; } + d->size += grow; d->buf = tmp; } return 0;