diff --git a/sha1_file.c b/sha1_file.c
index 34013014442e18bd02ae0ce33df34a89ec8d6171..833f5b9b5820ce60f9fb99f6c9bcdb313ae8fca9 100644 (file)
--- a/sha1_file.c
+++ b/sha1_file.c
while (c & 0x80) {
if (len <= used || bitsizeof(long) <= shift) {
error("bad object header");
- return 0;
+ size = used = 0;
+ break;
}
c = buf[used++];
size += (c & 0x7f) << shift;
return 0;
}
-static int is_pack_valid(struct packed_git *p)
+int is_pack_valid(struct packed_git *p)
{
/* An already open pack is known to be valid. */
if (p->pack_fd != -1)
* was loaded!
*/
if (!is_pack_valid(p)) {
- error("packfile %s cannot be accessed", p->pack_name);
+ warning("packfile %s cannot be accessed", p->pack_name);
goto next;
}
e->offset = offset;