From: Timo Sirainen Date: Wed, 22 Apr 2009 18:26:31 +0000 (-0400) Subject: Don't crash if auth settings don't contain any sockets. X-Git-Tag: 2.0.alpha1~899 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e2ba2c102942d03ae7165cd20896fe5eb331b464;p=thirdparty%2Fdovecot%2Fcore.git Don't crash if auth settings don't contain any sockets. --HG-- branch : HEAD --- diff --git a/src/auth/main.c b/src/auth/main.c index 27c611e594..ddf263d0ff 100644 --- a/src/auth/main.c +++ b/src/auth/main.c @@ -167,6 +167,9 @@ static void add_extra_listeners(struct auth *auth) struct auth_socket_unix_settings *const *unix_sockets; unsigned int i, count, count2; + if (!array_is_created(&auth->set->sockets)) + return; + sockets = array_get(&auth->set->sockets, &count); for (i = 0; i < count; i++) { if (strcmp(sockets[i]->type, "listen") != 0) diff --git a/src/master/master-settings.c b/src/master/master-settings.c index 8ece3b4606..845c7732ba 100644 --- a/src/master/master-settings.c +++ b/src/master/master-settings.c @@ -499,7 +499,12 @@ static bool auth_settings_verify(struct master_settings *set, return FALSE; } - sockets = array_get(&auth->sockets, &count); + if (array_is_created(&auth->sockets)) + sockets = array_get(&auth->sockets, &count); + else { + sockets = NULL; + count = 0; + } for (i = 0; i < count; i++) { if (auth->count > 1 && strcmp(sockets[i]->type, "listen") == 0) { @@ -551,6 +556,8 @@ static bool settings_have_connect_sockets(struct master_settings *set) auths = array_get(&set->auths, &count); for (i = 0; i < count; i++) { + if (!array_is_created(&auths[i]->sockets)) + continue; sockets = array_get(&auths[i]->sockets, &count2); if (count2 > 0 && strcmp(sockets[0]->type, "connect") == 0) return TRUE;