dovecot-2.2: net_ip2addr() changed to return "" instead of NULL ...
dovecot at dovecot.org
dovecot at dovecot.org
Tue Aug 6 14:54:38 EEST 2013
details: http://hg.dovecot.org/dovecot-2.2/rev/58be84a381e5
changeset: 16666:58be84a381e5
user: Timo Sirainen <tss at iki.fi>
date: Tue Aug 06 14:53:23 2013 +0300
description:
net_ip2addr() changed to return "" instead of NULL on failure.
Pretty much everything in the code assumed that it would never fail, which
it normally doesn't except if the ip_addr was created for UNIX sockets.
diffstat:
src/auth/auth-request.c | 2 +-
src/auth/passdb-pam.c | 2 +-
src/auth/passdb-vpopmail.c | 2 +-
src/lib/net.c | 4 ++--
src/lib/net.h | 2 +-
src/lib/uri-util.c | 2 --
src/lmtp/client.c | 2 +-
src/login-common/main.c | 11 +++++++----
8 files changed, 14 insertions(+), 13 deletions(-)
diffs (114 lines):
diff -r 7057d4ad8891 -r 58be84a381e5 src/auth/auth-request.c
--- a/src/auth/auth-request.c Tue Aug 06 14:46:36 2013 +0300
+++ b/src/auth/auth-request.c Tue Aug 06 14:53:23 2013 +0300
@@ -2021,7 +2021,7 @@
}
ip = net_ip2addr(&auth_request->remote_ip);
- if (ip != NULL) {
+ if (ip[0] != '\0') {
str_append_c(str, ',');
str_append(str, ip);
}
diff -r 7057d4ad8891 -r 58be84a381e5 src/auth/passdb-pam.c
--- a/src/auth/passdb-pam.c Tue Aug 06 14:46:36 2013 +0300
+++ b/src/auth/passdb-pam.c Tue Aug 06 14:53:23 2013 +0300
@@ -238,7 +238,7 @@
/* These shouldn't fail, and we don't really care if they do. */
host = net_ip2addr(&request->remote_ip);
- if (host != NULL)
+ if (host[0] != '\0')
(void)pam_set_item(pamh, PAM_RHOST, host);
(void)pam_set_item(pamh, PAM_RUSER, request->user);
/* TTY is needed by eg. pam_access module */
diff -r 7057d4ad8891 -r 58be84a381e5 src/auth/passdb-vpopmail.c
--- a/src/auth/passdb-vpopmail.c Tue Aug 06 14:46:36 2013 +0300
+++ b/src/auth/passdb-vpopmail.c Tue Aug 06 14:53:23 2013 +0300
@@ -153,7 +153,7 @@
strcasecmp(request->service, "IMAP") == 0) {
const char *host = net_ip2addr(&request->remote_ip);
/* vpopmail 5.4 does not understand IPv6 */
- if (host != NULL && IPADDR_IS_V4(&request->remote_ip)) {
+ if (host[0] != '\0' && IPADDR_IS_V4(&request->remote_ip)) {
/* use putenv() directly rather than env_put() which
would leak memory every time we got here. use a
static buffer for putenv() as SUSv2 requirements
diff -r 7057d4ad8891 -r 58be84a381e5 src/lib/net.c
--- a/src/lib/net.c Tue Aug 06 14:46:36 2013 +0300
+++ b/src/lib/net.c Tue Aug 06 14:53:23 2013 +0300
@@ -870,14 +870,14 @@
addr[MAX_IP_LEN] = '\0';
if (inet_ntop(ip->family, &ip->u.ip6, addr, MAX_IP_LEN) == NULL)
- return NULL;
+ return "";
return t_strdup(addr);
#else
unsigned long ip4;
if (ip->family != AF_INET)
- return NULL;
+ return "";
ip4 = ntohl(ip->u.ip4.s_addr);
return t_strdup_printf("%lu.%lu.%lu.%lu",
diff -r 7057d4ad8891 -r 58be84a381e5 src/lib/net.h
--- a/src/lib/net.h Tue Aug 06 14:46:36 2013 +0300
+++ b/src/lib/net.h Tue Aug 06 14:53:23 2013 +0300
@@ -133,7 +133,7 @@
unavailable. */
int net_getunixcred(int fd, struct net_unix_cred *cred_r);
-/* Returns ip_addr as string, or NULL if ip is invalid. */
+/* Returns ip_addr as string, or "" if ip isn't valid IPv4 or IPv6 address. */
const char *net_ip2addr(const struct ip_addr *ip);
/* char* -> struct ip_addr translation. */
int net_addr2ip(const char *addr, struct ip_addr *ip);
diff -r 7057d4ad8891 -r 58be84a381e5 src/lib/uri-util.c
--- a/src/lib/uri-util.c Tue Aug 06 14:46:36 2013 +0300
+++ b/src/lib/uri-util.c Tue Aug 06 14:53:23 2013 +0300
@@ -799,8 +799,6 @@
{
const char *addr = net_ip2addr(host_ip);
- i_assert(addr != NULL);
-
if (host_ip->family == AF_INET) {
str_append(out, addr);
return;
diff -r 7057d4ad8891 -r 58be84a381e5 src/lmtp/client.c
--- a/src/lmtp/client.c Tue Aug 06 14:46:36 2013 +0300
+++ b/src/lmtp/client.c Tue Aug 06 14:53:23 2013 +0300
@@ -195,7 +195,7 @@
const char *addr;
addr = net_ip2addr(&client->remote_ip);
- if (addr == NULL)
+ if (addr[0] == '\0')
addr = "local";
return addr;
}
diff -r 7057d4ad8891 -r 58be84a381e5 src/login-common/main.c
--- a/src/login-common/main.c Tue Aug 06 14:46:36 2013 +0300
+++ b/src/login-common/main.c Tue Aug 06 14:53:23 2013 +0300
@@ -64,11 +64,14 @@
} else if (clients_get_count() > 1 || client == NULL) {
process_title_set(t_strdup_printf("[%u connections (%u TLS)]",
clients_get_count(), ssl_proxy_get_count()));
- } else if ((addr = net_ip2addr(&client->ip)) != NULL) {
- process_title_set(t_strdup_printf(client->tls ?
- "[%s TLS]" : "[%s]", addr));
} else {
- process_title_set(client->tls ? "[TLS]" : "");
+ addr = net_ip2addr(&client->ip);
+ if (addr[0] != '\0') {
+ process_title_set(t_strdup_printf(client->tls ?
+ "[%s TLS]" : "[%s]", addr));
+ } else {
+ process_title_set(client->tls ? "[TLS]" : "");
+ }
}
}
More information about the dovecot-cvs
mailing list