ref-filter: initialize empty name or email fields
Formatting $(taggername) on headerless tags such as v0.99 in Git
causes a SIGABRT with error "munmap_chunk(): invalid pointer",
because of an oversight in commit f0062d3b74 (ref-filter: free
item->value and item->value->s, 2018-10-19).
Signed-off-by: Mischa POSLAWSKY <git@shiar.nl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
parent
0d0ac3826a
commit
8b3f33ef11
|
|
@ -976,7 +976,7 @@ static const char *copy_name(const char *buf)
|
||||||
if (!strncmp(cp, " <", 2))
|
if (!strncmp(cp, " <", 2))
|
||||||
return xmemdupz(buf, cp - buf);
|
return xmemdupz(buf, cp - buf);
|
||||||
}
|
}
|
||||||
return "";
|
return xstrdup("");
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char *copy_email(const char *buf)
|
static const char *copy_email(const char *buf)
|
||||||
|
|
@ -984,10 +984,10 @@ static const char *copy_email(const char *buf)
|
||||||
const char *email = strchr(buf, '<');
|
const char *email = strchr(buf, '<');
|
||||||
const char *eoemail;
|
const char *eoemail;
|
||||||
if (!email)
|
if (!email)
|
||||||
return "";
|
return xstrdup("");
|
||||||
eoemail = strchr(email, '>');
|
eoemail = strchr(email, '>');
|
||||||
if (!eoemail)
|
if (!eoemail)
|
||||||
return "";
|
return xstrdup("");
|
||||||
return xmemdupz(email, eoemail + 1 - email);
|
return xmemdupz(email, eoemail + 1 - email);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -485,6 +485,25 @@ test_expect_success 'Check ambiguous head and tag refs II (loose)' '
|
||||||
test_cmp expected actual
|
test_cmp expected actual
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'create tag without tagger' '
|
||||||
|
git tag -a -m "Broken tag" taggerless &&
|
||||||
|
git tag -f taggerless $(git cat-file tag taggerless |
|
||||||
|
sed -e "/^tagger /d" |
|
||||||
|
git hash-object --stdin -w -t tag)
|
||||||
|
'
|
||||||
|
|
||||||
|
test_atom refs/tags/taggerless type 'commit'
|
||||||
|
test_atom refs/tags/taggerless tag 'taggerless'
|
||||||
|
test_atom refs/tags/taggerless tagger ''
|
||||||
|
test_atom refs/tags/taggerless taggername ''
|
||||||
|
test_atom refs/tags/taggerless taggeremail ''
|
||||||
|
test_atom refs/tags/taggerless taggerdate ''
|
||||||
|
test_atom refs/tags/taggerless committer ''
|
||||||
|
test_atom refs/tags/taggerless committername ''
|
||||||
|
test_atom refs/tags/taggerless committeremail ''
|
||||||
|
test_atom refs/tags/taggerless committerdate ''
|
||||||
|
test_atom refs/tags/taggerless subject 'Broken tag'
|
||||||
|
|
||||||
test_expect_success 'an unusual tag with an incomplete line' '
|
test_expect_success 'an unusual tag with an incomplete line' '
|
||||||
|
|
||||||
git tag -m "bogo" bogo &&
|
git tag -m "bogo" bogo &&
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue