]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Add some more boundaries checks
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 7 Apr 2017 15:56:51 +0000 (16:56 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 7 Apr 2017 15:56:51 +0000 (16:56 +0100)
src/libserver/spf.c

index f106e534d08e24a4189f8b31ba234194826c0b67..dc8e2b36c0404e61eba03c730796d6109f5f9728 100644 (file)
@@ -424,17 +424,17 @@ spf_check_ptr_host (struct spf_dns_cb *cb, const char *name)
        const char *dend, *nend, *dstart, *nstart;
        struct spf_record *rec = cb->rec;
 
-       if (name == NULL) {
-               return FALSE;
-       }
        if (cb->ptr_host != NULL) {
                dstart = cb->ptr_host;
-
        }
        else {
                dstart = cb->resolved->cur_domain;
        }
 
+       if (name == NULL || dstart == NULL) {
+               return FALSE;
+       }
+
        msg_debug_spf ("check ptr %s vs %s", name, dstart);
 
        /* We need to check whether `cur_domain` is a subdomain for `name` */
@@ -442,7 +442,7 @@ spf_check_ptr_host (struct spf_dns_cb *cb, const char *name)
        nstart = name;
        nend = nstart + strlen (nstart) - 1;
 
-       if (nend == nstart || dend == dstart) {
+       if (nend <= nstart || dend <= dstart) {
                return FALSE;
        }
        /* Strip last '.' from names */