Code

get_sha1_basic(): fix invalid memory access, found by valgrind
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Tue, 27 Jan 2009 23:07:46 +0000 (00:07 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 27 Jan 2009 23:16:31 +0000 (15:16 -0800)
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>
sha1_name.c

index 75a5a7e96f292bed344a7609fca2f3a45ba4314e..c4fdaded01192f4ddb3c8956dd5d1f7b83606817 100644 (file)
@@ -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);