s4:dsdb/common: fix major bug in lsa_BinaryString to ldb_val conversation.
authorStefan Metzmacher <metze@samba.org>
Tue, 12 Jan 2010 08:59:26 +0000 (09:59 +0100)
committerStefan Metzmacher <metze@samba.org>
Wed, 13 Jan 2010 13:52:00 +0000 (14:52 +0100)
In lsa_BinaryString length and size are byte counts!

TODO: we may need to do byte order conversion in this functions too...

metze

source4/dsdb/common/util.c

index 7d3f460c9068a16165b9aafbac8135c5653d8a98..652f1345d53892f698f4bbddd6ef85153c9a9eba 100644 (file)
@@ -686,7 +686,7 @@ struct lsa_BinaryString samdb_result_parameters(TALLOC_CTX *mem_ctx,
        if (!s.array) {
                return s;
        }
-       s.length = s.size = val->length/2;
+       s.length = s.size = val->length;
        memcpy(s.array, val->data, val->length);
 
        return s;
@@ -935,7 +935,7 @@ int samdb_msg_add_parameters(struct ldb_context *sam_ldb, TALLOC_CTX *mem_ctx, s
                             const char *attr_name, struct lsa_BinaryString *parameters)
 {
        struct ldb_val val;
-       val.length = parameters->length * 2;
+       val.length = parameters->length;
        val.data = (uint8_t *)parameters->array;
        return ldb_msg_add_value(msg, attr_name, &val, NULL);
 }