Am 30.11.20 um 20:53 schrieb Taylor Blau: > On Mon, Nov 30, 2020 at 08:27:15PM +0100, René Scharfe wrote: >> index_pack_lockfile() can return NULL if it doesn't like the contents it >> reads from the file descriptor passed to it. unlink(2) is declared to >> not accept NULL pointers (at least with glibc). Undefined Behavior >> Sanitizer together with Address Sanitizer detects a case where a NULL >> lockfile name is passed to unlink(2) by transport_unlock_pack() in t1060 >> (make SANITIZE=address,undefined; cd t; ./t1060-object-corruption.sh). > > Which test in t1060? I tried to reproduce this myself, but couldn't seem > to coax out a failure. (Initially I thought that my ccache wasn't > letting me recompile with the SANITIZE options, but running 'ccache > clear' and then trying again left the test still passing). 15 - fetch into corrupted repo with index-pack $ cat trash\ directory.t1060-object-corruption/bit-error-cp/stderr error: inflate: data stream error (invalid distance too far back) error: unable to unpack d95f3ad14dee633a758d2e331151e950dd13e4ed header fatal: cannot read existing object info d95f3ad14dee633a758d2e331151e950dd13e4ed fatal: index-pack failed wrapper.c:568:52: runtime error: null pointer passed as argument 1, which is declared to never be null /usr/include/unistd.h:825:48: note: nonnull attribute specified here SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior wrapper.c:568:52 in Aborted Compiled with: Debian clang version 11.0.0-5+b1 Target: x86_64-pc-linux-gnu Thread model: posix InstalledDir: /usr/bin René