diff options
Diffstat (limited to 'src/src/verify.c')
-rw-r--r-- | src/src/verify.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/src/verify.c b/src/src/verify.c index e12c3f46c..deca5bc6c 100644 --- a/src/src/verify.c +++ b/src/src/verify.c @@ -574,6 +574,7 @@ else { smtp_transport_options_block *ob = (smtp_transport_options_block *)addr->transport->options_block; + smtp_context * sx = NULL; /* The information wasn't available in the cache, so we have to do a real callout and save the result in the cache for next time, unless no_cache is set, @@ -630,7 +631,6 @@ coding means skipping this whole loop and doing the append separately. */ int host_af; int port = 25; uschar * interface = NULL; /* Outgoing interface to use; NULL => any */ - smtp_context * sx = store_get(sizeof(*sx), TRUE); /* tainted buffers */ if (!host->address) { @@ -670,6 +670,9 @@ coding means skipping this whole loop and doing the append separately. */ log_write(0, LOG_MAIN|LOG_PANIC, "<%s>: %s", addr->address, addr->message); + if (!sx) sx = store_get(sizeof(*sx), TRUE); /* tainted buffers */ + memset(sx, 0, sizeof(*sx)); + sx->addrlist = addr; sx->conn_args.host = host; sx->conn_args.host_af = host_af, |