Thank you for filling out a Git bug report! Please answer the following questions to help us understand your issue. What did you do before the bug happened? (Steps to reproduce your issue) I was using name-rev to resolve a commits tag name. Annotated tags seem to have a null termination and lightweight tags dont. ``` /tmp ❯ git clone https://github.com/maxres-fr/null-termination-issue.git Cloning into 'null-termination-issue'... remote: Enumerating objects: 10, done. remote: Counting objects: 100% (10/10), done. remote: Compressing objects: 100% (4/4), done. remote: Total 10 (delta 0), reused 10 (delta 0), pack-reused 0 Unpacking objects: 100% (10/10), 757 bytes | 189.00 KiB/s, done. /tmp ❯ cd null-termination-issue /tmp/null-termination-issue on master ❯ git pull --tags Already up to date. /tmp/null-termination-issue on master ❯ git tag --list /tmp/null-termination-issue on master ❯ git name-rev --tag --name-only 38bdebc9107cab4ab3718d0581632702e74d9209 annotated-tag^0 /tmp/null-termination-issue on master ❯ git name-rev --tag --name-only a340894d3ee655ae6c336a85b42d2215d52609e3 lightweight-tag ``` What did you expect to happen? (Expected behavior) `git name-rev --tag --name-only ANNOTATED-COMMIT-ID` to return the name without null termination What happened instead? (Actual behavior) `git name-rev --tag --name-only ANNOTATED-COMMIT-ID` returns the name but it's null terminated What's different between what you expected and what actually happened? a null control character exists. Anything else you want to add: I tried this with the following git versions: 2.11, 2.23, 2.26, 2.27. I've also been able to reproduce on MacOS. Please review the rest of the bug report below. You can delete any lines you don't wish to share. [System Info] git version: git version 2.27.0.rc0 cpu: x86_64 no commit associated with this build sizeof-long: 8 sizeof-size_t: 8 uname: Linux 5.6.0-1-amd64 #1 SMP Debian 5.6.7-1 (2020-04-29) x86_64 compiler info: gnuc: 9.3 libc info: glibc: 2.30 [Enabled Hooks]