ソースを参照

[Fix] Avoid strdup usage for symbols options

tags/2.4
Vsevolod Stakhov 4年前
コミット
d17a92c24e
1個のファイルの変更8行の追加7行の削除
  1. 8
    7
      src/libmime/scan_result.c

+ 8
- 7
src/libmime/scan_result.c ファイルの表示

@@ -550,17 +550,18 @@ rspamd_task_add_result_option (struct rspamd_task *task,
k = kh_get (rspamd_options_hash, s->options, &srch);

if (k == kh_end (s->options)) {
opt = rspamd_mempool_alloc0 (task->task_pool, sizeof (*opt));
gchar *dst_cpy;

if (opt_cpy == NULL) {
opt_cpy = rspamd_mempool_strdup (task->task_pool, val);
}
opt = rspamd_mempool_alloc0 (task->task_pool,
sizeof (*opt) + vlen + 1);

dst_cpy = ((gchar *)opt) + sizeof (*opt);
memcpy (dst_cpy, val, vlen);
dst_cpy[vlen] = '\0';
opt->optlen = vlen;
opt->option = opt_cpy;
opt->option = dst_cpy;

k = kh_put (rspamd_options_hash, s->options, opt, &r);
opt->option = opt_cpy;
kh_put (rspamd_options_hash, s->options, opt, &r);
DL_APPEND (s->opts_head, opt);

ret = TRUE;

読み込み中…
キャンセル
保存