summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/smbd/process.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/source3/smbd/process.c b/source3/smbd/process.c
index 0f3e560611..487358d701 100644
--- a/source3/smbd/process.c
+++ b/source3/smbd/process.c
@@ -1887,7 +1887,7 @@ received when we should release a specific IP
static void release_ip(const char *ip, void *priv)
{
char addr[INET6_ADDRSTRLEN];
- char *p;
+ char *p = addr;
client_socket_addr(get_client_fd(),addr,sizeof(addr));
@@ -1895,7 +1895,7 @@ static void release_ip(const char *ip, void *priv)
p = addr + 7;
}
- if ((strcmp(p, ip) == 0) || (strcmp(addr, ip) == 0)) {
+ if ((strcmp(p, ip) == 0) || ((p != addr) && strcmp(addr, ip) == 0)) {
/* we can't afford to do a clean exit - that involves
database writes, which would potentially mean we
are still running after the failover has finished -