]> git.ipfire.org Git - thirdparty/git.git/commit
ssh signing: don't detach the filename strbuf from key_file tempfile
authorredoste <redoste@redoste.xyz>
Mon, 7 Jul 2025 18:48:51 +0000 (20:48 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 7 Jul 2025 20:41:25 +0000 (13:41 -0700)
commit4498127b04372cff39cf34c5559d1cf547c643e6
tree2e7327ea664ad3b899dbe74a0955bfcf0ce2c99f
parent16bd9f20a403117f2e0d9bcda6c6e621d3763e77
ssh signing: don't detach the filename strbuf from key_file tempfile

Detaching the filename string from the tempfile structure used to cause
delete_tempfile() to fail and the temporary file was not cleaned up.

While it's possible to get rid of the allocation and copy from
xstrdup(), it keeps the code symetric with the other branch since
interpolate_path() also allocates and ssh_signing_key_file is freed
in both cases.

The exisiting test was updated to check if the temporary files are
properly deleted. To prevent TMPDIR from leaking into the other tests, a
new subshell is created, however this prevents test_config from working.
The cleanup of the config changed in the subshell is done by
test_unconfig in a call to test_when_finished outside of it.

Helped-by: brian m. carlson <sandals@crustytoothpaste.net>
Helped-by: Patrick Steinhardt <ps@pks.im>
Helped-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: redoste <redoste@redoste.xyz>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
gpg-interface.c
t/t7528-signed-commit-ssh.sh