[PATCH] Catch empty pathnames in trees during fsck

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

 



Released versions of fast-import have been able to create a tree that
contains files or subtrees that contain no name.  Unfortunately these
trees aren't valid, but people may have actually tried to create them
due to bugs in import-tars.perl or their own fast-import frontend.

We now look for this unusual condition and warn the user if at
least one of their tree objects contains the problem.

Signed-off-by: Shawn O. Pearce <spearce@xxxxxxxxxxx>
---
 builtin-fsck.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/builtin-fsck.c b/builtin-fsck.c
index fcb8ed5..44ce629 100644
--- a/builtin-fsck.c
+++ b/builtin-fsck.c
@@ -219,6 +219,7 @@ static int fsck_tree(struct tree *item)
 {
 	int retval;
 	int has_full_path = 0;
+	int has_empty_name = 0;
 	int has_zero_pad = 0;
 	int has_bad_modes = 0;
 	int has_dup_entries = 0;
@@ -242,6 +243,8 @@ static int fsck_tree(struct tree *item)
 
 		if (strchr(name, '/'))
 			has_full_path = 1;
+		if (!*name)
+			has_empty_name = 1;
 		has_zero_pad |= *(char *)desc.buffer == '0';
 		update_tree_entry(&desc);
 
@@ -291,6 +294,9 @@ static int fsck_tree(struct tree *item)
 	if (has_full_path) {
 		objwarning(&item->object, "contains full pathnames");
 	}
+	if (has_empty_name) {
+		objwarning(&item->object, "contains empty pathname");
+	}
 	if (has_zero_pad) {
 		objwarning(&item->object, "contains zero-padded file modes");
 	}
-- 
1.5.1.1.135.gf948
-
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]