From: Martin Schwenke Date: Thu, 11 Apr 2019 06:56:32 +0000 (+1000) Subject: ctdb-tools: Fix ctdb dumpmemory to avoid printing trailing NUL X-Git-Tag: tdb-1.4.1~176 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f78d9388fb459dc83fafb4da6e683e3137ad40e1;p=thirdparty%2Fsamba.git ctdb-tools: Fix ctdb dumpmemory to avoid printing trailing NUL Fix ctdb rddumpmemory too. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13923 Signed-off-by: Martin Schwenke Reviewed-by: Amitay Isaacs --- diff --git a/ctdb/tools/ctdb.c b/ctdb/tools/ctdb.c index 8db0ec8e766..3c61c542ec4 100644 --- a/ctdb/tools/ctdb.c +++ b/ctdb/tools/ctdb.c @@ -2450,8 +2450,8 @@ static int control_dumpmemory(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb, return ret; } - n = write(1, mem_str, strlen(mem_str)+1); - if (n < 0 || n != strlen(mem_str)+1) { + n = write(1, mem_str, strlen(mem_str)); + if (n < 0 || n != strlen(mem_str)) { fprintf(stderr, "Failed to write talloc summary\n"); return 1; } @@ -2462,10 +2462,12 @@ static int control_dumpmemory(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb, static void dump_memory(uint64_t srvid, TDB_DATA data, void *private_data) { bool *done = (bool *)private_data; + size_t len; ssize_t n; - n = write(1, data.dptr, data.dsize); - if (n < 0 || n != data.dsize) { + len = strnlen((const char *)data.dptr, data.dsize); + n = write(1, data.dptr, len); + if (n < 0 || n != len) { fprintf(stderr, "Failed to write talloc summary\n"); }