name-ref on annotated-tags is null terminated, but lightweight tags arent
From: Max Resnick <hidden>
Date: 2020-06-05 16:51:13
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]