summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2009-01-27 23:07:46 (GMT)
committerJunio C Hamano <gitster@pobox.com>2009-01-27 23:16:31 (GMT)
commitf265458f6116a0c03200477ae3b839f2a75bf0fa (patch)
treefd73456d14510000e51a9b536d294371643abab0
parentb938f62a208d24f3d6bed260ceb809cd6b3924d7 (diff)
downloadgit-f265458f6116a0c03200477ae3b839f2a75bf0fa.zip
git-f265458f6116a0c03200477ae3b839f2a75bf0fa.tar.gz
git-f265458f6116a0c03200477ae3b839f2a75bf0fa.tar.bz2
get_sha1_basic(): fix invalid memory access, found by valgrind
When get_sha1_basic() is passed a buffer of len 0, it should not check if buf[len-1] is a curly bracket. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--sha1_name.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sha1_name.c b/sha1_name.c
index 75a5a7e..c4fdade 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -309,7 +309,7 @@ static int get_sha1_basic(const char *str, int len, unsigned char *sha1)
/* basic@{time or number} format to query ref-log */
reflog_len = at = 0;
- if (str[len-1] == '}') {
+ if (len && str[len-1] == '}') {
for (at = 0; at < len - 1; at++) {
if (str[at] == '@' && str[at+1] == '{') {
reflog_len = (len-1) - (at+2);