On Wed, Jan 29, 2025 at 05:24:13PM +0100, Patrick Steinhardt wrote: > I've had the need to play around with the memory leak sanitizer today > and for the first time used it with Meson. Interestingly enough, a test > run with Meson flags two memory leaks that our Makefile doesn't. I > haven't found the time yet to figure out why that is, but this small > patch series fixes both of these leaks. At least for the first one, it depends on how long the path to your trash directory is. Doing this: make SANITIZE=leak cd t ./t0301-credential-cache.sh --root=/tmp/this_is_a_very_long_path/the_size_of_sockaddr_un_sun_path_is_usually_108 will fail reliably (it's not 108, but with the trash directory and xdg boilerplate tacked on, it is). The failed chdir() triggers because it's trying the xdg path to see if it exists. With "make", my path is something like: /home/peff/compile/git/t/trash directory.t0301-credential-cache/.cache/git/credential/socket which is 93 bytes. If I do an out-of-tree build into the "build" directory, then I get 109 bytes, one too many: /home/peff/compile/git/build/test-output/trash directory.t0301-credential-cache/.cache/git/credential/socket so it is mostly a matter of luck combined with your personal directory layout. This test would trigger it reliably, but it's weirdly specific: diff --git a/t/t0301-credential-cache.sh b/t/t0301-credential-cache.sh index dc30289f75..0ef8ce4e60 100755 --- a/t/t0301-credential-cache.sh +++ b/t/t0301-credential-cache.sh @@ -134,6 +134,13 @@ test_expect_success SYMLINKS 'use user socket if user directory is a symlink to test_path_is_socket "$HOME/.git-credential-cache/socket" ' +test_expect_success 'error path for chdir of long socket name' ' + A=aaaaaaaaaaaaaaaa && + LONG=$A/$A/$A/$A/$A/$A/$A/$A && + # do not create $LONG; we want to trigger the error + git credential-cache --socket "$PWD/$LONG/socket" exit +' + helper_test_timeout cache --timeout=1 test_done So I don't know if it's worth adding in to your patch. The fix itself is obviously correct. -Peff