mblaze

Unix utilities to deal with Maildir - my mirror
git clone https://pi.duncano.de/git/mblaze.git
Log | Files | Refs | README | COPYING

commit 7636f0977cff47e152594902b69d99d9f0fc0232
parent be2ca1ba42029b80cffff78afee77abf9831131a
Author: Christian Neukirchen <chneukirchen@gmail.com>
Date:   Fri, 29 Jul 2016 15:41:41 +0200

blaze822: blaze822_file: allocate enough space for read

Diffstat:
blaze822.c | 7++++---
1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/blaze822.c b/blaze822.c @@ -454,19 +454,20 @@ blaze822_file(char *file) goto error; if (S_ISFIFO(st.st_mode)) { // unbounded read, grow buffer - ssize_t bufalloc = 16384; + const ssize_t bufblk = 16384; + ssize_t bufalloc = bufblk; buf = malloc(bufalloc); if (!buf) goto error; do { - if (bufalloc <= rd) { + if (bufalloc < rd + bufblk) { bufalloc *= 2; buf = realloc(buf, bufalloc); if (!buf) goto error; } - if ((n = read(fd, buf + rd, 16384)) < 0) { + if ((n = read(fd, buf + rd, bufblk)) < 0) { if (errno == EINTR) { continue; } else {