if (name->len > 0) {
elt->name = rspamd_mime_header_decode (pool, name->str, name->len);
+ elt->name_len = strlen (elt->name);
}
g_ptr_array_add (ar, elt);
if (*p == '"') {
/* We need to strip last spaces and update `ns` */
if (p > c) {
- t = p;
+ t = p - 1;
+
while (t > c && g_ascii_isspace (*t)) {
t --;
}
- g_string_append_len (ns, c, t - c);
+ g_string_append_len (ns, c, t - c + 1);
}
state = parse_quoted;
}
else if (*p == '<') {
if (p > c) {
- t = p;
+ t = p - 1;
+
while (t > c && g_ascii_isspace (*t)) {
t --;
}
- g_string_append_len (ns, c, t - c);
+ g_string_append_len (ns, c, t - c + 1);
}
c = p;
* e.g. Some name name@domain.com
*/
t = p;
+
while (t > c && g_ascii_isspace (*t)) {
t --;
}
- rspamd_smtp_addr_parse (c, t - c, &addr);
+ rspamd_smtp_addr_parse (c, t - c + 1, &addr);
if (addr.flags & RSPAMD_EMAIL_ADDR_VALID) {
rspamd_email_address_add (pool, res, &addr, ns);
case parse_name:
case parse_addr:
if (p > c) {
- rspamd_smtp_addr_parse (c, p - c + 1, &addr);
+ rspamd_smtp_addr_parse (c, p - c, &addr);
if (addr.flags & RSPAMD_EMAIL_ADDR_VALID) {
rspamd_email_address_add (pool, res, &addr, ns);