author | Lars Hjemli <hjemli@gmail.com> | 2008-05-18 21:10:05 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2008-05-18 21:10:05 (UTC) |
commit | 6102bcfce46fd357566941d565b95f78510af79b (patch) (side-by-side diff) | |
tree | 95794eda3bdf84e72a6fb32bfa96fb4e0cb147b9 /cache.c | |
parent | c3de425acbc4ae1190ca99e733a72da56c6a082b (diff) | |
download | cgit-6102bcfce46fd357566941d565b95f78510af79b.zip cgit-6102bcfce46fd357566941d565b95f78510af79b.tar.gz cgit-6102bcfce46fd357566941d565b95f78510af79b.tar.bz2 |
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>
-rw-r--r-- | cache.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -39,33 +39,33 @@ struct cache_slot { * (part of) the content of the cache file. Return 0 on success * and errno otherwise. */ static int open_slot(struct cache_slot *slot) { char *bufz; int bufkeylen = -1; slot->cache_fd = open(slot->cache_name, O_RDONLY); if (slot->cache_fd == -1) return errno; if (fstat(slot->cache_fd, &slot->cache_st)) 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); if (bufz) bufkeylen = bufz - slot->buf; slot->match = bufkeylen == slot->keylen && !memcmp(slot->key, slot->buf, bufkeylen + 1); return 0; } /* Close the active cache slot */ static void close_slot(struct cache_slot *slot) { if (slot->cache_fd > 0) { |