Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
Merge branch 'rs/mailinfo-qp-decode-fix' into maint
author
Junio C Hamano
<gitster@pobox.com>
Wed, 18 Oct 2017 05:19:03 +0000
(14:19 +0900)
committer
Junio C Hamano
<gitster@pobox.com>
Wed, 18 Oct 2017 05:19:03 +0000
(14:19 +0900)
"git mailinfo" was loose in decoding quoted printable and produced
garbage when the two letters after the equal sign are not
hexadecimal. This has been fixed.
* rs/mailinfo-qp-decode-fix:
mailinfo: don't decode invalid =XY quoted-printable sequences
mailinfo.c
patch
|
blob
|
history
raw
(from parent 1:
b8a4e89
)
diff --git
a/mailinfo.c
b/mailinfo.c
index bd574cb75210334b1a4628f182743b49bd389cd7..70187e3eb30b102c7038a1d1c4e0033d856c99ac 100644
(file)
--- a/
mailinfo.c
+++ b/
mailinfo.c
@@
-368,11
+368,16
@@
static struct strbuf *decode_q_segment(const struct strbuf *q_seg, int rfc2047)
while ((c = *in++) != 0) {
if (c == '=') {
- int
d = *in++
;
+ int
ch, d = *in
;
if (d == '\n' || !d)
break; /* drop trailing newline */
- strbuf_addch(out, (hexval(d) << 4) | hexval(*in++));
- continue;
+ ch = hex2chr(in);
+ if (ch >= 0) {
+ strbuf_addch(out, ch);
+ in += 2;
+ continue;
+ }
+ /* garbage -- fall through */
}
if (rfc2047 && c == '_') /* rfc2047 4.2 (2) */
c = 0x20;