Mercurial > dovecot > core-2.2
view src/login-common/ssl-proxy.c @ 22310:a28f5bfb15fc
fts: Do not attempt to deinitialize backend if it's not set
If FTS backend initialization fails or does not happen,
flist->backend might end up being NULL, and attempt to
deinitialize NULL won't end well.
author | Aki Tuomi <aki.tuomi@dovecot.fi> |
---|---|
date | Wed, 17 May 2017 12:26:42 +0300 |
parents | 2e2563132d5f |
children | cb108f786fb4 |
line wrap: on
line source
/* Copyright (c) 2002-2017 Dovecot authors, see the included COPYING file */ #include "lib.h" #include "ssl-proxy.h" bool ssl_initialized = FALSE; #ifndef HAVE_SSL /* no SSL support */ int ssl_proxy_alloc(int fd ATTR_UNUSED, const struct ip_addr *ip ATTR_UNUSED, pool_t set_pool ATTR_UNUSED, const struct login_settings *login_set ATTR_UNUSED, const struct master_service_ssl_settings *ssl_set ATTR_UNUSED, struct ssl_proxy **proxy_r ATTR_UNUSED) { i_error("Dovecot wasn't built with SSL support"); return -1; } int ssl_proxy_client_alloc(int fd ATTR_UNUSED, struct ip_addr *ip ATTR_UNUSED, pool_t set_pool ATTR_UNUSED, const struct login_settings *login_set ATTR_UNUSED, const struct master_service_ssl_settings *ssl_set ATTR_UNUSED, ssl_handshake_callback_t *callback ATTR_UNUSED, void *context ATTR_UNUSED, struct ssl_proxy **proxy_r ATTR_UNUSED) { i_error("Dovecot wasn't built with SSL support"); return -1; } void ssl_proxy_start(struct ssl_proxy *proxy ATTR_UNUSED) { } void ssl_proxy_set_client(struct ssl_proxy *proxy ATTR_UNUSED, struct client *client ATTR_UNUSED) { } bool ssl_proxy_has_valid_client_cert(const struct ssl_proxy *proxy ATTR_UNUSED) { return FALSE; } bool ssl_proxy_has_broken_client_cert(struct ssl_proxy *proxy ATTR_UNUSED) { return FALSE; } int ssl_proxy_cert_match_name(struct ssl_proxy *proxy ATTR_UNUSED, const char *verify_name ATTR_UNUSED) { return -1; } const char *ssl_proxy_get_peer_name(struct ssl_proxy *proxy ATTR_UNUSED) { return NULL; } bool ssl_proxy_is_handshaked(const struct ssl_proxy *proxy ATTR_UNUSED) { return FALSE; } const char *ssl_proxy_get_last_error(const struct ssl_proxy *proxy ATTR_UNUSED) { return NULL; } const char *ssl_proxy_get_security_string(struct ssl_proxy *proxy ATTR_UNUSED) { return ""; } const char *ssl_proxy_get_compression(struct ssl_proxy *proxy ATTR_UNUSED) { return NULL; } const char *ssl_proxy_get_cert_error(struct ssl_proxy *proxy ATTR_UNUSED) { return ""; } void ssl_proxy_destroy(struct ssl_proxy *proxy ATTR_UNUSED) {} void ssl_proxy_free(struct ssl_proxy **proxy ATTR_UNUSED) {} unsigned int ssl_proxy_get_count(void) { return 0; } void ssl_proxy_init(void) {} void ssl_proxy_deinit(void) {} #endif