diff options
Diffstat (limited to 'buffer.c')
-rw-r--r-- | buffer.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -1,4 +1,4 @@ -/* $Id: buffer.c,v 1.4 2007-12-06 09:46:21 nicm Exp $ */ +/* $Id: buffer.c,v 1.5 2008-08-07 20:20:52 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -71,7 +71,12 @@ buffer_ensure(struct buffer *b, size_t size) b->off = 0; } - ENSURE_FOR(b->base, b->space, b->size, size); + if (SIZE_MAX - b->size < size) + fatalx("size too big"); + while (b->space < b->size + size) { + b->base = xrealloc(b->base, 2, b->space); + b->space *= 2; + } } /* Adjust buffer after data appended. */ |