Procházet zdrojové kódy

[Fix] Fix sanity checks on macro value

Issue: #1998
MFH: rspamd-1.6
tags/1.7.0
Vsevolod Stakhov před 6 roky
rodič
revize
b0bdf4c023
1 změnil soubory, kde provedl 3 přidání a 3 odebrání
  1. 3
    3
      src/libserver/milter.c

+ 3
- 3
src/libserver/milter.c Zobrazit soubor

@@ -450,7 +450,7 @@ rspamd_milter_process_command (struct rspamd_milter_session *session,
while (pos < end) {
zero = memchr (pos, '\0', cmdlen);

if (zero == NULL) {
if (zero == NULL || end >= zero) {
err = g_error_new (rspamd_milter_quark (), EINVAL, "invalid "
"macro command (no name)");
rspamd_milter_on_protocol_error (session, priv, err);
@@ -462,9 +462,9 @@ rspamd_milter_process_command (struct rspamd_milter_session *session,
rspamd_ftok_t *name_tok, *value_tok;
const guchar *zero_val;

zero_val = memchr (zero + 1, '\0', cmdlen);
zero_val = memchr (zero + 1, '\0', cmdlen - (end - zero));

if (end > zero_val) {
if (zero_val != NULL && end > zero_val) {
name = rspamd_fstring_new_init (pos, zero - pos);
value = rspamd_fstring_new_init (zero + 1,
zero_val - zero - 1);

Načítá se…
Zrušit
Uložit