[SSSD] [PATCH] Cast uid_t to unsigned long long in DEBUG messages

Jakub Hrozek jhrozek at redhat.com
Tue Jul 10 13:21:35 UTC 2012


krb5_child was crashing on my 32bit system when debugging was enabled
(and to make it more interesting, only when compiled with -O2). We were
using %llu to print uid_t values, which didn't match with the real size
of uid_t on 32bit systems. This patch adds an explicit cast to unsigned
long long.
-------------- next part --------------
>From d5137cd40f75ea7edac7385a84fe423906d54b89 Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
Date: Tue, 10 Jul 2012 15:16:16 +0200
Subject: [PATCH] Cast uid_t to unsigned long long in DEBUG messages

---
 src/db/sysdb_ops.c              |    4 ++--
 src/providers/krb5/krb5_child.c |    6 +++---
 src/tests/krb5_child-test.c     |    3 ++-
 src/tests/sysdb-tests.c         |    8 ++++----
 4 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/src/db/sysdb_ops.c b/src/db/sysdb_ops.c
index 528b84f1ae7fd9d075a6364e878fa1a644c2cae6..6c1fc49b46728809048d3cba8d03d4635af0ebc0 100644
--- a/src/db/sysdb_ops.c
+++ b/src/db/sysdb_ops.c
@@ -1559,7 +1559,7 @@ int sysdb_store_user(struct sysdb_ctx *sysdb,
             }
             DEBUG(SSSDBG_MINOR_FAILURE,
                   ("A user with the same UID [%llu] was removed from the "
-                   "cache\n", uid));
+                   "cache\n", (unsigned long long) uid));
             ret = sysdb_add_user(sysdb, name, uid, gid, gecos,
                                  homedir, shell, attrs, cache_timeout, now);
         }
@@ -1706,7 +1706,7 @@ int sysdb_store_group(struct sysdb_ctx *sysdb,
             }
             DEBUG(SSSDBG_MINOR_FAILURE,
                   ("A group with the same GID [%llu] was removed from the "
-                   "cache\n", gid));
+                   "cache\n", (unsigned long long) gid));
             ret = sysdb_add_group(sysdb, name, gid, attrs, cache_timeout, now);
         }
         goto done;
diff --git a/src/providers/krb5/krb5_child.c b/src/providers/krb5/krb5_child.c
index 8cf6255583ba95c1c35c10d121a32a96606cf2ef..817a3d01ee1e4247e66db4eac512e151f506c077 100644
--- a/src/providers/krb5/krb5_child.c
+++ b/src/providers/krb5/krb5_child.c
@@ -1345,9 +1345,9 @@ static errno_t unpack_buffer(uint8_t *buf, size_t size, struct pam_data *pd,
 
     DEBUG(SSSDBG_CONF_SETTINGS,
           ("cmd [%d] uid [%llu] gid [%llu] validate [%s] offline [%s] "
-           "UPN [%s]\n", pd->cmd, kr->uid, kr->gid,
-           kr->validate ? "true" : "false", *offline ? "true" : "false",
-           kr->upn ? kr->upn : "none"));
+           "UPN [%s]\n", pd->cmd, (unsigned long long) kr->uid,
+           (unsigned long long) kr->gid, kr->validate ? "true" : "false",
+           *offline ? "true" : "false", kr->upn ? kr->upn : "none"));
 
     if (pd->cmd == SSS_PAM_AUTHENTICATE ||
         pd->cmd == SSS_CMD_RENEW ||
diff --git a/src/tests/krb5_child-test.c b/src/tests/krb5_child-test.c
index 5314b1277a4c68227e5d0fcc53de0ef2d1b43d74..ff3e95a72a3c5f7be061f9dbd8b746ce2538c36c 100644
--- a/src/tests/krb5_child-test.c
+++ b/src/tests/krb5_child-test.c
@@ -249,7 +249,8 @@ create_dummy_req(TALLOC_CTX *mem_ctx, const char *user,
         if (!kr->ccname) goto fail;
 
         DEBUG(SSSDBG_FUNC_DATA, ("ccname [%s] uid [%llu] gid [%llu]\n",
-              kr->ccname, kr->uid, kr->gid));
+              kr->ccname, (unsigned long long) kr->uid,
+              (unsigned long long) kr->gid));
     } else {
         kr->ccname = talloc_strdup(kr, ccname);
     }
diff --git a/src/tests/sysdb-tests.c b/src/tests/sysdb-tests.c
index 16b7234a1f5ba0cb2b4bf4418d1fd4998d6f8c3c..24e619f927c170bdd98645c2fafa194e542fd21d 100644
--- a/src/tests/sysdb-tests.c
+++ b/src/tests/sysdb-tests.c
@@ -2197,7 +2197,7 @@ START_TEST(test_group_rename)
     gid = ldb_msg_find_attr_as_uint(res->msgs[0], SYSDB_GIDNUM, 0);
     fail_unless(gid == grgid,
                 "Did not find the expected GID (found %llu expected %llu)",
-                gid, grgid);
+                (unsigned long long) gid, (unsigned long long) grgid);
     name = ldb_msg_find_attr_as_string(res->msgs[0], SYSDB_NAME, NULL);
     fail_unless(strcmp(fromname, name) == 0,
                 "Did not find the expected name (found %s expected %s)",
@@ -2220,7 +2220,7 @@ START_TEST(test_group_rename)
     gid = ldb_msg_find_attr_as_uint(res->msgs[0], SYSDB_GIDNUM, 0);
     fail_unless(gid == grgid,
                 "Did not find the expected GID (found %llu expected %llu)",
-                gid, grgid);
+                (unsigned long long) gid, (unsigned long long) grgid);
     name = ldb_msg_find_attr_as_string(res->msgs[0], SYSDB_NAME, NULL);
     fail_unless(strcmp(toname, name) == 0,
                 "Did not find the expected GID (found %s expected %s)",
@@ -2266,7 +2266,7 @@ START_TEST(test_user_rename)
     uid = ldb_msg_find_attr_as_uint(res->msgs[0], SYSDB_UIDNUM, 0);
     fail_unless(uid == userid,
                 "Did not find the expected UID (found %llu expected %llu)",
-                uid, userid);
+                (unsigned long long) uid, (unsigned long long) userid);
     name = ldb_msg_find_attr_as_string(res->msgs[0], SYSDB_NAME, NULL);
     fail_unless(strcmp(fromname, name) == 0,
                 "Did not find the expected name (found %s expected %s)",
@@ -2291,7 +2291,7 @@ START_TEST(test_user_rename)
     uid = ldb_msg_find_attr_as_uint(res->msgs[0], SYSDB_UIDNUM, 0);
     fail_unless(uid == userid,
                 "Did not find the expected UID (found %llu expected %llu)",
-                uid, userid);
+                (unsigned long long) uid, (unsigned long long) userid);
     name = ldb_msg_find_attr_as_string(res->msgs[0], SYSDB_NAME, NULL);
     fail_unless(strcmp(toname, name) == 0,
                 "Did not find the expected name (found %s expected %s)",
-- 
1.7.10.4



More information about the sssd-devel mailing list