ctdb-protocol: Fix marshalling of ctdb_reply_control
authorAmitay Isaacs <amitay@gmail.com>
Fri, 29 Apr 2016 05:57:44 +0000 (15:57 +1000)
committerMartin Schwenke <martins@samba.org>
Tue, 3 May 2016 02:43:20 +0000 (04:43 +0200)
Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
ctdb/protocol/protocol_control.c

index d506b97f721c5c9d7cb2e0dff6f8ede3404131c2..738626a2a1e46b20646dfaf6c942dbba9f4171f9 100644 (file)
@@ -2009,14 +2009,14 @@ int ctdb_reply_control_push(struct ctdb_req_header *h,
 
        if (reply->status == 0) {
                wire->datalen = ctdb_reply_control_data_len(&reply->rdata);
+               wire->errorlen = 0;
                ctdb_reply_control_data_push(&reply->rdata, wire->data);
        } else {
                wire->datalen = 0;
+               wire->errorlen = ctdb_string_len(reply->errmsg);
+               ctdb_string_push(reply->errmsg, wire->data + wire->datalen);
        }
 
-       wire->errorlen = ctdb_string_len(reply->errmsg);
-       ctdb_string_push(reply->errmsg, wire->data + wire->datalen);
-
        *pkt = buf;
        *pkt_len = buflen;
        return 0;