swh:1:snp:87728f882295b5ba27035837248a04c5be121c53
Revision b3118bdc91876cbc04b7e81dcf7bea71d86ce4f8 authored by Shawn O. Pearce on 14 October 2009, 14:23:51 UTC, committed by Junio C Hamano on 14 October 2009, 20:39:37 UTC
Some types of corruption to a pack may confuse the deflate stream which stores an object. In Andy's reported case a 36 byte region of the pack was overwritten, leading to what appeared to be a valid deflate stream that was trying to produce a result larger than our allocated output buffer could accept. Z_BUF_ERROR is returned from inflate() if either the input buffer needs more input bytes, or the output buffer has run out of space. Previously we only considered the former case, as it meant we needed to move the stream's input buffer to the next window in the pack. We now abort the loop if inflate() returns Z_BUF_ERROR without consuming the entire input buffer it was given, or has filled the entire output buffer but has not yet returned Z_STREAM_END. Either state is a clear indicator that this loop is not working as expected, and should not continue. This problem cannot occur with loose objects as we open the entire loose object as a single buffer and treat Z_BUF_ERROR as an error. Reported-by: Andy Isaacson <adi@hexapodia.org> Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Acked-by: Nicolas Pitre <nico@fluxnic.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 583371a
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 | ||
compat | ||
contrib | ||
git-gui | ||
gitk-git | ||
gitweb | ||
perl | ||
ppc | ||
t | ||
templates | ||
xdiff | ||
.gitattributes | -rw-r--r-- | 70 bytes |
.gitignore | -rw-r--r-- | 2.5 KB |
.mailmap | -rw-r--r-- | 2.5 KB |
COPYING | -rw-r--r-- | 18.3 KB |
GIT-VERSION-GEN | -rwxr-xr-x | 734 bytes |
INSTALL | -rw-r--r-- | 6.0 KB |
Makefile | -rw-r--r-- | 54.3 KB |
README | -rw-r--r-- | 2.4 KB |
RelNotes | l--------- | 32 bytes |
abspath.c | -rw-r--r-- | 2.8 KB |
advice.c | -rw-r--r-- | 581 bytes |
advice.h | -rw-r--r-- | 197 bytes |
alias.c | -rw-r--r-- | 1.4 KB |
alloc.c | -rw-r--r-- | 1.7 KB |
archive-tar.c | -rw-r--r-- | 6.3 KB |
archive-zip.c | -rw-r--r-- | 7.3 KB |
archive.c | -rw-r--r-- | 9.6 KB |
archive.h | -rw-r--r-- | 927 bytes |
attr.c | -rw-r--r-- | 16.0 KB |
attr.h | -rw-r--r-- | 978 bytes |
base85.c | -rw-r--r-- | 2.9 KB |
bisect.c | -rw-r--r-- | 23.7 KB |
bisect.h | -rw-r--r-- | 900 bytes |
blob.c | -rw-r--r-- | 1.1 KB |
blob.h | -rw-r--r-- | 311 bytes |
branch.c | -rw-r--r-- | 4.9 KB |
branch.h | -rw-r--r-- | 1.0 KB |
builtin-add.c | -rw-r--r-- | 9.2 KB |
builtin-annotate.c | -rw-r--r-- | 446 bytes |
builtin-apply.c | -rw-r--r-- | 90.7 KB |
builtin-archive.c | -rw-r--r-- | 3.1 KB |
builtin-bisect--helper.c | -rw-r--r-- | 617 bytes |
builtin-blame.c | -rw-r--r-- | 62.5 KB |
builtin-branch.c | -rw-r--r-- | 17.1 KB |
builtin-bundle.c | -rw-r--r-- | 1.8 KB |
builtin-cat-file.c | -rw-r--r-- | 5.6 KB |
builtin-check-attr.c | -rw-r--r-- | 3.0 KB |
builtin-check-ref-format.c | -rw-r--r-- | 529 bytes |
builtin-checkout-index.c | -rw-r--r-- | 8.1 KB |
builtin-checkout.c | -rw-r--r-- | 20.8 KB |
builtin-clean.c | -rw-r--r-- | 4.1 KB |
builtin-clone.c | -rw-r--r-- | 16.8 KB |
builtin-commit-tree.c | -rw-r--r-- | 3.6 KB |
builtin-commit.c | -rw-r--r-- | 29.9 KB |
builtin-config.c | -rw-r--r-- | 12.9 KB |
builtin-count-objects.c | -rw-r--r-- | 3.0 KB |
builtin-describe.c | -rw-r--r-- | 9.0 KB |
builtin-diff-files.c | -rw-r--r-- | 1.9 KB |
builtin-diff-index.c | -rw-r--r-- | 1.2 KB |
builtin-diff-tree.c | -rw-r--r-- | 4.2 KB |
builtin-diff.c | -rw-r--r-- | 10.6 KB |
builtin-fast-export.c | -rw-r--r-- | 16.0 KB |
builtin-fetch--tool.c | -rw-r--r-- | 12.7 KB |
builtin-fetch-pack.c | -rw-r--r-- | 19.2 KB |
builtin-fetch.c | -rw-r--r-- | 18.5 KB |
builtin-fmt-merge-msg.c | -rw-r--r-- | 8.7 KB |
builtin-for-each-ref.c | -rw-r--r-- | 22.4 KB |
builtin-fsck.c | -rw-r--r-- | 15.8 KB |
builtin-gc.c | -rw-r--r-- | 6.1 KB |
builtin-grep.c | -rw-r--r-- | 22.8 KB |
builtin-help.c | -rw-r--r-- | 11.1 KB |
builtin-init-db.c | -rw-r--r-- | 13.4 KB |
builtin-log.c | -rw-r--r-- | 34.0 KB |
builtin-ls-files.c | -rw-r--r-- | 14.0 KB |
builtin-ls-remote.c | -rw-r--r-- | 2.4 KB |
builtin-ls-tree.c | -rw-r--r-- | 4.5 KB |
builtin-mailinfo.c | -rw-r--r-- | 22.9 KB |
builtin-mailsplit.c | -rw-r--r-- | 6.3 KB |
builtin-merge-base.c | -rw-r--r-- | 1.4 KB |
builtin-merge-file.c | -rw-r--r-- | 2.5 KB |
builtin-merge-ours.c | -rw-r--r-- | 751 bytes |
builtin-merge-recursive.c | -rw-r--r-- | 1.8 KB |
builtin-merge.c | -rw-r--r-- | 31.6 KB |
builtin-mktree.c | -rw-r--r-- | 5.0 KB |
builtin-mv.c | -rw-r--r-- | 5.9 KB |
builtin-name-rev.c | -rw-r--r-- | 7.1 KB |
builtin-pack-objects.c | -rw-r--r-- | 59.1 KB |
builtin-pack-refs.c | -rw-r--r-- | 589 bytes |
builtin-prune-packed.c | -rw-r--r-- | 1.9 KB |
builtin-prune.c | -rw-r--r-- | 3.8 KB |
builtin-push.c | -rw-r--r-- | 5.5 KB |
builtin-read-tree.c | -rw-r--r-- | 5.5 KB |
builtin-receive-pack.c | -rw-r--r-- | 16.4 KB |
builtin-reflog.c | -rw-r--r-- | 17.6 KB |
builtin-remote.c | -rw-r--r-- | 36.6 KB |
builtin-replace.c | -rw-r--r-- | 3.9 KB |
builtin-rerere.c | -rw-r--r-- | 3.4 KB |
builtin-reset.c | -rw-r--r-- | 8.7 KB |
builtin-rev-list.c | -rw-r--r-- | 9.5 KB |
builtin-rev-parse.c | -rw-r--r-- | 14.4 KB |
builtin-revert.c | -rw-r--r-- | 11.3 KB |
builtin-rm.c | -rw-r--r-- | 7.0 KB |
builtin-send-pack.c | -rw-r--r-- | 13.6 KB |
builtin-shortlog.c | -rw-r--r-- | 8.4 KB |
builtin-show-branch.c | -rw-r--r-- | 22.9 KB |
builtin-show-ref.c | -rw-r--r-- | 6.1 KB |
builtin-stripspace.c | -rw-r--r-- | 1.9 KB |
builtin-symbolic-ref.c | -rw-r--r-- | 1.3 KB |
builtin-tag.c | -rw-r--r-- | 11.1 KB |
builtin-tar-tree.c | -rw-r--r-- | 2.3 KB |
builtin-unpack-objects.c | -rw-r--r-- | 12.9 KB |
builtin-update-index.c | -rw-r--r-- | 19.2 KB |
builtin-update-ref.c | -rw-r--r-- | 1.6 KB |
builtin-update-server-info.c | -rw-r--r-- | 591 bytes |
builtin-upload-archive.c | -rw-r--r-- | 4.1 KB |
builtin-verify-pack.c | -rw-r--r-- | 4.1 KB |
builtin-verify-tag.c | -rw-r--r-- | 2.7 KB |
builtin-write-tree.c | -rw-r--r-- | 1.5 KB |
builtin.h | -rw-r--r-- | 7.4 KB |
bundle.c | -rw-r--r-- | 10.4 KB |
bundle.h | -rw-r--r-- | 627 bytes |
cache-tree.c | -rw-r--r-- | 15.6 KB |
cache-tree.h | -rw-r--r-- | 1.4 KB |
cache.h | -rw-r--r-- | 34.8 KB |
check-builtins.sh | -rwxr-xr-x | 588 bytes |
check-racy.c | -rw-r--r-- | 538 bytes |
check_bindir | -rwxr-xr-x | 369 bytes |
color.c | -rw-r--r-- | 4.5 KB |
color.h | -rw-r--r-- | 1.1 KB |
combine-diff.c | -rw-r--r-- | 27.7 KB |
command-list.txt | -rw-r--r-- | 7.5 KB |
commit.c | -rw-r--r-- | 17.5 KB |
commit.h | -rw-r--r-- | 4.8 KB |
config.c | -rw-r--r-- | 29.3 KB |
config.mak.in | -rw-r--r-- | 1.5 KB |
configure.ac | -rw-r--r-- | 22.0 KB |
connect.c | -rw-r--r-- | 14.0 KB |
convert.c | -rw-r--r-- | 14.1 KB |
copy.c | -rw-r--r-- | 1.6 KB |
csum-file.c | -rw-r--r-- | 2.5 KB |
csum-file.h | -rw-r--r-- | 761 bytes |
ctype.c | -rw-r--r-- | 874 bytes |
daemon.c | -rw-r--r-- | 25.2 KB |
date.c | -rw-r--r-- | 21.7 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.3 KB |
diff-lib.c | -rw-r--r-- | 12.9 KB |
diff-no-index.c | -rw-r--r-- | 6.1 KB |
diff.c | -rw-r--r-- | 92.8 KB |
diff.h | -rw-r--r-- | 8.8 KB |
diffcore-break.c | -rw-r--r-- | 8.6 KB |
diffcore-delta.c | -rw-r--r-- | 5.3 KB |
diffcore-order.c | -rw-r--r-- | 2.2 KB |
diffcore-pickaxe.c | -rw-r--r-- | 3.2 KB |
diffcore-rename.c | -rw-r--r-- | 16.8 KB |
diffcore.h | -rw-r--r-- | 4.0 KB |
dir.c | -rw-r--r-- | 21.7 KB |
dir.h | -rw-r--r-- | 2.5 KB |
editor.c | -rw-r--r-- | 1.2 KB |
entry.c | -rw-r--r-- | 6.0 KB |
environment.c | -rw-r--r-- | 4.7 KB |
exec_cmd.c | -rw-r--r-- | 3.3 KB |
exec_cmd.h | -rw-r--r-- | 487 bytes |
fast-import.c | -rw-r--r-- | 62.7 KB |
fetch-pack.h | -rw-r--r-- | 460 bytes |
fixup-builtins | -rwxr-xr-x | 432 bytes |
fsck.c | -rw-r--r-- | 8.0 KB |
fsck.h | -rw-r--r-- | 1023 bytes |
generate-cmdlist.sh | -rwxr-xr-x | 443 bytes |
git-add--interactive.perl | -rwxr-xr-x | 34.0 KB |
git-am.sh | -rwxr-xr-x | 17.3 KB |
git-archimport.perl | -rwxr-xr-x | 36.0 KB |
git-bisect.sh | -rwxr-xr-x | 9.9 KB |
git-compat-util.h | -rw-r--r-- | 11.3 KB |
git-cvsexportcommit.perl | -rwxr-xr-x | 12.4 KB |
git-cvsimport.perl | -rwxr-xr-x | 27.8 KB |
git-cvsserver.perl | -rwxr-xr-x | 113.7 KB |
git-difftool--helper.sh | -rwxr-xr-x | 1.6 KB |
git-difftool.perl | -rwxr-xr-x | 2.0 KB |
git-filter-branch.sh | -rwxr-xr-x | 11.5 KB |
git-instaweb.sh | -rwxr-xr-x | 10.4 KB |
git-lost-found.sh | -rwxr-xr-x | 554 bytes |
git-merge-octopus.sh | -rwxr-xr-x | 2.0 KB |
git-merge-one-file.sh | -rwxr-xr-x | 3.5 KB |
git-merge-resolve.sh | -rwxr-xr-x | 944 bytes |
git-mergetool--lib.sh | -rw-r--r-- | 8.7 KB |
git-mergetool.sh | -rwxr-xr-x | 6.0 KB |
git-parse-remote.sh | -rwxr-xr-x | 1.9 KB |
git-pull.sh | -rwxr-xr-x | 6.4 KB |
git-quiltimport.sh | -rwxr-xr-x | 3.3 KB |
git-rebase--interactive.sh | -rwxr-xr-x | 18.4 KB |
git-rebase.sh | -rwxr-xr-x | 13.5 KB |
git-relink.perl | -rwxr-xr-x | 4.0 KB |
git-repack.sh | -rwxr-xr-x | 4.4 KB |
git-request-pull.sh | -rwxr-xr-x | 1.6 KB |
git-send-email.perl | -rwxr-xr-x | 32.6 KB |
git-sh-setup.sh | -rwxr-xr-x | 4.2 KB |
git-stash.sh | -rwxr-xr-x | 8.5 KB |
git-submodule.sh | -rwxr-xr-x | 16.8 KB |
git-svn.perl | -rwxr-xr-x | 159.7 KB |
git-web--browse.sh | -rwxr-xr-x | 3.9 KB |
git.c | -rw-r--r-- | 14.2 KB |
git.spec.in | -rw-r--r-- | 9.6 KB |
graph.c | -rw-r--r-- | 34.6 KB |
graph.h | -rw-r--r-- | 2.6 KB |
grep.c | -rw-r--r-- | 17.4 KB |
grep.h | -rw-r--r-- | 2.0 KB |
hash-object.c | -rw-r--r-- | 3.6 KB |
hash.c | -rw-r--r-- | 2.5 KB |
hash.h | -rw-r--r-- | 1.1 KB |
help.c | -rw-r--r-- | 8.3 KB |
help.h | -rw-r--r-- | 751 bytes |
http-fetch.c | -rw-r--r-- | 2.1 KB |
http-push.c | -rw-r--r-- | 53.5 KB |
http-walker.c | -rw-r--r-- | 13.7 KB |
http.c | -rw-r--r-- | 30.0 KB |
http.h | -rw-r--r-- | 5.3 KB |
ident.c | -rw-r--r-- | 5.9 KB |
imap-send.c | -rw-r--r-- | 33.1 KB |
index-pack.c | -rw-r--r-- | 26.7 KB |
levenshtein.c | -rw-r--r-- | 2.5 KB |
levenshtein.h | -rw-r--r-- | 201 bytes |
list-objects.c | -rw-r--r-- | 4.6 KB |
list-objects.h | -rw-r--r-- | 422 bytes |
ll-merge.c | -rw-r--r-- | 8.8 KB |
ll-merge.h | -rw-r--r-- | 304 bytes |
lockfile.c | -rw-r--r-- | 6.2 KB |
log-tree.c | -rw-r--r-- | 13.9 KB |
log-tree.h | -rw-r--r-- | 783 bytes |
mailmap.c | -rw-r--r-- | 6.6 KB |
mailmap.h | -rw-r--r-- | 350 bytes |
match-trees.c | -rw-r--r-- | 7.1 KB |
merge-file.c | -rw-r--r-- | 2.4 KB |
merge-index.c | -rw-r--r-- | 2.2 KB |
merge-recursive.c | -rw-r--r-- | 38.0 KB |
merge-recursive.h | -rw-r--r-- | 1.2 KB |
merge-tree.c | -rw-r--r-- | 8.1 KB |
mktag.c | -rw-r--r-- | 5.2 KB |
name-hash.c | -rw-r--r-- | 2.5 KB |
object.c | -rw-r--r-- | 6.1 KB |
object.h | -rw-r--r-- | 2.7 KB |
pack-check.c | -rw-r--r-- | 4.5 KB |
pack-redundant.c | -rw-r--r-- | 14.9 KB |
pack-refs.c | -rw-r--r-- | 2.8 KB |
pack-refs.h | -rw-r--r-- | 465 bytes |
pack-revindex.c | -rw-r--r-- | 4.0 KB |
pack-revindex.h | -rw-r--r-- | 223 bytes |
pack-write.c | -rw-r--r-- | 7.3 KB |
pack.h | -rw-r--r-- | 2.2 KB |
pager.c | -rw-r--r-- | 1.9 KB |
parse-options.c | -rw-r--r-- | 15.3 KB |
parse-options.h | -rw-r--r-- | 6.9 KB |
patch-delta.c | -rw-r--r-- | 2.2 KB |
patch-id.c | -rw-r--r-- | 1.6 KB |
patch-ids.c | -rw-r--r-- | 2.5 KB |
patch-ids.h | -rw-r--r-- | 490 bytes |
path.c | -rw-r--r-- | 12.6 KB |
pkt-line.c | -rw-r--r-- | 2.4 KB |
pkt-line.h | -rw-r--r-- | 348 bytes |
preload-index.c | -rw-r--r-- | 2.3 KB |
pretty.c | -rw-r--r-- | 23.6 KB |
progress.c | -rw-r--r-- | 6.5 KB |
progress.h | -rw-r--r-- | 504 bytes |
quote.c | -rw-r--r-- | 10.1 KB |
quote.h | -rw-r--r-- | 2.6 KB |
reachable.c | -rw-r--r-- | 5.6 KB |
reachable.h | -rw-r--r-- | 127 bytes |
read-cache.c | -rw-r--r-- | 45.3 KB |
reflog-walk.c | -rw-r--r-- | 6.7 KB |
reflog-walk.h | -rw-r--r-- | 416 bytes |
refs.c | -rw-r--r-- | 42.1 KB |
refs.h | -rw-r--r-- | 3.7 KB |
remote-curl.c | -rw-r--r-- | 2.9 KB |
remote.c | -rw-r--r-- | 37.5 KB |
remote.h | -rw-r--r-- | 3.8 KB |
replace_object.c | -rw-r--r-- | 2.6 KB |
rerere.c | -rw-r--r-- | 9.3 KB |
rerere.h | -rw-r--r-- | 259 bytes |
revision.c | -rw-r--r-- | 48.8 KB |
revision.h | -rw-r--r-- | 4.2 KB |
run-command.c | -rw-r--r-- | 8.5 KB |
run-command.h | -rw-r--r-- | 2.6 KB |
send-pack.h | -rw-r--r-- | 355 bytes |
server-info.c | -rw-r--r-- | 5.2 KB |
setup.c | -rw-r--r-- | 12.7 KB |
sha1-lookup.c | -rw-r--r-- | 7.8 KB |
sha1-lookup.h | -rw-r--r-- | 403 bytes |
sha1_file.c | -rw-r--r-- | 65.1 KB |
sha1_name.c | -rw-r--r-- | 19.6 KB |
shallow.c | -rw-r--r-- | 2.3 KB |
shell.c | -rw-r--r-- | 2.2 KB |
shortlog.h | -rw-r--r-- | 450 bytes |
show-index.c | -rw-r--r-- | 2.1 KB |
sideband.c | -rw-r--r-- | 3.3 KB |
sideband.h | -rw-r--r-- | 326 bytes |
sigchain.c | -rw-r--r-- | 969 bytes |
sigchain.h | -rw-r--r-- | 215 bytes |
strbuf.c | -rw-r--r-- | 7.7 KB |
strbuf.h | -rw-r--r-- | 4.9 KB |
string-list.c | -rw-r--r-- | 4.2 KB |
string-list.h | -rw-r--r-- | 1.7 KB |
symlinks.c | -rw-r--r-- | 8.6 KB |
tag.c | -rw-r--r-- | 2.7 KB |
tag.h | -rw-r--r-- | 471 bytes |
tar.h | -rw-r--r-- | 644 bytes |
test-chmtime.c | -rw-r--r-- | 2.6 KB |
test-ctype.c | -rw-r--r-- | 1.4 KB |
test-date.c | -rw-r--r-- | 1.3 KB |
test-delta.c | -rw-r--r-- | 1.8 KB |
test-dump-cache-tree.c | -rw-r--r-- | 1.5 KB |
test-genrandom.c | -rw-r--r-- | 722 bytes |
test-match-trees.c | -rw-r--r-- | 588 bytes |
test-parse-options.c | -rw-r--r-- | 3.0 KB |
test-path-utils.c | -rw-r--r-- | 872 bytes |
test-sha1.c | -rw-r--r-- | 816 bytes |
test-sha1.sh | -rwxr-xr-x | 1.9 KB |
test-sigchain.c | -rw-r--r-- | 344 bytes |
thread-utils.c | -rw-r--r-- | 965 bytes |
thread-utils.h | -rw-r--r-- | 109 bytes |
trace.c | -rw-r--r-- | 3.5 KB |
transport-helper.c | -rw-r--r-- | 3.8 KB |
transport.c | -rw-r--r-- | 24.8 KB |
transport.h | -rw-r--r-- | 2.7 KB |
tree-diff.c | -rw-r--r-- | 11.9 KB |
tree-walk.c | -rw-r--r-- | 5.3 KB |
tree-walk.h | -rw-r--r-- | 1.7 KB |
tree.c | -rw-r--r-- | 7.0 KB |
tree.h | -rw-r--r-- | 883 bytes |
unimplemented.sh | -rw-r--r-- | 100 bytes |
unpack-file.c | -rw-r--r-- | 841 bytes |
unpack-trees.c | -rw-r--r-- | 24.8 KB |
unpack-trees.h | -rw-r--r-- | 1.4 KB |
upload-pack.c | -rw-r--r-- | 18.3 KB |
usage.c | -rw-r--r-- | 2.3 KB |
userdiff.c | -rw-r--r-- | 6.0 KB |
userdiff.h | -rw-r--r-- | 477 bytes |
utf8.c | -rw-r--r-- | 11.6 KB |
utf8.h | -rw-r--r-- | 580 bytes |
var.c | -rw-r--r-- | 1.4 KB |
walker.c | -rw-r--r-- | 7.2 KB |
walker.h | -rw-r--r-- | 1.1 KB |
wrapper.c | -rw-r--r-- | 6.1 KB |
write_or_die.c | -rw-r--r-- | 2.0 KB |
ws.c | -rw-r--r-- | 7.9 KB |
wt-status.c | -rw-r--r-- | 15.5 KB |
wt-status.h | -rw-r--r-- | 1.1 KB |
xdiff-interface.c | -rw-r--r-- | 7.9 KB |
xdiff-interface.h | -rw-r--r-- | 1.1 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...