From 211a56489b8a0c56e8ac0c9f16f1da28796697f3 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Mon, 6 Mar 2006 18:23:41 +0000 Subject: [PATCH] (ef_open): Zero cache size (empty EFF_MEM file) can lead to null cache on some systems, which confuses assertions. Force non-zero size. --- src/lib/common/file.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lib/common/file.c b/src/lib/common/file.c index ba709093..4d670461 100644 --- a/src/lib/common/file.c +++ b/src/lib/common/file.c @@ -114,12 +114,15 @@ ef_open(int type, int how) if (how & EFF_MEM) ep->csize = ep->fids; else - ep->csize = MAX(1, blksize(fd) / ep->size); + ep->csize = blksize(fd) / ep->size; + /* 0 could lead to null cache, which confuses assertions */ + if (!ep->csize) + ep->csize++; size = ep->csize * ep->size; if (CANT_HAPPEN(ep->cache)) free(ep->cache); ep->cache = malloc(size); - if (ep->cache == NULL && size) { + if (ep->cache == NULL) { logerror("Can't open %s: out of memory", ep->file); close(fd); return 0;