From 2163c7a2985b750218661552760400ce485bf894 Mon Sep 17 00:00:00 2001 From: Matthias Dieter Wallnöfer Date: Sat, 27 Nov 2010 14:07:31 +0100 Subject: s4:samba3sam LDB module - make the "pw_uid"/"pw_gid" conversion a bit clearer And remove the "long" specifier since at least on the major platforms (Linux, BSD and Solaris) these types are defined as "uint32_t". --- source4/dsdb/samdb/ldb_modules/samba3sam.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'source4/dsdb/samdb/ldb_modules') diff --git a/source4/dsdb/samdb/ldb_modules/samba3sam.c b/source4/dsdb/samdb/ldb_modules/samba3sam.c index 318d605ecd..3a8521dbde 100644 --- a/source4/dsdb/samdb/ldb_modules/samba3sam.c +++ b/source4/dsdb/samdb/ldb_modules/samba3sam.c @@ -151,7 +151,9 @@ static struct ldb_val lookup_gid(struct ldb_module *module, TALLOC_CTX *ctx, con return *talloc_zero(ctx, struct ldb_val); } - retval.data = (uint8_t *)talloc_asprintf(ctx, "%ld", (unsigned long)pwd->pw_gid); + /* "pw_gid" is per POSIX definition "unsigned". + * But write it out as "signed" for LDAP compliance. */ + retval.data = (uint8_t *)talloc_asprintf(ctx, "%d", (int) pwd->pw_gid); retval.length = strlen((char *)retval.data); return retval; @@ -168,7 +170,9 @@ static struct ldb_val lookup_uid(struct ldb_module *module, TALLOC_CTX *ctx, con return *talloc_zero(ctx, struct ldb_val); } - retval.data = (uint8_t *)talloc_asprintf(ctx, "%ld", (unsigned long)pwd->pw_uid); + /* "pw_uid" is per POSIX definition "unsigned". + * But write it out as "signed" for LDAP compliance. */ + retval.data = (uint8_t *)talloc_asprintf(ctx, "%d", (int) pwd->pw_uid); retval.length = strlen((char *)retval.data); return retval; -- cgit