s4:dsdb/common: let samdb_msg_add_uint64() call samdb_msg_add_int64()
authorStefan Metzmacher <metze@samba.org>
Mon, 11 Jan 2010 19:00:43 +0000 (20:00 +0100)
committerStefan Metzmacher <metze@samba.org>
Wed, 13 Jan 2010 13:51:59 +0000 (14:51 +0100)
This is important as LDAP servers always play with int64 values
and we have to encode 0x8000000000000000LL as "-9223372036854775808"
instead of "9223372036854775808".

metze

source4/dsdb/common/util.c

index 6147940e3b79905ce8f60c6a2f0f1ae9643ceef1..3f222d27d7cf98cd35889a3c11785e135dd1be1e 100644 (file)
@@ -871,8 +871,7 @@ int samdb_msg_add_int64(struct ldb_context *sam_ldb, TALLOC_CTX *mem_ctx, struct
 int samdb_msg_add_uint64(struct ldb_context *sam_ldb, TALLOC_CTX *mem_ctx, struct ldb_message *msg,
                        const char *attr_name, uint64_t v)
 {
-       const char *s = talloc_asprintf(mem_ctx, "%llu", (unsigned long long)v);
-       return samdb_msg_add_string(sam_ldb, mem_ctx, msg, attr_name, s);
+       return samdb_msg_add_int64(sam_ldb, mem_ctx, msg, attr_name, (int64_t)v);
 }
 
 /*