ldb controls: base64 encode VLV response context strings
authorGarming Sam <garming@catalyst.net.nz>
Tue, 26 Jan 2016 00:07:48 +0000 (13:07 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 9 Mar 2016 09:32:16 +0000 (10:32 +0100)
Pair-programmed-with: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Signed-off-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
lib/ldb/common/ldb_controls.c

index af056d09a5ace940f9baf891dd93c35f7691b8c0..500805c5459d68d051d9c704ff47702bafe485ce 100644 (file)
@@ -310,14 +310,20 @@ char *ldb_control_to_string(TALLOC_CTX *mem_ctx, const struct ldb_control *contr
                struct ldb_vlv_resp_control *rep_control = talloc_get_type(control->data,
                                                                struct ldb_vlv_resp_control);
 
-               res = talloc_asprintf(mem_ctx, "%s:%d:%d:%d:%d:%d:%s",
+               char *cookie;
+               const uint8_t *c = (uint8_t*) rep_control->contextId;
+
+               cookie = ldb_base64_encode(mem_ctx,
+                                          rep_control->contextId,
+                                          rep_control->ctxid_len);
+
+               res = talloc_asprintf(mem_ctx, "%s:%d:%d:%d:%d:%s",
                                                LDB_CONTROL_VLV_RESP_NAME,
                                                control->critical,
                                                rep_control->targetPosition,
                                                rep_control->contentCount,
                                                rep_control->vlv_result,
-                                               rep_control->ctxid_len,
-                                               rep_control->contextId);
+                                               cookie);
 
                return res;
        }