]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'jk/asan-bonanza'
authorJunio C Hamano <gitster@pobox.com>
Mon, 1 Dec 2025 02:31:41 +0000 (18:31 -0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 1 Dec 2025 02:31:41 +0000 (18:31 -0800)
Various issues detected by Asan have been corrected.

* jk/asan-bonanza:
  t: enable ASan's strict_string_checks option
  fsck: avoid parse_timestamp() on buffer that isn't NUL-terminated
  fsck: remove redundant date timestamp check
  fsck: avoid strcspn() in fsck_ident()
  fsck: assert newline presence in fsck_ident()
  cache-tree: avoid strtol() on non-string buffer
  Makefile: turn on NO_MMAP when building with ASan
  pack-bitmap: handle name-hash lookups in incremental bitmaps
  compat/mmap: mark unused argument in git_munmap()

1  2 
Makefile
cache-tree.c
fsck.c
meson.build
pack-bitmap.c
t/test-lib.sh

diff --cc Makefile
Simple merge
diff --cc cache-tree.c
Simple merge
diff --cc fsck.c
index 341e100d24ece03992d9b10d6c91c5bea089b752,ec45f786d6ed7461cfbf404ef2a991bcc680bb4e..8e8083e7c6e42ab4356bd67602e61a367b207f79
--- 1/fsck.c
--- 2/fsck.c
+++ b/fsck.c
@@@ -1065,26 -1093,8 +1094,26 @@@ int fsck_tag_standalone(const struct ob
                        goto done;
        }
        else
-               ret = fsck_ident(&buffer, oid, OBJ_TAG, options);
+               ret = fsck_ident(&buffer, buffer_end, oid, OBJ_TAG, options);
  
 +      if (buffer < buffer_end && (skip_prefix(buffer, "gpgsig ", &buffer) || skip_prefix(buffer, "gpgsig-sha256 ", &buffer))) {
 +              eol = memchr(buffer, '\n', buffer_end - buffer);
 +              if (!eol) {
 +                      ret = report(options, oid, OBJ_TAG, FSCK_MSG_BAD_GPGSIG, "invalid format - unexpected end after 'gpgsig' or 'gpgsig-sha256' line");
 +                      goto done;
 +              }
 +              buffer = eol + 1;
 +
 +              while (buffer < buffer_end && starts_with(buffer, " ")) {
 +                      eol = memchr(buffer, '\n', buffer_end - buffer);
 +                      if (!eol) {
 +                              ret = report(options, oid, OBJ_TAG, FSCK_MSG_BAD_HEADER_CONTINUATION, "invalid format - unexpected end in 'gpgsig' or 'gpgsig-sha256' continuation line");
 +                              goto done;
 +                      }
 +                      buffer = eol + 1;
 +              }
 +      }
 +
        if (buffer < buffer_end && !starts_with(buffer, "\n")) {
                /*
                 * The verify_headers() check will allow
diff --cc meson.build
Simple merge
diff --cc pack-bitmap.c
Simple merge
diff --cc t/test-lib.sh
Simple merge