From 0c939990ca36e6cca3eb8f270e204a399aec0e72 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Mon, 4 Jun 2007 22:28:52 +1000 Subject: [PATCH] don't crash doing ctdb ip when not doing takeover (This used to be ctdb commit f341a97c13a77711a2daaa9a223123cc4c81e75e) --- ctdb/takeover/ctdb_takeover.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ctdb/takeover/ctdb_takeover.c b/ctdb/takeover/ctdb_takeover.c index ced23249094..bf9d3982de8 100644 --- a/ctdb/takeover/ctdb_takeover.c +++ b/ctdb/takeover/ctdb_takeover.c @@ -692,7 +692,7 @@ void ctdb_release_all_ips(struct ctdb_context *ctdb) /* - + get list of public IPs */ int32_t ctdb_control_get_public_ips(struct ctdb_context *ctdb, struct ctdb_req_control *c, TDB_DATA *outdata) { @@ -701,7 +701,7 @@ int32_t ctdb_control_get_public_ips(struct ctdb_context *ctdb, struct ctdb_req_c len = offsetof(struct ctdb_all_public_ips, ips) + ctdb->num_nodes*sizeof(struct ctdb_public_ip); - ips = talloc_size(outdata, len); + ips = talloc_zero_size(outdata, len); CTDB_NO_MEMORY(ctdb, ips); outdata->dsize = len; @@ -712,7 +712,9 @@ int32_t ctdb_control_get_public_ips(struct ctdb_context *ctdb, struct ctdb_req_c ips->ips[i].vnn = i; ips->ips[i].takeover_vnn = ctdb->nodes[i]->takeover_vnn; ips->ips[i].sin.sin_family = AF_INET; - inet_aton(ctdb->nodes[i]->public_address, &ips->ips[i].sin.sin_addr); + if (ctdb->nodes[i]->public_address) { + inet_aton(ctdb->nodes[i]->public_address, &ips->ips[i].sin.sin_addr); + } } return 0; -- 2.47.3