From: Martin Schwenke Date: Tue, 1 Dec 2015 04:32:07 +0000 (+1100) Subject: ctdb-tests: Fix some incorrect memory allocations X-Git-Url: http://git.samba.org/?p=obnox%2Fsamba%2Fsamba-obnox.git;a=commitdiff_plain;h=3ac2d4b59eff58f06af1eef19cef0d444f4257ca ctdb-tests: Fix some incorrect memory allocations These allocate enough memory but things get confusing if they're used as a guide when updating the code. Signed-off-by: Martin Schwenke Reviewed-by: Michael Adam Autobuild-User(master): Michael Adam Autobuild-Date(master): Tue Jan 12 22:19:16 CET 2016 on sn-devel-144 --- diff --git a/ctdb/tests/src/ctdb_takeover_tests.c b/ctdb/tests/src/ctdb_takeover_tests.c index 6797de467fd..bbd004e6859 100644 --- a/ctdb/tests/src/ctdb_takeover_tests.c +++ b/ctdb/tests/src/ctdb_takeover_tests.c @@ -196,7 +196,12 @@ read_ctdb_public_ip_info(TALLOC_CTX *ctx , while (t != NULL) { n = (int) strtol(t, (char **) NULL, 10); if ((*known)[n] == NULL) { - (*known)[n] = talloc_array(ctx, struct ctdb_public_ip_list_old, CTDB_TEST_MAX_IPS); + /* Array size here has to be + * CTDB_TEST_MAX_IPS because total + * number of IPs isn't yet known */ + (*known)[n] = talloc_size(ctx, + offsetof(struct ctdb_public_ip_list_old, ips) + + CTDB_TEST_MAX_IPS * sizeof(struct ctdb_public_ip)); (*known)[n]->num = 0; } curr = (*known)[n]->num; @@ -210,7 +215,9 @@ read_ctdb_public_ip_info(TALLOC_CTX *ctx , } /* Build list of all allowed IPs */ - a = talloc_array(ctx, struct ctdb_public_ip_list_old, CTDB_TEST_MAX_IPS); + a = talloc_size(ctx, + offsetof(struct ctdb_public_ip_list_old, ips) + + numips * sizeof(struct ctdb_public_ip)); a->num = numips; for (ta = *all_ips, i=0; ta != NULL && i < numips ; ta = ta->next, i++) { a->ips[i].pnn = ta->pnn;