summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2015-09-10 13:47:28 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2015-09-10 13:47:28 +0100
commit0affe52da0ca281a482f8dfeb0868529425f0377 (patch)
treec4925b99021dcb40f11d0e45ba2433af43d235fa
parente52f7b39afb23093d38a0b90e5f9b640671c27f4 (diff)
downloadrspamd-0affe52da0ca281a482f8dfeb0868529425f0377.tar.gz
rspamd-0affe52da0ca281a482f8dfeb0868529425f0377.zip
Be more carefull about newlines in html.
-rw-r--r--src/libserver/html.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/libserver/html.c b/src/libserver/html.c
index 401c13f7a..96380a3ef 100644
--- a/src/libserver/html.c
+++ b/src/libserver/html.c
@@ -1887,10 +1887,14 @@ rspamd_html_process_part_full (rspamd_mempool_t *pool, struct html_content *hc,
setbit (hc->tags_seen, cur_tag->id);
}
- if ((cur_tag->id == Tag_P || cur_tag->id == Tag_BR ||
- cur_tag->id == Tag_HR) && balanced) {
+ if ((cur_tag->flags & (FL_CLOSED|FL_CLOSING)) &&
+ (cur_tag->id == Tag_P || cur_tag->id == Tag_BR ||
+ cur_tag->id == Tag_HR || cur_tag->id == Tag_TR ||
+ cur_tag->id == Tag_DIV) && balanced) {
/* Insert newline */
- g_byte_array_append (dest, "\r\n", 2);
+ if (dest->data[dest->len - 1] != '\n') {
+ g_byte_array_append (dest, "\r\n", 2);
+ }
save_space = FALSE;
}