From 56ce230de72dbf14ccddb3f7b26b8b7f16986dfc Mon Sep 17 00:00:00 2001 From: Martin Schwenke Date: Mon, 11 Jan 2016 17:23:12 +1100 Subject: [PATCH] ctdb-recoverd: Fix some uninitialised memory issues The first element of these structures is a 32-bit PNN. On 64-bit systems this field can be followed by 32-bits of padding. When the structures are copied this can cause uninitialised memory to be copied. Signed-off-by: Martin Schwenke Reviewed-by: Michael Adam --- ctdb/server/ctdb_monitor.c | 1 + ctdb/server/ctdb_recoverd.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/ctdb/server/ctdb_monitor.c b/ctdb/server/ctdb_monitor.c index d8eda2a11ca..0a8273a9217 100644 --- a/ctdb/server/ctdb_monitor.c +++ b/ctdb/server/ctdb_monitor.c @@ -134,6 +134,7 @@ static void ctdb_health_callback(struct ctdb_context *ctdb, int status, void *p) c.pnn = ctdb->pnn; c.old_flags = node->flags; + ZERO_STRUCT(rd); rd.pnn = ctdb->pnn; rd.srvid = CTDB_SRVID_TAKEOVER_RUN_RESPONSE; diff --git a/ctdb/server/ctdb_recoverd.c b/ctdb/server/ctdb_recoverd.c index 1d63526e70d..c89649a3c55 100644 --- a/ctdb/server/ctdb_recoverd.c +++ b/ctdb/server/ctdb_recoverd.c @@ -1650,6 +1650,7 @@ static bool do_takeover_run(struct ctdb_recoverd *rec, * wait for replies since a failure here might cause some * noise in the logs but will not actually cause a problem. */ + ZERO_STRUCT(dtr); dtr.srvid = 0; /* No reply */ dtr.pnn = -1; @@ -3202,6 +3203,7 @@ static int verify_local_ip_allocation(struct ctdb_context *ctdb, struct ctdb_rec DEBUG(DEBUG_CRIT,("Trigger takeoverrun\n")); + ZERO_STRUCT(rd); rd.pnn = ctdb->pnn; rd.srvid = 0; data.dptr = (uint8_t *)&rd; -- 2.34.1