summaryrefslogtreecommitdiff
path: root/attr.c
diff options
context:
space:
mode:
authorLibravatar Jeff King <peff@peff.net>2008-08-19 13:28:24 -0400
committerLibravatar Junio C Hamano <gitster@pobox.com>2008-08-19 19:36:56 -0700
commite9d7d10a7f17fb9cc6a4d37b6fdf27170f4deede (patch)
treefd6d405f55a76858d0437a3fba201c17b8a0d975 /attr.c
parentgit format-patch: avoid underrun when format.headers is empty or all NLs (diff)
downloadtgif-e9d7d10a7f17fb9cc6a4d37b6fdf27170f4deede.tar.xz
mailinfo: avoid violating strbuf assertion
In handle_from, we calculate the end boundary of a section to remove from a strbuf using strcspn like this: el = strcspn(buf, set_of_end_boundaries); strbuf_remove(&sb, start, el + 1); This works fine if "el" is the offset of the boundary character, meaning we remove up to and including that character. But if the end boundary didn't match (that is, we hit the end of the string as the boundary instead) then we want just "el". Asking for "el+1" caught an out-of-bounds assertion in the strbuf library. This manifested itself when we got a 'From' header that had just an email address with nothing else in it (the end of the string was the end of the address, rather than, e.g., a trailing '>' character), causing git-mailinfo to barf. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'attr.c')
0 files changed, 0 insertions, 0 deletions