avoid infinite loop in read_istream_loose
[gitweb.git] / sha1_file.c
index 16967d3b9a86dc481a5161f0a98220e05790ca01..0b99f336e62256606f3fffc3eaf0ee7727d428c5 100644 (file)
@@ -1266,6 +1266,10 @@ int check_sha1_signature(const unsigned char *sha1, void *map,
                char buf[1024 * 16];
                ssize_t readlen = read_istream(st, buf, sizeof(buf));
 
+               if (readlen < 0) {
+                       close_istream(st);
+                       return -1;
+               }
                if (!readlen)
                        break;
                git_SHA1_Update(&c, buf, readlen);