1 From a818f67959c0f6dd23ca37280d5c4f9b9ee07125 Mon Sep 17 00:00:00 2001
2 From: Jeremy Harris <jgh146exb@wizmail.org>
3 Date: Fri, 5 Jun 2015 15:30:33 +0100
4 Subject: [PATCH] Guard routing against a null-deref. Bug 1639
7 src/src/route.c | 31 +++++++++++++++----------------
8 1 file changed, 15 insertions(+), 16 deletions(-)
10 diff --git a/src/src/route.c b/src/src/route.c
11 index cdfa6e6..39aed90 100644
14 @@ -1920,24 +1920,23 @@ if (unseen && r->next != NULL)
15 /* Unset the address expansions, and return the final result. */
18 -if (yield == DEFER) {
20 - ((Ustrstr(addr->message, "failed to expand") != NULL) || (Ustrstr(addr->message, "expansion of ") != NULL)) &&
22 - Ustrstr(addr->message, "mysql") != NULL ||
23 - Ustrstr(addr->message, "pgsql") != NULL ||
26 + && ( Ustrstr(addr->message, "failed to expand") != NULL
27 + || Ustrstr(addr->message, "expansion of ") != NULL
29 + && ( Ustrstr(addr->message, "mysql") != NULL
30 + || Ustrstr(addr->message, "pgsql") != NULL
31 #ifdef EXPERIMENTAL_REDIS
32 - Ustrstr(addr->message, "redis") != NULL ||
33 + || Ustrstr(addr->message, "redis") != NULL
35 - Ustrstr(addr->message, "sqlite") != NULL ||
36 - Ustrstr(addr->message, "ldap:") != NULL ||
37 - Ustrstr(addr->message, "ldapdn:") != NULL ||
38 - Ustrstr(addr->message, "ldapm:") != NULL
41 - addr->message = string_sprintf("Temporary internal error");
44 + || Ustrstr(addr->message, "sqlite") != NULL
45 + || Ustrstr(addr->message, "ldap:") != NULL
46 + || Ustrstr(addr->message, "ldapdn:") != NULL
47 + || Ustrstr(addr->message, "ldapm:") != NULL
50 + addr->message = string_sprintf("Temporary internal error");
52 deliver_set_expansions(NULL);