swh:1:snp:87728f882295b5ba27035837248a04c5be121c53
Revision a1283866bab1cd12da57b3e427664180f5dee333 authored by Jeff King on 25 February 2016, 14:21:12 UTC, committed by Junio C Hamano on 25 February 2016, 19:32:41 UTC
Our on-disk .pack and .idx files may reference other data by offset. We should make sure that we are not fooled by corrupt data into accessing memory outside of our mmap'd boundaries. This patch adds a series of tests for offsets found in .pack and .idx files. For the most part we get this right, but there are two tests of .idx files marked as failures: we do not bounds-check offsets in the v2 index's extended offset table, nor do we handle .idx offsets that overflow a signed off_t. With these tests, we should have good coverage of all offsets found in these files. Note that this doesn't cover .bitmap files, which may have similar bugs. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent a2558fb
Tip revision: 6c40894d2466d4e7fddc047a05116aa9d14712ee authored by Junio C Hamano on 30 August 2021, 23:06:22 UTC
The second batch
The second batch
Tip revision: 6c40894
File | Mode | Size |
---|---|---|
Documentation | ||
block-sha1 | ||
builtin | ||
compat | ||
contrib | ||
ewah | ||
git-gui | ||
gitk-git | ||
gitweb | ||
mergetools | ||
perl | ||
po | ||
ppc | ||
t | ||
templates | ||
vcs-svn | ||
xdiff | ||
.gitattributes | -rw-r--r-- | 105 bytes |
.gitignore | -rw-r--r-- | 3.6 KB |
.mailmap | -rw-r--r-- | 13.9 KB |
COPYING | -rw-r--r-- | 18.3 KB |
GIT-VERSION-GEN | -rwxr-xr-x | 763 bytes |
INSTALL | -rw-r--r-- | 8.9 KB |
LGPL-2.1 | -rw-r--r-- | 26.2 KB |
Makefile | -rw-r--r-- | 73.9 KB |
README | -rw-r--r-- | 2.6 KB |
RelNotes | l--------- | 33 bytes |
abspath.c | -rw-r--r-- | 4.4 KB |
aclocal.m4 | -rw-r--r-- | 1.4 KB |
advice.c | -rw-r--r-- | 3.2 KB |
advice.h | -rw-r--r-- | 927 bytes |
alias.c | -rw-r--r-- | 1.5 KB |
alloc.c | -rw-r--r-- | 2.6 KB |
archive-tar.c | -rw-r--r-- | 11.0 KB |
archive-zip.c | -rw-r--r-- | 12.7 KB |
archive.c | -rw-r--r-- | 14.6 KB |
archive.h | -rw-r--r-- | 1.3 KB |
argv-array.c | -rw-r--r-- | 1.4 KB |
argv-array.h | -rw-r--r-- | 577 bytes |
attr.c | -rw-r--r-- | 19.7 KB |
attr.h | -rw-r--r-- | 1.6 KB |
base85.c | -rw-r--r-- | 2.8 KB |
bisect.c | -rw-r--r-- | 23.6 KB |
bisect.h | -rw-r--r-- | 644 bytes |
blob.c | -rw-r--r-- | 389 bytes |
blob.h | -rw-r--r-- | 664 bytes |
branch.c | -rw-r--r-- | 7.9 KB |
branch.h | -rw-r--r-- | 1.9 KB |
builtin.h | -rw-r--r-- | 8.7 KB |
bulk-checkin.c | -rw-r--r-- | 7.0 KB |
bulk-checkin.h | -rw-r--r-- | 323 bytes |
bundle.c | -rw-r--r-- | 11.9 KB |
bundle.h | -rw-r--r-- | 707 bytes |
cache-tree.c | -rw-r--r-- | 16.9 KB |
cache-tree.h | -rw-r--r-- | 1.5 KB |
cache.h | -rw-r--r-- | 58.7 KB |
check-builtins.sh | -rwxr-xr-x | 596 bytes |
check-racy.c | -rw-r--r-- | 538 bytes |
check_bindir | -rwxr-xr-x | 374 bytes |
color.c | -rw-r--r-- | 7.7 KB |
color.h | -rw-r--r-- | 3.1 KB |
column.c | -rw-r--r-- | 9.8 KB |
column.h | -rw-r--r-- | 1.4 KB |
combine-diff.c | -rw-r--r-- | 40.3 KB |
command-list.txt | -rw-r--r-- | 8.0 KB |
commit-slab.h | -rw-r--r-- | 4.0 KB |
commit.c | -rw-r--r-- | 40.9 KB |
commit.h | -rw-r--r-- | 13.1 KB |
config.c | -rw-r--r-- | 55.1 KB |
config.mak.in | -rw-r--r-- | 540 bytes |
config.mak.uname | -rw-r--r-- | 15.8 KB |
configure.ac | -rw-r--r-- | 34.5 KB |
connect.c | -rw-r--r-- | 19.1 KB |
connect.h | -rw-r--r-- | 596 bytes |
connected.c | -rw-r--r-- | 3.2 KB |
connected.h | -rw-r--r-- | 930 bytes |
convert.c | -rw-r--r-- | 30.2 KB |
convert.h | -rw-r--r-- | 2.3 KB |
copy.c | -rw-r--r-- | 1.2 KB |
credential-cache--daemon.c | -rw-r--r-- | 6.3 KB |
credential-cache.c | -rw-r--r-- | 2.9 KB |
credential-store.c | -rw-r--r-- | 5.0 KB |
credential.c | -rw-r--r-- | 7.7 KB |
credential.h | -rw-r--r-- | 833 bytes |
csum-file.c | -rw-r--r-- | 4.0 KB |
csum-file.h | -rw-r--r-- | 1.3 KB |
ctype.c | -rw-r--r-- | 2.6 KB |
daemon.c | -rw-r--r-- | 31.7 KB |
date.c | -rw-r--r-- | 25.9 KB |
decorate.c | -rw-r--r-- | 1.8 KB |
decorate.h | -rw-r--r-- | 400 bytes |
delta.h | -rw-r--r-- | 3.4 KB |
diff-delta.c | -rw-r--r-- | 15.4 KB |
diff-lib.c | -rw-r--r-- | 14.0 KB |
diff-no-index.c | -rw-r--r-- | 7.0 KB |
diff.c | -rw-r--r-- | 135.7 KB |
diff.h | -rw-r--r-- | 11.5 KB |
diffcore-break.c | -rw-r--r-- | 9.0 KB |
diffcore-delta.c | -rw-r--r-- | 5.4 KB |
diffcore-order.c | -rw-r--r-- | 2.4 KB |
diffcore-pickaxe.c | -rw-r--r-- | 5.7 KB |
diffcore-rename.c | -rw-r--r-- | 17.6 KB |
diffcore.h | -rw-r--r-- | 4.8 KB |
dir.c | -rw-r--r-- | 42.6 KB |
dir.h | -rw-r--r-- | 7.0 KB |
editor.c | -rw-r--r-- | 1.5 KB |
entry.c | -rw-r--r-- | 7.4 KB |
environment.c | -rw-r--r-- | 7.7 KB |
exec_cmd.c | -rw-r--r-- | 3.1 KB |
exec_cmd.h | -rw-r--r-- | 503 bytes |
fast-import.c | -rw-r--r-- | 87.3 KB |
fetch-pack.c | -rw-r--r-- | 25.7 KB |
fetch-pack.h | -rw-r--r-- | 1.0 KB |
fmt-merge-msg.h | -rw-r--r-- | 187 bytes |
fsck.c | -rw-r--r-- | 13.7 KB |
fsck.h | -rw-r--r-- | 1.1 KB |
generate-cmdlist.sh | -rwxr-xr-x | 433 bytes |
gettext.c | -rw-r--r-- | 4.8 KB |
gettext.h | -rw-r--r-- | 2.2 KB |
git-add--interactive.perl | -rwxr-xr-x | 36.1 KB |
git-am.sh | -rwxr-xr-x | 23.7 KB |
git-archimport.perl | -rwxr-xr-x | 36.0 KB |
git-bisect.sh | -rwxr-xr-x | 11.8 KB |
git-compat-util.h | -rw-r--r-- | 23.6 KB |
git-cvsexportcommit.perl | -rwxr-xr-x | 12.6 KB |
git-cvsimport.perl | -rwxr-xr-x | 31.3 KB |
git-cvsserver.perl | -rwxr-xr-x | 158.6 KB |
git-difftool--helper.sh | -rwxr-xr-x | 2.1 KB |
git-difftool.perl | -rwxr-xr-x | 13.2 KB |
git-filter-branch.sh | -rwxr-xr-x | 11.6 KB |
git-instaweb.sh | -rwxr-xr-x | 18.1 KB |
git-merge-octopus.sh | -rwxr-xr-x | 2.2 KB |
git-merge-one-file.sh | -rwxr-xr-x | 3.4 KB |
git-merge-resolve.sh | -rwxr-xr-x | 944 bytes |
git-mergetool--lib.sh | -rw-r--r-- | 7.2 KB |
git-mergetool.sh | -rwxr-xr-x | 9.1 KB |
git-p4.py | -rwxr-xr-x | 119.3 KB |
git-parse-remote.sh | -rw-r--r-- | 2.3 KB |
git-pull.sh | -rwxr-xr-x | 8.6 KB |
git-quiltimport.sh | -rwxr-xr-x | 3.3 KB |
git-rebase--am.sh | -rw-r--r-- | 2.4 KB |
git-rebase--interactive.sh | -rw-r--r-- | 28.5 KB |
git-rebase--merge.sh | -rw-r--r-- | 3.7 KB |
git-rebase.sh | -rwxr-xr-x | 15.7 KB |
git-relink.perl | -rwxr-xr-x | 4.0 KB |
git-remote-testgit.sh | -rwxr-xr-x | 2.9 KB |
git-request-pull.sh | -rwxr-xr-x | 3.8 KB |
git-send-email.perl | -rwxr-xr-x | 46.5 KB |
git-sh-i18n.sh | -rw-r--r-- | 2.0 KB |
git-sh-setup.sh | -rw-r--r-- | 8.1 KB |
git-stash.sh | -rwxr-xr-x | 13.5 KB |
git-submodule.sh | -rwxr-xr-x | 31.8 KB |
git-svn.perl | -rwxr-xr-x | 62.3 KB |
git-web--browse.sh | -rwxr-xr-x | 4.3 KB |
git.c | -rw-r--r-- | 19.5 KB |
git.rc | -rw-r--r-- | 566 bytes |
git.spec.in | -rw-r--r-- | 11.1 KB |
gpg-interface.c | -rw-r--r-- | 5.6 KB |
gpg-interface.h | -rw-r--r-- | 930 bytes |
graph.c | -rw-r--r-- | 34.5 KB |
graph.h | -rw-r--r-- | 3.9 KB |
grep.c | -rw-r--r-- | 41.3 KB |
grep.h | -rw-r--r-- | 4.8 KB |
hashmap.c | -rw-r--r-- | 6.3 KB |
hashmap.h | -rw-r--r-- | 2.5 KB |
help.c | -rw-r--r-- | 11.0 KB |
help.h | -rw-r--r-- | 1.1 KB |
hex.c | -rw-r--r-- | 2.3 KB |
http-backend.c | -rw-r--r-- | 15.7 KB |
http-fetch.c | -rw-r--r-- | 2.3 KB |
http-push.c | -rw-r--r-- | 50.2 KB |
http-walker.c | -rw-r--r-- | 13.8 KB |
http.c | -rw-r--r-- | 44.6 KB |
http.h | -rw-r--r-- | 6.2 KB |
ident.c | -rw-r--r-- | 10.3 KB |
imap-send.c | -rw-r--r-- | 35.7 KB |
khash.h | -rw-r--r-- | 12.6 KB |
kwset.c | -rw-r--r-- | 20.5 KB |
kwset.h | -rw-r--r-- | 2.6 KB |
levenshtein.c | -rw-r--r-- | 2.5 KB |
levenshtein.h | -rw-r--r-- | 203 bytes |
line-log.c | -rw-r--r-- | 30.6 KB |
line-log.h | -rw-r--r-- | 1.8 KB |
line-range.c | -rw-r--r-- | 6.5 KB |
line-range.h | -rw-r--r-- | 1.3 KB |
list-objects.c | -rw-r--r-- | 6.1 KB |
list-objects.h | -rw-r--r-- | 407 bytes |
ll-merge.c | -rw-r--r-- | 10.2 KB |
ll-merge.h | -rw-r--r-- | 567 bytes |
lockfile.c | -rw-r--r-- | 7.9 KB |
lockfile.h | -rw-r--r-- | 3.3 KB |
log-tree.c | -rw-r--r-- | 24.2 KB |
log-tree.h | -rw-r--r-- | 1.2 KB |
mailmap.c | -rw-r--r-- | 8.9 KB |
mailmap.h | -rw-r--r-- | 271 bytes |
match-trees.c | -rw-r--r-- | 8.0 KB |
merge-blobs.c | -rw-r--r-- | 2.6 KB |
merge-blobs.h | -rw-r--r-- | 194 bytes |
merge-recursive.c | -rw-r--r-- | 57.7 KB |
merge-recursive.h | -rw-r--r-- | 1.6 KB |
merge.c | -rw-r--r-- | 2.4 KB |
mergesort.c | -rw-r--r-- | 1.5 KB |
mergesort.h | -rw-r--r-- | 574 bytes |
name-hash.c | -rw-r--r-- | 6.2 KB |
notes-cache.c | -rw-r--r-- | 2.2 KB |
notes-cache.h | -rw-r--r-- | 500 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-- | 4.4 KB |
notes-utils.h | -rw-r--r-- | 1.1 KB |
notes.c | -rw-r--r-- | 36.2 KB |
notes.h | -rw-r--r-- | 11.2 KB |
object.c | -rw-r--r-- | 9.5 KB |
object.h | -rw-r--r-- | 4.5 KB |
pack-bitmap-write.c | -rw-r--r-- | 12.3 KB |
pack-bitmap.c | -rw-r--r-- | 25.2 KB |
pack-bitmap.h | -rw-r--r-- | 1.7 KB |
pack-check.c | -rw-r--r-- | 5.0 KB |
pack-objects.c | -rw-r--r-- | 2.1 KB |
pack-objects.h | -rw-r--r-- | 1.9 KB |
pack-revindex.c | -rw-r--r-- | 7.0 KB |
pack-revindex.h | -rw-r--r-- | 410 bytes |
pack-write.c | -rw-r--r-- | 10.3 KB |
pack.h | -rw-r--r-- | 3.2 KB |
pager.c | -rw-r--r-- | 3.4 KB |
parse-options-cb.c | -rw-r--r-- | 2.7 KB |
parse-options.c | -rw-r--r-- | 17.3 KB |
parse-options.h | -rw-r--r-- | 8.9 KB |
patch-delta.c | -rw-r--r-- | 2.2 KB |
patch-ids.c | -rw-r--r-- | 2.4 KB |
patch-ids.h | -rw-r--r-- | 490 bytes |
path.c | -rw-r--r-- | 18.2 KB |
pathspec.c | -rw-r--r-- | 14.1 KB |
pathspec.h | -rw-r--r-- | 3.2 KB |
pkt-line.c | -rw-r--r-- | 4.7 KB |
pkt-line.h | -rw-r--r-- | 3.0 KB |
preload-index.c | -rw-r--r-- | 2.5 KB |
pretty.c | -rw-r--r-- | 42.5 KB |
prio-queue.c | -rw-r--r-- | 1.9 KB |
prio-queue.h | -rw-r--r-- | 1.5 KB |
progress.c | -rw-r--r-- | 6.1 KB |
progress.h | -rw-r--r-- | 504 bytes |
prompt.c | -rw-r--r-- | 1.4 KB |
prompt.h | -rw-r--r-- | 168 bytes |
quote.c | -rw-r--r-- | 9.7 KB |
quote.h | -rw-r--r-- | 2.6 KB |
reachable.c | -rw-r--r-- | 4.7 KB |
reachable.h | -rw-r--r-- | 304 bytes |
read-cache.c | -rw-r--r-- | 61.2 KB |
reflog-walk.c | -rw-r--r-- | 8.1 KB |
reflog-walk.h | -rw-r--r-- | 773 bytes |
refs.c | -rw-r--r-- | 112.6 KB |
refs.h | -rw-r--r-- | 15.1 KB |
remote-curl.c | -rw-r--r-- | 24.7 KB |
remote-testsvn.c | -rw-r--r-- | 8.4 KB |
remote.c | -rw-r--r-- | 56.0 KB |
remote.h | -rw-r--r-- | 7.1 KB |
replace_object.c | -rw-r--r-- | 2.9 KB |
rerere.c | -rw-r--r-- | 17.5 KB |
rerere.h | -rw-r--r-- | 804 bytes |
resolve-undo.c | -rw-r--r-- | 4.3 KB |
resolve-undo.h | -rw-r--r-- | 612 bytes |
revision.c | -rw-r--r-- | 91.4 KB |
revision.h | -rw-r--r-- | 7.9 KB |
run-command.c | -rw-r--r-- | 17.9 KB |
run-command.h | -rw-r--r-- | 3.8 KB |
send-pack.c | -rw-r--r-- | 13.2 KB |
send-pack.h | -rw-r--r-- | 440 bytes |
sequencer.c | -rw-r--r-- | 32.2 KB |
sequencer.h | -rw-r--r-- | 1.1 KB |
server-info.c | -rw-r--r-- | 5.7 KB |
setup.c | -rw-r--r-- | 23.0 KB |
sh-i18n--envsubst.c | -rw-r--r-- | 10.3 KB |
sha1-array.c | -rw-r--r-- | 1.2 KB |
sha1-array.h | -rw-r--r-- | 583 bytes |
sha1-lookup.c | -rw-r--r-- | 9.2 KB |
sha1-lookup.h | -rw-r--r-- | 403 bytes |
sha1_file.c | -rw-r--r-- | 86.8 KB |
sha1_name.c | -rw-r--r-- | 35.7 KB |
shallow.c | -rw-r--r-- | 17.7 KB |
shell.c | -rw-r--r-- | 5.1 KB |
shortlog.h | -rw-r--r-- | 463 bytes |
show-index.c | -rw-r--r-- | 2.2 KB |
sideband.c | -rw-r--r-- | 3.4 KB |
sideband.h | -rw-r--r-- | 262 bytes |
sigchain.c | -rw-r--r-- | 969 bytes |
sigchain.h | -rw-r--r-- | 215 bytes |
split-index.c | -rw-r--r-- | 9.2 KB |
split-index.h | -rw-r--r-- | 1.1 KB |
strbuf.c | -rw-r--r-- | 13.3 KB |
strbuf.h | -rw-r--r-- | 17.0 KB |
streaming.c | -rw-r--r-- | 11.8 KB |
streaming.h | -rw-r--r-- | 504 bytes |
string-list.c | -rw-r--r-- | 7.3 KB |
string-list.h | -rw-r--r-- | 5.1 KB |
submodule.c | -rw-r--r-- | 31.7 KB |
submodule.h | -rw-r--r-- | 1.9 KB |
symlinks.c | -rw-r--r-- | 9.3 KB |
tag.c | -rw-r--r-- | 3.2 KB |
tag.h | -rw-r--r-- | 508 bytes |
tar.h | -rw-r--r-- | 644 bytes |
test-chmtime.c | -rw-r--r-- | 2.6 KB |
test-config.c | -rw-r--r-- | 3.8 KB |
test-ctype.c | -rw-r--r-- | 918 bytes |
test-date.c | -rw-r--r-- | 1.5 KB |
test-delta.c | -rw-r--r-- | 1.8 KB |
test-dump-cache-tree.c | -rw-r--r-- | 1.6 KB |
test-dump-split-index.c | -rw-r--r-- | 810 bytes |
test-genrandom.c | -rw-r--r-- | 722 bytes |
test-hashmap.c | -rw-r--r-- | 6.1 KB |
test-index-version.c | -rw-r--r-- | 258 bytes |
test-line-buffer.c | -rw-r--r-- | 2.1 KB |
test-match-trees.c | -rw-r--r-- | 590 bytes |
test-mergesort.c | -rw-r--r-- | 924 bytes |
test-mktemp.c | -rw-r--r-- | 269 bytes |
test-parse-options.c | -rw-r--r-- | 3.4 KB |
test-path-utils.c | -rw-r--r-- | 3.5 KB |
test-prio-queue.c | -rw-r--r-- | 621 bytes |
test-read-cache.c | -rw-r--r-- | 202 bytes |
test-regex.c | -rw-r--r-- | 534 bytes |
test-revision-walking.c | -rw-r--r-- | 1.4 KB |
test-run-command.c | -rw-r--r-- | 827 bytes |
test-scrap-cache-tree.c | -rw-r--r-- | 386 bytes |
test-sha1-array.c | -rw-r--r-- | 936 bytes |
test-sha1.c | -rw-r--r-- | 941 bytes |
test-sha1.sh | -rwxr-xr-x | 1.9 KB |
test-sigchain.c | -rw-r--r-- | 344 bytes |
test-string-list.c | -rw-r--r-- | 2.5 KB |
test-subprocess.c | -rw-r--r-- | 393 bytes |
test-svn-fe.c | -rw-r--r-- | 1.3 KB |
test-urlmatch-normalization.c | -rw-r--r-- | 1.2 KB |
test-wildmatch.c | -rw-r--r-- | 635 bytes |
thread-utils.c | -rw-r--r-- | 1.7 KB |
thread-utils.h | -rw-r--r-- | 241 bytes |
trace.c | -rw-r--r-- | 10.2 KB |
trace.h | -rw-r--r-- | 3.5 KB |
trailer.c | -rw-r--r-- | 21.1 KB |
trailer.h | -rw-r--r-- | 148 bytes |
transport-helper.c | -rw-r--r-- | 34.5 KB |
transport.c | -rw-r--r-- | 36.2 KB |
transport.h | -rw-r--r-- | 7.5 KB |
tree-diff.c | -rw-r--r-- | 17.6 KB |
tree-walk.c | -rw-r--r-- | 21.4 KB |
tree-walk.h | -rw-r--r-- | 2.2 KB |
tree.c | -rw-r--r-- | 6.2 KB |
tree.h | -rw-r--r-- | 1.0 KB |
unicode_width.h | -rw-r--r-- | 6.6 KB |
unimplemented.sh | -rw-r--r-- | 100 bytes |
unix-socket.c | -rw-r--r-- | 2.4 KB |
unix-socket.h | -rw-r--r-- | 158 bytes |
unpack-trees.c | -rw-r--r-- | 47.8 KB |
unpack-trees.h | -rw-r--r-- | 2.2 KB |
update_unicode.sh | -rwxr-xr-x | 1.0 KB |
upload-pack.c | -rw-r--r-- | 20.2 KB |
url.c | -rw-r--r-- | 2.8 KB |
url.h | -rw-r--r-- | 492 bytes |
urlmatch.c | -rw-r--r-- | 16.5 KB |
urlmatch.h | -rw-r--r-- | 1.9 KB |
usage.c | -rw-r--r-- | 3.3 KB |
userdiff.c | -rw-r--r-- | 9.1 KB |
userdiff.h | -rw-r--r-- | 646 bytes |
utf8.c | -rw-r--r-- | 15.2 KB |
utf8.h | -rw-r--r-- | 1.9 KB |
varint.c | -rw-r--r-- | 660 bytes |
varint.h | -rw-r--r-- | 168 bytes |
version.c | -rw-r--r-- | 651 bytes |
version.h | -rw-r--r-- | 180 bytes |
versioncmp.c | -rw-r--r-- | 3.4 KB |
walker.c | -rw-r--r-- | 7.3 KB |
walker.h | -rw-r--r-- | 1.1 KB |
wildmatch.c | -rw-r--r-- | 7.8 KB |
wildmatch.h | -rw-r--r-- | 346 bytes |
wrap-for-bin.sh | -rw-r--r-- | 707 bytes |
wrapper.c | -rw-r--r-- | 12.2 KB |
write_or_die.c | -rw-r--r-- | 2.1 KB |
ws.c | -rw-r--r-- | 9.6 KB |
wt-status.c | -rw-r--r-- | 44.1 KB |
wt-status.h | -rw-r--r-- | 2.7 KB |
xdiff-interface.c | -rw-r--r-- | 7.1 KB |
xdiff-interface.h | -rw-r--r-- | 1.1 KB |
zlib.c | -rw-r--r-- | 6.1 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...