From 08f3d6caf4bc1e3695e04c85f1f7d3d0a4dd1554 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nguy=E1=BB=85n=20Th=C3=A1i=20Ng=E1=BB=8Dc=20Duy?= Date: Wed, 12 Dec 2012 19:23:05 +0700 Subject: [PATCH] tree cache: loosen negative entry count check While C Git has been writing entry count -1 (ie. never other negative numbers) as invalid since day 1, it accepts all negative entry counts as invalid. JGit follows the same rule. libgit2 should also follow, or the index that works with C Git or JGit may someday be rejected by libgit2. Other reimplementations like dulwich and grit have not bothered with parsing or writing tree cache. --- src/tree-cache.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tree-cache.c b/src/tree-cache.c index 8d186d2fb..d6ecfbcee 100644 --- a/src/tree-cache.c +++ b/src/tree-cache.c @@ -104,7 +104,7 @@ static int read_tree_internal(git_tree_cache **out, tree->name[name_len] = '\0'; /* Blank-terminated ASCII decimal number of entries in this tree */ - if (git__strtol32(&count, buffer, &buffer, 10) < 0 || count < -1) + if (git__strtol32(&count, buffer, &buffer, 10) < 0) goto corrupted; tree->entries = count;