Lenient parameters parsing

pull/213/head
M66B 2 years ago
parent ed56b9be57
commit 2d4d5b579c

@ -234,12 +234,19 @@ public class ParameterList {
if (type == HeaderTokenizer.Token.EOF) // done if (type == HeaderTokenizer.Token.EOF) // done
break; break;
if ((char)type == ';') { if ((char)type == ';' || type == HeaderTokenizer.Token.ATOM) {
// expect parameter name // expect parameter name
tk = h.next(); if (type == HeaderTokenizer.Token.ATOM)
// tolerate trailing semicolon, even though it violates the spec eu.faircode.email.Log.e("In parameter list <" + s + ">" +
if (tk.getType() == HeaderTokenizer.Token.EOF) ", at " + h.getNextPos() +
break; ", expected ';', allowing \"" +
tk.getValue() + "\"");
else {
tk = h.next();
// tolerate trailing semicolon, even though it violates the spec
if (tk.getType() == HeaderTokenizer.Token.EOF)
break;
}
// parameter name must be a MIME Atom // parameter name must be a MIME Atom
if (tk.getType() != HeaderTokenizer.Token.ATOM) { if (tk.getType() != HeaderTokenizer.Token.ATOM) {
if (!recovered && !eu.faircode.email.BuildConfig.PLAY_STORE_RELEASE) if (!recovered && !eu.faircode.email.BuildConfig.PLAY_STORE_RELEASE)

Loading…
Cancel
Save