cache.c: read(2) returns -1 on error, not 0

Noticed-by: Jim Meyering <jim@meyering.net>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
diff --git a/cache.c b/cache.c
index b701e13..add647e 100644
--- a/cache.c
+++ b/cache.c
@@ -52,7 +52,7 @@
 		return errno;
 
 	slot->bufsize = read(slot->cache_fd, slot->buf, sizeof(slot->buf));
-	if (slot->bufsize == 0)
+	if (slot->bufsize < 0)
 		return errno;
 
 	bufz = memchr(slot->buf, 0, slot->bufsize);