- b->buffer = realloc(b->buffer, b->bufsize);
- b->buf_end = b->buffer + b->buflen;
+ new_buffer = realloc(b->buffer, b->bufsize);
+ if (new_buffer) {
+ b->buffer = new_buffer;
+ memset(b->buffer + old_size, 0, b->bufsize - old_size);
+ b->buf_end = b->buffer + b->buflen;
+ }
+ else
+ b->buffer = NULL;