Browse Source

[Minor] Add safety checks when decoding CT attributes

tags/3.0
Vsevolod Stakhov 3 years ago
parent
commit
125664ba6c
2 changed files with 9 additions and 3 deletions
  1. 5
    3
      src/libmime/content_type.c
  2. 4
    0
      src/libmime/mime_headers.c

+ 5
- 3
src/libmime/content_type.c View File

@@ -228,9 +228,11 @@ rspamd_postprocess_ct_attributes (rspamd_mempool_t *pool,

gboolean invalid_utf = FALSE;

param->value.begin = rspamd_mime_header_decode (pool, param->value.begin,
param->value.len, &invalid_utf);
param->value.len = strlen (param->value.begin);
if (param->value.begin != NULL && param->value.len > 0) {
param->value.begin = rspamd_mime_header_decode(pool, param->value.begin,
param->value.len, &invalid_utf);
param->value.len = strlen(param->value.begin);
}

if (invalid_utf) {
param->flags |= RSPAMD_CONTENT_PARAM_BROKEN;

+ 4
- 0
src/libmime/mime_headers.c View File

@@ -1911,6 +1911,10 @@ rspamd_message_set_modified_header (struct rspamd_task *task,

raw_value = ucl_object_tolstring (value, &raw_len);

if (raw_len == 0) {
continue;
}

struct rspamd_mime_header *nhdr = rspamd_mempool_alloc0 (
task->task_pool, sizeof (*nhdr));


Loading…
Cancel
Save