summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVicent Martí <vicent@github.com>2012-11-07 16:30:55 -0800
committerVicent Martí <vicent@github.com>2012-11-07 16:30:55 -0800
commit8ff2b0c75983160264ee7c45a01bde27cfbc91ea (patch)
tree0a98e0ddf5a25f9759b6f469309f1f865f74eaec /src
parent721571cc5ebc842b2a95a4b652362a3a23e98ca3 (diff)
parent6bb9fea13ee2da6475ac799acd5f8296bc1a8537 (diff)
downloadlibgit2-8ff2b0c75983160264ee7c45a01bde27cfbc91ea.tar.gz
Merge pull request #1039 from erikvanzijst/erik/tag_without_message
Correctly parse tags lacking a description
Diffstat (limited to 'src')
-rw-r--r--src/tag.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/tag.c b/src/tag.c
index 56f84a85f..4c3d811eb 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -139,16 +139,19 @@ int git_tag__parse_buffer(git_tag *tag, const char *buffer, size_t length)
return -1;
}
- if( *buffer != '\n' )
- return tag_error("No new line before message");
+ tag->message = NULL;
+ if (buffer < buffer_end) {
+ if( *buffer != '\n' )
+ return tag_error("No new line before message");
- text_len = buffer_end - ++buffer;
+ text_len = buffer_end - ++buffer;
- tag->message = git__malloc(text_len + 1);
- GITERR_CHECK_ALLOC(tag->message);
+ tag->message = git__malloc(text_len + 1);
+ GITERR_CHECK_ALLOC(tag->message);
- memcpy(tag->message, buffer, text_len);
- tag->message[text_len] = '\0';
+ memcpy(tag->message, buffer, text_len);
+ tag->message[text_len] = '\0';
+ }
return 0;
}