about summary refs log tree commit diff
path: root/blaze822.c
diff options
context:
space:
mode:
Diffstat (limited to 'blaze822.c')
-rw-r--r--blaze822.c7
1 files changed, 4 insertions, 3 deletions
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 {