From: Vsevolod Stakhov Date: Mon, 23 Aug 2021 13:10:01 +0000 (+0100) Subject: [Minor] Rdns: One more sanity check added X-Git-Tag: 3.1~234 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=c96b4fc946407b9e1701a0b2c9b67339165ab1f5;p=rspamd.git [Minor] Rdns: One more sanity check added --- diff --git a/contrib/librdns/parse.c b/contrib/librdns/parse.c index 559d430a0..18bb6a694 100644 --- a/contrib/librdns/parse.c +++ b/contrib/librdns/parse.c @@ -370,6 +370,16 @@ rdns_parse_rr (struct rdns_resolver *resolver, *remain -= txtlen + 1; } else { + + if (txtlen + copied + parts > datalen) { + /* Incorrect datalen reported ! */ + rdns_err ("incorrect txtlen (%d) > datalen (%d) reported; domain %s", + (txtlen + copied + parts), datalen, + rep->requested_name); + return -1; + } + + /* Reported equal to the actual data copied */ break; } } @@ -425,7 +435,7 @@ rdns_parse_rr (struct rdns_resolver *resolver, *remain -= datalen; break; default: - rdns_debug ("unexpected RR type: %d; domain %s", type, rep->requested_name); + rdns_info ("unexpected RR type: %d; domain %s", type, rep->requested_name); p += datalen; *remain -= datalen; break;