[PATCH] sha1_file: Remove relative entries limitation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



link_alt_odb_entries() will be called recursively if alternates has
valid object store paths, and to avoid nesting too deep, the
recursive depth is limited to 5, this limitation is reasonable and
safe for dead-loop reference situation.

There is another limitation in this function to only permit the 1st
level alternates has relative paths, but there is no foreseeable
greater risk using relative paths in 2nd/3rd... level alternates than
using absolute paths, in addition to we already have max depth 5
limitation, we can safely remove this limitation.

Moreover removing this limitation will make below two usage workable.

usage1: base-repos has relative path in the alternates
        %>git clone --reference base-repos src dest
usage2: src2 has relative path to point src1, src1 has relative path
    	to point src
        %>git clone src2 dest

Signed-off-by: Hui Wang <jason77.wang@xxxxxxxxx>
---
 sha1_file.c |   13 ++++---------
 1 files changed, 4 insertions(+), 9 deletions(-)

diff --git a/sha1_file.c b/sha1_file.c
index f7c3408..4130ca0 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -332,15 +332,10 @@ static void link_alt_odb_entries(const char *alt, const char *ep, int sep,
 		}
 		while (cp < ep && *cp != sep)
 			cp++;
-		if (last != cp) {
-			if (!is_absolute_path(last) && depth) {
-				error("%s: ignoring relative alternate object store %s",
-						relative_base, last);
-			} else {
-				link_alt_odb_entry(last, cp - last,
-						relative_base, depth);
-			}
-		}
+		if (last != cp)
+			link_alt_odb_entry(last, cp - last,
+					relative_base, depth);
+
 		while (cp < ep && *cp == sep)
 			cp++;
 		last = cp;
-- 
1.7.6

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]