From 7636f0977cff47e152594902b69d99d9f0fc0232 Mon Sep 17 00:00:00 2001 From: Christian Neukirchen Date: Fri, 29 Jul 2016 15:41:41 +0200 Subject: blaze822: blaze822_file: allocate enough space for read --- blaze822.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'blaze822.c') diff --git a/blaze822.c b/blaze822.c index f8b5812..69f317d 100644 --- 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 { -- cgit 1.4.1