summaryrefslogtreecommitdiffstats
path: root/fsck.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2024-05-25 01:58:11 +0200
committerJunio C Hamano <gitster@pobox.com>2024-05-25 01:58:11 +0200
commit3c562ef2e666db76f256e04755983c9037a0c9e5 (patch)
tree28719a195aaf49d50dbe45e4e78b7c6bc37d55fb /fsck.c
parentGit 2.43.4 (diff)
parentMerge branch 'fixes/2.45.1/2.41' into fixes/2.45.1/2.42 (diff)
downloadgit-3c562ef2e666db76f256e04755983c9037a0c9e5.tar.xz
git-3c562ef2e666db76f256e04755983c9037a0c9e5.zip
Merge branch 'fixes/2.45.1/2.42' into fixes/2.45.1/2.43
* fixes/2.45.1/2.42: Revert "fsck: warn about symlink pointing inside a gitdir" Revert "Add a helper function to compare file contents" clone: drop the protections where hooks aren't run tests: verify that `clone -c core.hooksPath=/dev/null` works again Revert "core.hooksPath: add some protection while cloning" init: use the correct path of the templates directory again hook: plug a new memory leak ci: stop installing "gcc-13" for osx-gcc ci: avoid bare "gcc" for osx-gcc job ci: drop mention of BREW_INSTALL_PACKAGES variable send-email: avoid creating more than one Term::ReadLine object send-email: drop FakeTerm hack
Diffstat (limited to 'fsck.c')
-rw-r--r--fsck.c56
1 files changed, 0 insertions, 56 deletions
diff --git a/fsck.c b/fsck.c
index 3592c7bda8..1ad02fcdfa 100644
--- a/fsck.c
+++ b/fsck.c
@@ -657,8 +657,6 @@ static int fsck_tree(const struct object_id *tree_oid,
retval += report(options, tree_oid, OBJ_TREE,
FSCK_MSG_MAILMAP_SYMLINK,
".mailmap is a symlink");
- oidset_insert(&options->symlink_targets_found,
- entry_oid);
}
if ((backslash = strchr(name, '\\'))) {
@@ -1299,56 +1297,6 @@ static int fsck_blob(const struct object_id *oid, const char *buf,
}
}
- if (oidset_contains(&options->symlink_targets_found, oid)) {
- const char *ptr = buf;
- const struct object_id *reported = NULL;
-
- oidset_insert(&options->symlink_targets_done, oid);
-
- if (!buf || size > PATH_MAX) {
- /*
- * A missing buffer here is a sign that the caller found the
- * blob too gigantic to load into memory. Let's just consider
- * that an error.
- */
- return report(options, oid, OBJ_BLOB,
- FSCK_MSG_SYMLINK_TARGET_LENGTH,
- "symlink target too long");
- }
-
- while (!reported && ptr) {
- const char *p = ptr;
- char c, *slash = strchrnul(ptr, '/');
- char *backslash = memchr(ptr, '\\', slash - ptr);
-
- c = *slash;
- *slash = '\0';
-
- while (!reported && backslash) {
- *backslash = '\0';
- if (is_ntfs_dotgit(p))
- ret |= report(options, reported = oid, OBJ_BLOB,
- FSCK_MSG_SYMLINK_POINTS_TO_GIT_DIR,
- "symlink target points to git dir");
- *backslash = '\\';
- p = backslash + 1;
- backslash = memchr(p, '\\', slash - p);
- }
- if (!reported && is_ntfs_dotgit(p))
- ret |= report(options, reported = oid, OBJ_BLOB,
- FSCK_MSG_SYMLINK_POINTS_TO_GIT_DIR,
- "symlink target points to git dir");
-
- if (!reported && is_hfs_dotgit(ptr))
- ret |= report(options, reported = oid, OBJ_BLOB,
- FSCK_MSG_SYMLINK_POINTS_TO_GIT_DIR,
- "symlink target points to git dir");
-
- *slash = c;
- ptr = c ? slash + 1 : NULL;
- }
- }
-
return ret;
}
@@ -1447,10 +1395,6 @@ int fsck_finish(struct fsck_options *options)
FSCK_MSG_GITATTRIBUTES_MISSING, FSCK_MSG_GITATTRIBUTES_BLOB,
options, ".gitattributes");
- ret |= fsck_blobs(&options->symlink_targets_found, &options->symlink_targets_done,
- FSCK_MSG_SYMLINK_TARGET_MISSING, FSCK_MSG_SYMLINK_TARGET_BLOB,
- options, "<symlink-target>");
-
return ret;
}