summaryrefslogtreecommitdiffabout
path: root/cache.c
authorLars Hjemli <hjemli@gmail.com>2008-05-18 21:10:05 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2008-05-18 21:10:05 (UTC)
commit6102bcfce46fd357566941d565b95f78510af79b (patch) (unidiff)
tree95794eda3bdf84e72a6fb32bfa96fb4e0cb147b9 /cache.c
parentc3de425acbc4ae1190ca99e733a72da56c6a082b (diff)
downloadcgit-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>
Diffstat (limited to 'cache.c') (more/less context) (ignore whitespace changes)
-rw-r--r--cache.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/cache.c b/cache.c
index b701e13..add647e 100644
--- a/cache.c
+++ b/cache.c
@@ -43,25 +43,25 @@ static int open_slot(struct cache_slot *slot)
43{ 43{
44 char *bufz; 44 char *bufz;
45 int bufkeylen = -1; 45 int bufkeylen = -1;
46 46
47 slot->cache_fd = open(slot->cache_name, O_RDONLY); 47 slot->cache_fd = open(slot->cache_name, O_RDONLY);
48 if (slot->cache_fd == -1) 48 if (slot->cache_fd == -1)
49 return errno; 49 return errno;
50 50
51 if (fstat(slot->cache_fd, &slot->cache_st)) 51 if (fstat(slot->cache_fd, &slot->cache_st))
52 return errno; 52 return errno;
53 53
54 slot->bufsize = read(slot->cache_fd, slot->buf, sizeof(slot->buf)); 54 slot->bufsize = read(slot->cache_fd, slot->buf, sizeof(slot->buf));
55 if (slot->bufsize == 0) 55 if (slot->bufsize < 0)
56 return errno; 56 return errno;
57 57
58 bufz = memchr(slot->buf, 0, slot->bufsize); 58 bufz = memchr(slot->buf, 0, slot->bufsize);
59 if (bufz) 59 if (bufz)
60 bufkeylen = bufz - slot->buf; 60 bufkeylen = bufz - slot->buf;
61 61
62 slot->match = bufkeylen == slot->keylen && 62 slot->match = bufkeylen == slot->keylen &&
63 !memcmp(slot->key, slot->buf, bufkeylen + 1); 63 !memcmp(slot->key, slot->buf, bufkeylen + 1);
64 64
65 return 0; 65 return 0;
66} 66}
67 67