Revision 34ace8bad02bb14ecc5b631f7e3daaa7a9bba7d9 authored by Patrick Steinhardt on 01 December 2022, 14:45:27 UTC, committed by Junio C Hamano on 05 December 2022, 06:14:16 UTC
It is possible to trigger an integer overflow when parsing attribute names when there are more than 2^31 of them for a single pattern. This can either lead to us dying due to trying to request too many bytes: blob=$(perl -e 'print "f" . " a=" x 2147483649' | git hash-object -w --stdin) git update-index --add --cacheinfo 100644,$blob,.gitattributes git attr-check --all file ================================================================= ==1022==ERROR: AddressSanitizer: requested allocation size 0xfffffff800000032 (0xfffffff800001038 after adjustments for alignment, red zones etc.) exceeds maximum supported size of 0x10000000000 (thread T0) #0 0x7fd3efabf411 in __interceptor_calloc /usr/src/debug/gcc/libsanitizer/asan/asan_malloc_linux.cpp:77 #1 0x5563a0a1e3d3 in xcalloc wrapper.c:150 #2 0x5563a058d005 in parse_attr_line attr.c:384 #3 0x5563a058e661 in handle_attr_line attr.c:660 #4 0x5563a058eddb in read_attr_from_index attr.c:769 #5 0x5563a058ef12 in read_attr attr.c:797 #6 0x5563a058f24c in bootstrap_attr_stack attr.c:867 #7 0x5563a058f4a3 in prepare_attr_stack attr.c:902 #8 0x5563a05905da in collect_some_attrs attr.c:1097 #9 0x5563a059093d in git_all_attrs attr.c:1128 #10 0x5563a02f636e in check_attr builtin/check-attr.c:67 #11 0x5563a02f6c12 in cmd_check_attr builtin/check-attr.c:183 #12 0x5563a02aa993 in run_builtin git.c:466 #13 0x5563a02ab397 in handle_builtin git.c:721 #14 0x5563a02abb2b in run_argv git.c:788 #15 0x5563a02ac991 in cmd_main git.c:926 #16 0x5563a05432bd in main common-main.c:57 #17 0x7fd3ef82228f (/usr/lib/libc.so.6+0x2328f) ==1022==HINT: if you don't care about these errors you may set allocator_may_return_null=1 SUMMARY: AddressSanitizer: allocation-size-too-big /usr/src/debug/gcc/libsanitizer/asan/asan_malloc_linux.cpp:77 in __interceptor_calloc ==1022==ABORTING Or, much worse, it can lead to an out-of-bounds write because we underallocate and then memcpy(3P) into an array: perl -e ' print "A " . "\rh="x2000000000; print "\rh="x2000000000; print "\rh="x294967294 . "\n" ' >.gitattributes git add .gitattributes git commit -am "evil attributes" $ git clone --quiet /path/to/repo ================================================================= ==15062==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x602000002550 at pc 0x5555559884d5 bp 0x7fffffffbc60 sp 0x7fffffffbc58 WRITE of size 8 at 0x602000002550 thread T0 #0 0x5555559884d4 in parse_attr_line attr.c:393 #1 0x5555559884d4 in handle_attr_line attr.c:660 #2 0x555555988902 in read_attr_from_index attr.c:784 #3 0x555555988902 in read_attr_from_index attr.c:747 #4 0x555555988a1d in read_attr attr.c:800 #5 0x555555989b0c in bootstrap_attr_stack attr.c:882 #6 0x555555989b0c in prepare_attr_stack attr.c:917 #7 0x555555989b0c in collect_some_attrs attr.c:1112 #8 0x55555598b141 in git_check_attr attr.c:1126 #9 0x555555a13004 in convert_attrs convert.c:1311 #10 0x555555a95e04 in checkout_entry_ca entry.c:553 #11 0x555555d58bf6 in checkout_entry entry.h:42 #12 0x555555d58bf6 in check_updates unpack-trees.c:480 #13 0x555555d5eb55 in unpack_trees unpack-trees.c:2040 #14 0x555555785ab7 in checkout builtin/clone.c:724 #15 0x555555785ab7 in cmd_clone builtin/clone.c:1384 #16 0x55555572443c in run_builtin git.c:466 #17 0x55555572443c in handle_builtin git.c:721 #18 0x555555727872 in run_argv git.c:788 #19 0x555555727872 in cmd_main git.c:926 #20 0x555555721fa0 in main common-main.c:57 #21 0x7ffff73f1d09 in __libc_start_main ../csu/libc-start.c:308 #22 0x555555723f39 in _start (git+0x1cff39) 0x602000002552 is located 0 bytes to the right of 2-byte region [0x602000002550,0x602000002552) allocated by thread T0 here: #0 0x7ffff768c037 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154 #1 0x555555d7fff7 in xcalloc wrapper.c:150 #2 0x55555598815f in parse_attr_line attr.c:384 #3 0x55555598815f in handle_attr_line attr.c:660 #4 0x555555988902 in read_attr_from_index attr.c:784 #5 0x555555988902 in read_attr_from_index attr.c:747 #6 0x555555988a1d in read_attr attr.c:800 #7 0x555555989b0c in bootstrap_attr_stack attr.c:882 #8 0x555555989b0c in prepare_attr_stack attr.c:917 #9 0x555555989b0c in collect_some_attrs attr.c:1112 #10 0x55555598b141 in git_check_attr attr.c:1126 #11 0x555555a13004 in convert_attrs convert.c:1311 #12 0x555555a95e04 in checkout_entry_ca entry.c:553 #13 0x555555d58bf6 in checkout_entry entry.h:42 #14 0x555555d58bf6 in check_updates unpack-trees.c:480 #15 0x555555d5eb55 in unpack_trees unpack-trees.c:2040 #16 0x555555785ab7 in checkout builtin/clone.c:724 #17 0x555555785ab7 in cmd_clone builtin/clone.c:1384 #18 0x55555572443c in run_builtin git.c:466 #19 0x55555572443c in handle_builtin git.c:721 #20 0x555555727872 in run_argv git.c:788 #21 0x555555727872 in cmd_main git.c:926 #22 0x555555721fa0 in main common-main.c:57 #23 0x7ffff73f1d09 in __libc_start_main ../csu/libc-start.c:308 SUMMARY: AddressSanitizer: heap-buffer-overflow attr.c:393 in parse_attr_line Shadow bytes around the buggy address: 0x0c047fff8450: fa fa 00 02 fa fa 00 07 fa fa fd fd fa fa 00 00 0x0c047fff8460: fa fa 02 fa fa fa fd fd fa fa 00 06 fa fa 05 fa 0x0c047fff8470: fa fa fd fd fa fa 00 02 fa fa 06 fa fa fa 05 fa 0x0c047fff8480: fa fa 07 fa fa fa fd fd fa fa 00 01 fa fa 00 02 0x0c047fff8490: fa fa 00 03 fa fa 00 fa fa fa 00 01 fa fa 00 03 =>0x0c047fff84a0: fa fa 00 01 fa fa 00 02 fa fa[02]fa fa fa fa fa 0x0c047fff84b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c047fff84c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c047fff84d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c047fff84e0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c047fff84f0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb Shadow gap: cc ==15062==ABORTING Fix this bug by using `size_t` instead to count the number of attributes so that this value cannot reasonably overflow without running out of memory before already. Reported-by: Markus Vervier <markus.vervier@x41-dsec.de> Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 2455720
File | Mode | Size |
---|---|---|
.github | ||
Documentation | ||
block-sha1 | ||
builtin | ||
ci | ||
compat | ||
contrib | ||
ewah | ||
git-gui | ||
gitk-git | ||
gitweb | ||
mergetools | ||
negotiator | ||
perl | ||
po | ||
ppc | ||
refs | ||
sha1collisiondetection @ 855827c | ||
sha1dc | ||
sha256 | ||
t | ||
templates | ||
trace2 | ||
vcs-svn | ||
xdiff | ||
.cirrus.yml | -rw-r--r-- | 312 bytes |
.clang-format | -rw-r--r-- | 5.0 KB |
.editorconfig | -rw-r--r-- | 288 bytes |
.gitattributes | -rw-r--r-- | 544 bytes |
.gitignore | -rw-r--r-- | 3.4 KB |
.gitmodules | -rw-r--r-- | 153 bytes |
.mailmap | -rw-r--r-- | 16.6 KB |
.travis.yml | -rw-r--r-- | 1.0 KB |
.tsan-suppressions | -rw-r--r-- | 689 bytes |
CODE_OF_CONDUCT.md | -rw-r--r-- | 3.9 KB |
COPYING | -rw-r--r-- | 18.3 KB |
GIT-VERSION-GEN | -rwxr-xr-x | 752 bytes |
INSTALL | -rw-r--r-- | 9.8 KB |
LGPL-2.1 | -rw-r--r-- | 26.2 KB |
Makefile | -rw-r--r-- | 101.6 KB |
README.md | -rw-r--r-- | 3.2 KB |
RelNotes | l--------- | 33 bytes |
abspath.c | -rw-r--r-- | 6.4 KB |
aclocal.m4 | -rw-r--r-- | 1.4 KB |
add-interactive.c | -rw-r--r-- | 30.4 KB |
add-interactive.h | -rw-r--r-- | 965 bytes |
add-patch.c | -rw-r--r-- | 50.0 KB |
advice.c | -rw-r--r-- | 9.7 KB |
advice.h | -rw-r--r-- | 2.9 KB |
alias.c | -rw-r--r-- | 2.3 KB |
alias.h | -rw-r--r-- | 310 bytes |
alloc.c | -rw-r--r-- | 3.2 KB |
alloc.h | -rw-r--r-- | 527 bytes |
apply.c | -rw-r--r-- | 131.1 KB |
apply.h | -rw-r--r-- | 5.3 KB |
archive-tar.c | -rw-r--r-- | 12.3 KB |
archive-zip.c | -rw-r--r-- | 17.1 KB |
archive.c | -rw-r--r-- | 17.8 KB |
archive.h | -rw-r--r-- | 1.4 KB |
attr.c | -rw-r--r-- | 28.1 KB |
attr.h | -rw-r--r-- | 6.3 KB |
banned.h | -rw-r--r-- | 1.1 KB |
base85.c | -rw-r--r-- | 2.8 KB |
bisect.c | -rw-r--r-- | 30.1 KB |
bisect.h | -rw-r--r-- | 2.2 KB |
blame.c | -rw-r--r-- | 83.5 KB |
blame.h | -rw-r--r-- | 5.6 KB |
blob.c | -rw-r--r-- | 461 bytes |
blob.h | -rw-r--r-- | 688 bytes |
bloom.c | -rw-r--r-- | 8.0 KB |
bloom.h | -rw-r--r-- | 3.0 KB |
branch.c | -rw-r--r-- | 10.1 KB |
branch.h | -rw-r--r-- | 3.0 KB |
builtin.h | -rw-r--r-- | 12.3 KB |
bulk-checkin.c | -rw-r--r-- | 7.3 KB |
bulk-checkin.h | -rw-r--r-- | 323 bytes |
bundle.c | -rw-r--r-- | 14.4 KB |
bundle.h | -rw-r--r-- | 894 bytes |
cache-tree.c | -rw-r--r-- | 20.8 KB |
cache-tree.h | -rw-r--r-- | 2.1 KB |
cache.h | -rw-r--r-- | 65.8 KB |
chdir-notify.c | -rw-r--r-- | 1.8 KB |
chdir-notify.h | -rw-r--r-- | 2.5 KB |
check-builtins.sh | -rwxr-xr-x | 596 bytes |
check_bindir | -rwxr-xr-x | 374 bytes |
checkout.c | -rw-r--r-- | 1.9 KB |
checkout.h | -rw-r--r-- | 369 bytes |
color.c | -rw-r--r-- | 9.6 KB |
color.h | -rw-r--r-- | 4.8 KB |
column.c | -rw-r--r-- | 9.4 KB |
column.h | -rw-r--r-- | 1.4 KB |
combine-diff.c | -rw-r--r-- | 43.0 KB |
command-list.txt | -rw-r--r-- | 11.5 KB |
commit-graph.c | -rw-r--r-- | 64.1 KB |
commit-graph.h | -rw-r--r-- | 4.7 KB |
commit-reach.c | -rw-r--r-- | 20.0 KB |
commit-reach.h | -rw-r--r-- | 3.8 KB |
commit-slab-decl.h | -rw-r--r-- | 1.4 KB |
commit-slab-impl.h | -rw-r--r-- | 3.1 KB |
commit-slab.h | -rw-r--r-- | 2.5 KB |
commit.c | -rw-r--r-- | 40.8 KB |
commit.h | -rw-r--r-- | 12.6 KB |
common-main.c | -rw-r--r-- | 1.3 KB |
config.c | -rw-r--r-- | 81.9 KB |
config.h | -rw-r--r-- | 22.1 KB |
config.mak.dev | -rw-r--r-- | 1.7 KB |
config.mak.in | -rw-r--r-- | 540 bytes |
config.mak.uname | -rw-r--r-- | 23.7 KB |
configure.ac | -rw-r--r-- | 38.5 KB |
connect.c | -rw-r--r-- | 34.9 KB |
connect.h | -rw-r--r-- | 1.2 KB |
connected.c | -rw-r--r-- | 4.3 KB |
connected.h | -rw-r--r-- | 1.7 KB |
convert.c | -rw-r--r-- | 49.2 KB |
convert.h | -rw-r--r-- | 5.0 KB |
copy.c | -rw-r--r-- | 1.3 KB |
credential.c | -rw-r--r-- | 12.1 KB |
credential.h | -rw-r--r-- | 6.4 KB |
csum-file.c | -rw-r--r-- | 4.1 KB |
csum-file.h | -rw-r--r-- | 1.7 KB |
ctype.c | -rw-r--r-- | 2.6 KB |
daemon.c | -rw-r--r-- | 34.6 KB |
date.c | -rw-r--r-- | 31.5 KB |
decorate.c | -rw-r--r-- | 1.7 KB |
decorate.h | -rw-r--r-- | 1.4 KB |
delta-islands.c | -rw-r--r-- | 11.7 KB |
delta-islands.h | -rw-r--r-- | 572 bytes |
delta.h | -rw-r--r-- | 3.3 KB |
detect-compiler | -rwxr-xr-x | 1016 bytes |
diff-delta.c | -rw-r--r-- | 15.5 KB |
diff-lib.c | -rw-r--r-- | 17.6 KB |
diff-no-index.c | -rw-r--r-- | 7.2 KB |
diff.c | -rw-r--r-- | 191.9 KB |
diff.h | -rw-r--r-- | 19.8 KB |
diffcore-break.c | -rw-r--r-- | 9.3 KB |
diffcore-delta.c | -rw-r--r-- | 5.5 KB |
diffcore-order.c | -rw-r--r-- | 2.4 KB |
diffcore-pickaxe.c | -rw-r--r-- | 6.6 KB |
diffcore-rename.c | -rw-r--r-- | 19.3 KB |
diffcore.h | -rw-r--r-- | 6.6 KB |
dir-iterator.c | -rw-r--r-- | 5.8 KB |
dir-iterator.h | -rw-r--r-- | 4.3 KB |
dir.c | -rw-r--r-- | 96.1 KB |
dir.h | -rw-r--r-- | 16.4 KB |
editor.c | -rw-r--r-- | 3.0 KB |
entry.c | -rw-r--r-- | 14.0 KB |
environment.c | -rw-r--r-- | 11.0 KB |
exec-cmd.c | -rw-r--r-- | 8.0 KB |
exec-cmd.h | -rw-r--r-- | 475 bytes |
fetch-negotiator.c | -rw-r--r-- | 609 bytes |
fetch-negotiator.h | -rw-r--r-- | 1.6 KB |
fetch-pack.c | -rw-r--r-- | 53.8 KB |
fetch-pack.h | -rw-r--r-- | 2.6 KB |
fmt-merge-msg.c | -rw-r--r-- | 17.5 KB |
fmt-merge-msg.h | -rw-r--r-- | 420 bytes |
fsck.c | -rw-r--r-- | 32.9 KB |
fsck.h | -rw-r--r-- | 3.2 KB |
fsmonitor.c | -rw-r--r-- | 10.5 KB |
fsmonitor.h | -rw-r--r-- | 2.4 KB |
fuzz-commit-graph.c | -rw-r--r-- | 465 bytes |
fuzz-pack-headers.c | -rw-r--r-- | 309 bytes |
fuzz-pack-idx.c | -rw-r--r-- | 277 bytes |
generate-cmdlist.sh | -rwxr-xr-x | 1.5 KB |
generate-configlist.sh | -rwxr-xr-x | 370 bytes |
gettext.c | -rw-r--r-- | 3.4 KB |
gettext.h | -rw-r--r-- | 2.2 KB |
git-add--interactive.perl | -rwxr-xr-x | 46.6 KB |
git-archimport.perl | -rwxr-xr-x | 36.1 KB |
git-bisect.sh | -rwxr-xr-x | 5.1 KB |
git-compat-util.h | -rw-r--r-- | 37.9 KB |
git-cvsexportcommit.perl | -rwxr-xr-x | 12.8 KB |
git-cvsimport.perl | -rwxr-xr-x | 31.3 KB |
git-cvsserver.perl | -rwxr-xr-x | 159.2 KB |
git-difftool--helper.sh | -rwxr-xr-x | 2.2 KB |
git-filter-branch.sh | -rwxr-xr-x | 16.0 KB |
git-instaweb.sh | -rwxr-xr-x | 21.8 KB |
git-merge-octopus.sh | -rwxr-xr-x | 2.4 KB |
git-merge-one-file.sh | -rwxr-xr-x | 3.6 KB |
git-merge-resolve.sh | -rwxr-xr-x | 944 bytes |
git-mergetool--lib.sh | -rw-r--r-- | 9.5 KB |
git-mergetool.sh | -rwxr-xr-x | 10.1 KB |
git-p4.py | -rwxr-xr-x | 165.1 KB |
git-quiltimport.sh | -rwxr-xr-x | 3.6 KB |
git-rebase--preserve-merges.sh | -rw-r--r-- | 28.6 KB |
git-request-pull.sh | -rwxr-xr-x | 4.0 KB |
git-send-email.perl | -rwxr-xr-x | 57.3 KB |
git-sh-i18n.sh | -rw-r--r-- | 2.4 KB |
git-sh-setup.sh | -rw-r--r-- | 9.1 KB |
git-submodule.sh | -rwxr-xr-x | 20.1 KB |
git-svn.perl | -rwxr-xr-x | 63.2 KB |
git-web--browse.sh | -rwxr-xr-x | 4.3 KB |
git.c | -rw-r--r-- | 26.9 KB |
git.rc | -rw-r--r-- | 635 bytes |
gpg-interface.c | -rw-r--r-- | 11.5 KB |
gpg-interface.h | -rw-r--r-- | 1.6 KB |
graph.c | -rw-r--r-- | 40.0 KB |
graph.h | -rw-r--r-- | 8.6 KB |
grep.c | -rw-r--r-- | 52.9 KB |
grep.h | -rw-r--r-- | 4.9 KB |
hash.h | -rw-r--r-- | 7.7 KB |
hashmap.c | -rw-r--r-- | 8.4 KB |
hashmap.h | -rw-r--r-- | 19.8 KB |
help.c | -rw-r--r-- | 18.4 KB |
help.h | -rw-r--r-- | 3.2 KB |
hex.c | -rw-r--r-- | 4.2 KB |
http-backend.c | -rw-r--r-- | 18.9 KB |
http-fetch.c | -rw-r--r-- | 3.4 KB |
http-push.c | -rw-r--r-- | 50.2 KB |
http-walker.c | -rw-r--r-- | 15.1 KB |
http.c | -rw-r--r-- | 67.1 KB |
http.h | -rw-r--r-- | 7.9 KB |
ident.c | -rw-r--r-- | 15.9 KB |
imap-send.c | -rw-r--r-- | 37.0 KB |
iterator.h | -rw-r--r-- | 2.1 KB |
json-writer.c | -rw-r--r-- | 8.5 KB |
json-writer.h | -rw-r--r-- | 4.2 KB |
khash.h | -rw-r--r-- | 12.9 KB |
kwset.c | -rw-r--r-- | 20.6 KB |
kwset.h | -rw-r--r-- | 2.5 KB |
levenshtein.c | -rw-r--r-- | 2.5 KB |
levenshtein.h | -rw-r--r-- | 203 bytes |
line-log.c | -rw-r--r-- | 33.0 KB |
line-log.h | -rw-r--r-- | 1.7 KB |
line-range.c | -rw-r--r-- | 6.6 KB |
line-range.h | -rw-r--r-- | 1.4 KB |
linear-assignment.c | -rw-r--r-- | 4.1 KB |
linear-assignment.h | -rw-r--r-- | 736 bytes |
list-objects-filter-options.c | -rw-r--r-- | 10.6 KB |
list-objects-filter-options.h | -rw-r--r-- | 3.9 KB |
list-objects-filter.c | -rw-r--r-- | 19.0 KB |
list-objects-filter.h | -rw-r--r-- | 3.2 KB |
list-objects.c | -rw-r--r-- | 11.3 KB |
list-objects.h | -rw-r--r-- | 762 bytes |
list.h | -rw-r--r-- | 5.6 KB |
ll-merge.c | -rw-r--r-- | 10.9 KB |
ll-merge.h | -rw-r--r-- | 3.0 KB |
lockfile.c | -rw-r--r-- | 5.6 KB |
lockfile.h | -rw-r--r-- | 11.3 KB |
log-tree.c | -rw-r--r-- | 27.5 KB |
log-tree.h | -rw-r--r-- | 1.5 KB |
ls-refs.c | -rw-r--r-- | 2.7 KB |
ls-refs.h | -rw-r--r-- | 209 bytes |
mailinfo.c | -rw-r--r-- | 27.8 KB |
mailinfo.h | -rw-r--r-- | 1.0 KB |
mailmap.c | -rw-r--r-- | 8.9 KB |
mailmap.h | -rw-r--r-- | 292 bytes |
match-trees.c | -rw-r--r-- | 8.5 KB |
mem-pool.c | -rw-r--r-- | 3.5 KB |
mem-pool.h | -rw-r--r-- | 1.6 KB |
merge-blobs.c | -rw-r--r-- | 2.0 KB |
merge-blobs.h | -rw-r--r-- | 232 bytes |
merge-ort-wrappers.c | -rw-r--r-- | 1.4 KB |
merge-ort-wrappers.h | -rw-r--r-- | 638 bytes |
merge-ort.c | -rw-r--r-- | 1.3 KB |
merge-ort.h | -rw-r--r-- | 1.6 KB |
merge-recursive.c | -rw-r--r-- | 116.3 KB |
merge-recursive.h | -rw-r--r-- | 3.6 KB |
merge.c | -rw-r--r-- | 2.8 KB |
mergesort.c | -rw-r--r-- | 1.5 KB |
mergesort.h | -rw-r--r-- | 574 bytes |
midx.c | -rw-r--r-- | 37.5 KB |
midx.h | -rw-r--r-- | 1.8 KB |
name-hash.c | -rw-r--r-- | 18.8 KB |
notes-cache.c | -rw-r--r-- | 2.3 KB |
notes-cache.h | -rw-r--r-- | 541 bytes |
notes-merge.c | -rw-r--r-- | 22.6 KB |
notes-merge.h | -rw-r--r-- | 2.9 KB |
notes-utils.c | -rw-r--r-- | 5.0 KB |
notes-utils.h | -rw-r--r-- | 1.5 KB |
notes.c | -rw-r--r-- | 37.3 KB |
notes.h | -rw-r--r-- | 12.6 KB |
object-store.h | -rw-r--r-- | 14.9 KB |
object.c | -rw-r--r-- | 13.6 KB |
object.h | -rw-r--r-- | 6.4 KB |
oid-array.c | -rw-r--r-- | 1.8 KB |
oid-array.h | -rw-r--r-- | 4.3 KB |
oidmap.c | -rw-r--r-- | 1.5 KB |
oidmap.h | -rw-r--r-- | 2.3 KB |
oidset.c | -rw-r--r-- | 1.8 KB |
oidset.h | -rw-r--r-- | 3.0 KB |
pack-bitmap-write.c | -rw-r--r-- | 12.7 KB |
pack-bitmap.c | -rw-r--r-- | 35.5 KB |
pack-bitmap.h | -rw-r--r-- | 2.6 KB |
pack-check.c | -rw-r--r-- | 5.5 KB |
pack-objects.c | -rw-r--r-- | 5.0 KB |
pack-objects.h | -rw-r--r-- | 12.2 KB |
pack-revindex.c | -rw-r--r-- | 5.8 KB |
pack-revindex.h | -rw-r--r-- | 322 bytes |
pack-write.c | -rw-r--r-- | 10.4 KB |
pack.h | -rw-r--r-- | 3.3 KB |
packfile.c | -rw-r--r-- | 55.1 KB |
packfile.h | -rw-r--r-- | 6.8 KB |
pager.c | -rw-r--r-- | 5.1 KB |
parse-options-cb.c | -rw-r--r-- | 6.4 KB |
parse-options.c | -rw-r--r-- | 25.6 KB |
parse-options.h | -rw-r--r-- | 13.0 KB |
patch-delta.c | -rw-r--r-- | 2.4 KB |
patch-ids.c | -rw-r--r-- | 3.7 KB |
patch-ids.h | -rw-r--r-- | 1.2 KB |
path.c | -rw-r--r-- | 38.2 KB |
path.h | -rw-r--r-- | 5.8 KB |
pathspec.c | -rw-r--r-- | 18.2 KB |
pathspec.h | -rw-r--r-- | 5.0 KB |
pkt-line.c | -rw-r--r-- | 13.5 KB |
pkt-line.h | -rw-r--r-- | 8.3 KB |
preload-index.c | -rw-r--r-- | 3.8 KB |
pretty.c | -rw-r--r-- | 49.1 KB |
pretty.h | -rw-r--r-- | 3.9 KB |
prio-queue.c | -rw-r--r-- | 2.0 KB |
prio-queue.h | -rw-r--r-- | 1.6 KB |
progress.c | -rw-r--r-- | 9.2 KB |
progress.h | -rw-r--r-- | 768 bytes |
promisor-remote.c | -rw-r--r-- | 5.5 KB |
promisor-remote.h | -rw-r--r-- | 1.1 KB |
prompt.c | -rw-r--r-- | 1.6 KB |
prompt.h | -rw-r--r-- | 223 bytes |
protocol.c | -rw-r--r-- | 2.4 KB |
protocol.h | -rw-r--r-- | 1.1 KB |
prune-packed.c | -rw-r--r-- | 959 bytes |
prune-packed.h | -rw-r--r-- | 152 bytes |
quote.c | -rw-r--r-- | 12.1 KB |
quote.h | -rw-r--r-- | 3.2 KB |
range-diff.c | -rw-r--r-- | 14.6 KB |
range-diff.h | -rw-r--r-- | 478 bytes |
reachable.c | -rw-r--r-- | 5.9 KB |
reachable.h | -rw-r--r-- | 304 bytes |
read-cache.c | -rw-r--r-- | 98.1 KB |
rebase-interactive.c | -rw-r--r-- | 7.8 KB |
rebase-interactive.h | -rw-r--r-- | 651 bytes |
rebase.c | -rw-r--r-- | 1.0 KB |
rebase.h | -rw-r--r-- | 244 bytes |
ref-filter.c | -rw-r--r-- | 70.9 KB |
ref-filter.h | -rw-r--r-- | 4.8 KB |
reflog-walk.c | -rw-r--r-- | 8.2 KB |
reflog-walk.h | -rw-r--r-- | 885 bytes |
refs.c | -rw-r--r-- | 58.3 KB |
refs.h | -rw-r--r-- | 32.0 KB |
refspec.c | -rw-r--r-- | 6.4 KB |
refspec.h | -rw-r--r-- | 2.4 KB |
remote-curl.c | -rw-r--r-- | 40.0 KB |
remote.c | -rw-r--r-- | 65.7 KB |
remote.h | -rw-r--r-- | 10.7 KB |
replace-object.c | -rw-r--r-- | 2.2 KB |
replace-object.h | -rw-r--r-- | 1.4 KB |
repo-settings.c | -rw-r--r-- | 2.9 KB |
repository.c | -rw-r--r-- | 6.5 KB |
repository.h | -rw-r--r-- | 5.6 KB |
rerere.c | -rw-r--r-- | 32.2 KB |
rerere.h | -rw-r--r-- | 1.4 KB |
reset.c | -rw-r--r-- | 4.0 KB |
reset.h | -rw-r--r-- | 565 bytes |
resolve-undo.c | -rw-r--r-- | 4.4 KB |
resolve-undo.h | -rw-r--r-- | 581 bytes |
revision.c | -rw-r--r-- | 114.7 KB |
revision.h | -rw-r--r-- | 12.5 KB |
run-command.c | -rw-r--r-- | 41.1 KB |
run-command.h | -rw-r--r-- | 16.5 KB |
send-pack.c | -rw-r--r-- | 17.9 KB |
send-pack.h | -rw-r--r-- | 893 bytes |
sequencer.c | -rw-r--r-- | 154.5 KB |
sequencer.h | -rw-r--r-- | 7.4 KB |
serve.c | -rw-r--r-- | 7.5 KB |
serve.h | -rw-r--r-- | 328 bytes |
server-info.c | -rw-r--r-- | 7.5 KB |
setup.c | -rw-r--r-- | 41.6 KB |
sh-i18n--envsubst.c | -rw-r--r-- | 10.2 KB |
sha1-file.c | -rw-r--r-- | 62.5 KB |
sha1-lookup.c | -rw-r--r-- | 3.2 KB |
sha1-lookup.h | -rw-r--r-- | 1.3 KB |
sha1-name.c | -rw-r--r-- | 48.2 KB |
sha1dc_git.c | -rw-r--r-- | 889 bytes |
sha1dc_git.h | -rw-r--r-- | 618 bytes |
shallow.c | -rw-r--r-- | 21.8 KB |
shallow.h | -rw-r--r-- | 2.6 KB |
shell.c | -rw-r--r-- | 5.3 KB |
shortlog.h | -rw-r--r-- | 654 bytes |
sideband.c | -rw-r--r-- | 5.8 KB |
sideband.h | -rw-r--r-- | 1.0 KB |
sigchain.c | -rw-r--r-- | 1.1 KB |
sigchain.h | -rw-r--r-- | 1.7 KB |
split-index.c | -rw-r--r-- | 13.6 KB |
split-index.h | -rw-r--r-- | 1.2 KB |
stable-qsort.c | -rw-r--r-- | 1.2 KB |
strbuf.c | -rw-r--r-- | 25.2 KB |
strbuf.h | -rw-r--r-- | 23.9 KB |
streaming.c | -rw-r--r-- | 12.4 KB |
streaming.h | -rw-r--r-- | 513 bytes |
string-list.c | -rw-r--r-- | 7.6 KB |
string-list.h | -rw-r--r-- | 9.9 KB |
strmap.c | -rw-r--r-- | 4.3 KB |
strmap.h | -rw-r--r-- | 6.8 KB |
strvec.c | -rw-r--r-- | 2.0 KB |
strvec.h | -rw-r--r-- | 2.8 KB |
sub-process.c | -rw-r--r-- | 5.5 KB |
sub-process.h | -rw-r--r-- | 3.1 KB |
submodule-config.c | -rw-r--r-- | 21.2 KB |
submodule-config.h | -rw-r--r-- | 3.6 KB |
submodule.c | -rw-r--r-- | 59.7 KB |
submodule.h | -rw-r--r-- | 5.5 KB |
symlinks.c | -rw-r--r-- | 9.9 KB |
tag.c | -rw-r--r-- | 5.5 KB |
tag.h | -rw-r--r-- | 727 bytes |
tar.h | -rw-r--r-- | 693 bytes |
tempfile.c | -rw-r--r-- | 8.3 KB |
tempfile.h | -rw-r--r-- | 9.4 KB |
thread-utils.c | -rw-r--r-- | 2.6 KB |
thread-utils.h | -rw-r--r-- | 1.4 KB |
tmp-objdir.c | -rw-r--r-- | 6.4 KB |
tmp-objdir.h | -rw-r--r-- | 1.5 KB |
trace.c | -rw-r--r-- | 11.9 KB |
trace.h | -rw-r--r-- | 8.3 KB |
trace2.c | -rw-r--r-- | 18.0 KB |
trace2.h | -rw-r--r-- | 18.2 KB |
trailer.c | -rw-r--r-- | 30.3 KB |
trailer.h | -rw-r--r-- | 3.7 KB |
transport-helper.c | -rw-r--r-- | 41.4 KB |
transport-internal.h | -rw-r--r-- | 2.6 KB |
transport.c | -rw-r--r-- | 39.2 KB |
transport.h | -rw-r--r-- | 8.5 KB |
tree-diff.c | -rw-r--r-- | 18.0 KB |
tree-walk.c | -rw-r--r-- | 31.4 KB |
tree-walk.h | -rw-r--r-- | 6.7 KB |
tree.c | -rw-r--r-- | 6.3 KB |
tree.h | -rw-r--r-- | 1.2 KB |
unicode-width.h | -rw-r--r-- | 9.3 KB |
unimplemented.sh | -rw-r--r-- | 101 bytes |
unix-socket.c | -rw-r--r-- | 2.4 KB |
unix-socket.h | -rw-r--r-- | 158 bytes |
unpack-trees.c | -rw-r--r-- | 68.2 KB |
unpack-trees.h | -rw-r--r-- | 3.0 KB |
upload-pack.c | -rw-r--r-- | 45.3 KB |
upload-pack.h | -rw-r--r-- | 491 bytes |
url.c | -rw-r--r-- | 2.5 KB |
url.h | -rw-r--r-- | 697 bytes |
urlmatch.c | -rw-r--r-- | 18.4 KB |
urlmatch.h | -rw-r--r-- | 2.6 KB |
usage.c | -rw-r--r-- | 6.6 KB |
userdiff.c | -rw-r--r-- | 12.2 KB |
userdiff.h | -rw-r--r-- | 892 bytes |
utf8.c | -rw-r--r-- | 19.9 KB |
utf8.h | -rw-r--r-- | 3.6 KB |
varint.c | -rw-r--r-- | 660 bytes |
varint.h | -rw-r--r-- | 154 bytes |
version.c | -rw-r--r-- | 718 bytes |
version.h | -rw-r--r-- | 230 bytes |
versioncmp.c | -rw-r--r-- | 5.2 KB |
walker.c | -rw-r--r-- | 7.6 KB |
walker.h | -rw-r--r-- | 1.1 KB |
wildmatch.c | -rw-r--r-- | 7.8 KB |
wildmatch.h | -rw-r--r-- | 264 bytes |
worktree.c | -rw-r--r-- | 16.3 KB |
worktree.h | -rw-r--r-- | 5.1 KB |
wrap-for-bin.sh | -rw-r--r-- | 946 bytes |
wrapper.c | -rw-r--r-- | 14.3 KB |
write-or-die.c | -rw-r--r-- | 1.5 KB |
ws.c | -rw-r--r-- | 9.4 KB |
wt-status.c | -rw-r--r-- | 69.6 KB |
wt-status.h | -rw-r--r-- | 4.7 KB |
xdiff-interface.c | -rw-r--r-- | 7.5 KB |
xdiff-interface.h | -rw-r--r-- | 2.0 KB |
zlib.c | -rw-r--r-- | 6.1 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...