daemon: Return correct sequence number for CONTROL_GET_DB_SEQNUM
authorAmitay Isaacs <amitay@gmail.com>
Tue, 14 Jul 2015 06:54:59 +0000 (16:54 +1000)
committerAmitay Isaacs <amitay@gmail.com>
Thu, 16 Jul 2015 04:38:12 +0000 (14:38 +1000)
Due to the missing cast of uint64_t, CONTROL_GET_DB_SEQNUM always returned
seqnum <= 256.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=11398

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Volker Lendecke <vl@samba.org>
Autobuild-User(master): Amitay Isaacs <amitay@samba.org>
Autobuild-Date(master): Tue Jul 14 13:03:25 CEST 2015 on sn-devel-104

(Imported from commit 1023db2543f7785e4527a4565db91edcde4ca7f1)

server/ctdb_persistent.c

index cfbea63cc566b47f05b062dd37633c892ee69616..88b8387c153f10b017c3be630d47d159808d7768 100644 (file)
@@ -369,14 +369,11 @@ int32_t ctdb_control_get_db_seqnum(struct ctdb_context *ctdb,
        }
 
        outdata->dsize = sizeof(uint64_t);
-       outdata->dptr = (uint8_t *)talloc_zero(outdata, uint64_t);
+       outdata->dptr = talloc_memdup(outdata, &seqnum, sizeof(uint64_t));
        if (outdata->dptr == NULL) {
                ret = -1;
-               goto done;
        }
 
-       *(outdata->dptr) = seqnum;
-
 done:
        return ret;
 }