Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Meier <r.meier@siemens.com>2020-04-13 18:04:44 +0300
committerRoger Meier <r.meier@siemens.com>2020-04-15 17:25:51 +0300
commit2e9b29332cb87e8d2d6f4ec8401c12d110e1e0fc (patch)
tree7ca9d3dfab40c4bccf20d7c3862f244da1f9fa28
parent58685db54bee28f4d863394c53c51b636ce2ed01 (diff)
Fix signature detection for tags
Closes #2645
-rw-r--r--changelogs/unreleased/fix-tag-message-parse.yml5
-rw-r--r--internal/git/log/tag.go11
2 files changed, 13 insertions, 3 deletions
diff --git a/changelogs/unreleased/fix-tag-message-parse.yml b/changelogs/unreleased/fix-tag-message-parse.yml
new file mode 100644
index 000000000..24a18342b
--- /dev/null
+++ b/changelogs/unreleased/fix-tag-message-parse.yml
@@ -0,0 +1,5 @@
+---
+title: Fix signature detection for tags
+merge_request: 2045
+author: Roger Meier
+type: fixed
diff --git a/internal/git/log/tag.go b/internal/git/log/tag.go
index 0b71ef3df..f309f9b78 100644
--- a/internal/git/log/tag.go
+++ b/internal/git/log/tag.go
@@ -121,10 +121,15 @@ func buildAnnotatedTag(b *catfile.Batch, tagID, name string, header *tagHeader,
// tags contain the signature block in the message:
// https://github.com/git/git/blob/master/Documentation/technical/signature-format.txt#L12
- index := bytes.Index(tag.Message, []byte("-----BEGIN"))
+ index := bytes.Index(body, []byte("-----BEGIN"))
+
if index > 0 {
- signature := string(tag.Message[index : bytes.Index(tag.Message[index:], []byte("\n"))+index])
- tag.SignatureType = detectSignatureType(signature)
+ length := bytes.Index(body[index:], []byte("\n"))
+
+ if length > 0 {
+ signature := string(body[index : length+index])
+ tag.SignatureType = detectSignatureType(signature)
+ }
}
tag.Tagger = parseCommitAuthor(header.tagger)