ldb_pack: use ldb_dn_from_ldb_val() and avoid a duplicate strlen() call
authorAndrew Bartlett <abartlet@samba.org>
Fri, 30 Jun 2017 00:55:15 +0000 (12:55 +1200)
committerStefan Metzmacher <metze@samba.org>
Sun, 2 Jul 2017 15:35:19 +0000 (17:35 +0200)
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
lib/ldb/common/ldb_pack.c

index a63dd5840ef840f70d91cb69ef38ae9b6baea229..1f1688a6c50d7f54313c5e4da9a047121e377a29 100644 (file)
@@ -274,7 +274,10 @@ int ldb_unpack_data_only_attr_list_flags(struct ldb_context *ldb,
                if (flags & LDB_UNPACK_DATA_FLAG_NO_DN) {
                        message->dn = NULL;
                } else {
-                       message->dn = ldb_dn_new(message, ldb, (char *)p);
+                       struct ldb_val blob;
+                       blob.data = discard_const_p(uint8_t, p);
+                       blob.length = dn_len;
+                       message->dn = ldb_dn_from_ldb_val(message, ldb, &blob);
                        if (message->dn == NULL) {
                                errno = ENOMEM;
                                goto failed;