[SSSD] [PATCH] Prevent printing NULL from DEBUG messages

Jakub Hrozek jhrozek at redhat.com
Wed Apr 4 21:06:44 UTC 2012


This is related to #1288. One of the "(null)"s actually revealed a real
bug that I will send a patch for separately.
-------------- next part --------------
From 7405777384ecf070fac7a8480fde4257ff9c7fdb Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
Date: Tue, 3 Apr 2012 18:42:43 -0400
Subject: [PATCH] Prevent printing NULL from DEBUG messages

---
 src/providers/data_provider_opts.c    |   76 ++++++++++++++++++---------------
 src/providers/dp_pam_data_util.c      |   14 +++---
 src/providers/ipa/ipa_hbac_rules.c    |    2 +-
 src/providers/ipa/ipa_hbac_services.c |    4 +-
 src/providers/ipa/ipa_selinux_maps.c  |    2 +-
 src/providers/ldap/sdap.c             |   13 ++++--
 src/providers/ldap/sdap_async.c       |    6 ++-
 src/responder/nss/nsssrv_cmd.c        |    9 +++-
 src/responder/nss/nsssrv_netgroup.c   |    3 +-
 src/responder/pam/pamsrv_cmd.c        |    3 +-
 10 files changed, 77 insertions(+), 55 deletions(-)

diff --git a/src/providers/data_provider_opts.c b/src/providers/data_provider_opts.c
index 94849991cfffaf7db9de6f15903988ae22e1ab8f..95e4133439d465b6c345165b2216aa994e60c0ad 100644
--- a/src/providers/data_provider_opts.c
+++ b/src/providers/data_provider_opts.c
@@ -52,13 +52,16 @@ int dp_get_options(TALLOC_CTX *memctx,
             if (ret != EOK ||
                 ((opts[i].def_val.string != NULL) &&
                  (opts[i].val.string == NULL))) {
-                DEBUG(0, ("Failed to retrieve value for option (%s)\n",
-                          opts[i].opt_name));
+                DEBUG(SSSDBG_CRIT_FAILURE,
+                      ("Failed to retrieve value for option (%s)\n",
+                       opts[i].opt_name));
                 if (ret == EOK) ret = EINVAL;
                 goto done;
             }
-            DEBUG(6, ("Option %s has value %s\n",
-                  opts[i].opt_name, opts[i].val.cstring));
+            DEBUG(SSSDBG_TRACE_FUNC, ("Option %s has%s value %s\n",
+                  opts[i].opt_name,
+                  opts[i].val.cstring ? "" : " no",
+                  opts[i].val.cstring ? opts[i].val.cstring : ""));
             break;
 
         case DP_OPT_BLOB:
@@ -66,8 +69,9 @@ int dp_get_options(TALLOC_CTX *memctx,
                                     opts[i].opt_name,
                                     NULL, &tmp);
             if (ret != EOK) {
-                DEBUG(0, ("Failed to retrieve value for option (%s)\n",
-                          opts[i].opt_name));
+                DEBUG(SSSDBG_CRIT_FAILURE,
+                      ("Failed to retrieve value for option (%s)\n",
+                      opts[i].opt_name));
                 goto done;
             }
 
@@ -79,9 +83,8 @@ int dp_get_options(TALLOC_CTX *memctx,
                 opts[i].val.blob.length = 0;
             }
 
-            DEBUG(6, ("Option %s has %s binary value.\n",
-                      opts[i].opt_name,
-                      opts[i].val.blob.length?"a":"no"));
+            DEBUG(SSSDBG_TRACE_FUNC, ("Option %s has %s binary value.\n",
+                  opts[i].opt_name, opts[i].val.blob.length?"a":"no"));
             break;
 
         case DP_OPT_NUMBER:
@@ -90,11 +93,12 @@ int dp_get_options(TALLOC_CTX *memctx,
                                  opts[i].def_val.number,
                                  &opts[i].val.number);
             if (ret != EOK) {
-                DEBUG(0, ("Failed to retrieve value for option (%s)\n",
-                          opts[i].opt_name));
+                DEBUG(SSSDBG_CRIT_FAILURE,
+                      ("Failed to retrieve value for option (%s)\n",
+                      opts[i].opt_name));
                 goto done;
             }
-            DEBUG(6, ("Option %s has value %d\n",
+            DEBUG(SSSDBG_TRACE_FUNC, ("Option %s has value %d\n",
                   opts[i].opt_name, opts[i].val.number));
             break;
 
@@ -104,13 +108,13 @@ int dp_get_options(TALLOC_CTX *memctx,
                                   opts[i].def_val.boolean,
                                   &opts[i].val.boolean);
             if (ret != EOK) {
-                DEBUG(0, ("Failed to retrieve value for option (%s)\n",
-                          opts[i].opt_name));
+                DEBUG(SSSDBG_CRIT_FAILURE,
+                      ("Failed to retrieve value for option (%s)\n",
+                      opts[i].opt_name));
                 goto done;
             }
-            DEBUG(6, ("Option %s is %s\n",
-                      opts[i].opt_name,
-                      opts[i].val.boolean?"TRUE":"FALSE"));
+            DEBUG(SSSDBG_TRACE_FUNC, ("Option %s is %s\n",
+                  opts[i].opt_name, opts[i].val.boolean?"TRUE":"FALSE"));
             break;
         }
     }
@@ -150,12 +154,15 @@ int dp_copy_options(TALLOC_CTX *memctx,
                 ret = dp_opt_set_string(opts, i, src_opts[i].def_val.string);
             }
             if (ret != EOK) {
-                DEBUG(0, ("Failed to copy value for option (%s)\n",
-                          opts[i].opt_name));
+                DEBUG(SSSDBG_CRIT_FAILURE,
+                      ("Failed to copy value for option (%s)\n",
+                       opts[i].opt_name));
                 goto done;
             }
-            DEBUG(6, ("Option %s has value %s\n",
-                  opts[i].opt_name, opts[i].val.cstring));
+            DEBUG(SSSDBG_TRACE_FUNC, ("Option %s has%s value %s\n",
+                  opts[i].opt_name,
+                  opts[i].val.cstring ? "" : " no",
+                  opts[i].val.cstring ? opts[i].val.cstring : ""));
             break;
 
         case DP_OPT_BLOB:
@@ -165,13 +172,13 @@ int dp_copy_options(TALLOC_CTX *memctx,
                 ret = dp_opt_set_blob(opts, i, src_opts[i].def_val.blob);
             }
             if (ret != EOK) {
-                DEBUG(0, ("Failed to retrieve value for option (%s)\n",
-                          opts[i].opt_name));
+                DEBUG(SSSDBG_CRIT_FAILURE,
+                      ("Failed to retrieve value for option (%s)\n",
+                       opts[i].opt_name));
                 goto done;
             }
-            DEBUG(6, ("Option %s has %s binary value.\n",
-                      opts[i].opt_name,
-                      opts[i].val.blob.length?"a":"no"));
+            DEBUG(SSSDBG_TRACE_FUNC, ("Option %s has %s binary value.\n",
+                  opts[i].opt_name, opts[i].val.blob.length?"a":"no"));
             break;
 
         case DP_OPT_NUMBER:
@@ -181,11 +188,12 @@ int dp_copy_options(TALLOC_CTX *memctx,
                 ret = dp_opt_set_int(opts, i, src_opts[i].def_val.number);
             }
             if (ret != EOK) {
-                DEBUG(0, ("Failed to retrieve value for option (%s)\n",
-                          opts[i].opt_name));
+                DEBUG(SSSDBG_CRIT_FAILURE,
+                      ("Failed to retrieve value for option (%s)\n",
+                      opts[i].opt_name));
                 goto done;
             }
-            DEBUG(6, ("Option %s has value %d\n",
+            DEBUG(SSSDBG_TRACE_FUNC, ("Option %s has value %d\n",
                   opts[i].opt_name, opts[i].val.number));
             break;
 
@@ -196,13 +204,13 @@ int dp_copy_options(TALLOC_CTX *memctx,
                 ret = dp_opt_set_int(opts, i, src_opts[i].def_val.boolean);
             }
             if (ret != EOK) {
-                DEBUG(0, ("Failed to retrieve value for option (%s)\n",
-                          opts[i].opt_name));
+                DEBUG(SSSDBG_CRIT_FAILURE,
+                      ("Failed to retrieve value for option (%s)\n",
+                       opts[i].opt_name));
                 goto done;
             }
-            DEBUG(6, ("Option %s is %s\n",
-                      opts[i].opt_name,
-                      opts[i].val.boolean?"TRUE":"FALSE"));
+            DEBUG(SSSDBG_TRACE_FUNC, ("Option %s is %s\n",
+                  opts[i].opt_name, opts[i].val.boolean?"TRUE":"FALSE"));
             break;
         }
     }
diff --git a/src/providers/dp_pam_data_util.c b/src/providers/dp_pam_data_util.c
index 7ac50c4e1ffb6f49e66f20f26338c5e6672d6771..889c47f00bfb49effab982ed40454b5120b84bf6 100644
--- a/src/providers/dp_pam_data_util.c
+++ b/src/providers/dp_pam_data_util.c
@@ -45,6 +45,8 @@
     } \
 } while(0)
 
+#define PAM_SAFE_ITEM(item) item ? item : "not set"
+
 static const char *pamcmd2str(int cmd) {
     switch (cmd) {
     case SSS_PAM_AUTHENTICATE:
@@ -138,12 +140,12 @@ failed:
 void pam_print_data(int l, struct pam_data *pd)
 {
     DEBUG(l, ("command: %s\n", pamcmd2str(pd->cmd)));
-    DEBUG(l, ("domain: %s\n", pd->domain));
-    DEBUG(l, ("user: %s\n", pd->user));
-    DEBUG(l, ("service: %s\n", pd->service));
-    DEBUG(l, ("tty: %s\n", pd->tty));
-    DEBUG(l, ("ruser: %s\n", pd->ruser));
-    DEBUG(l, ("rhost: %s\n", pd->rhost));
+    DEBUG(l, ("domain: %s\n", PAM_SAFE_ITEM(pd->domain)));
+    DEBUG(l, ("user: %s\n", PAM_SAFE_ITEM(pd->user)));
+    DEBUG(l, ("service: %s\n", PAM_SAFE_ITEM(pd->service)));
+    DEBUG(l, ("tty: %s\n", PAM_SAFE_ITEM(pd->tty)));
+    DEBUG(l, ("ruser: %s\n", PAM_SAFE_ITEM(pd->ruser)));
+    DEBUG(l, ("rhost: %s\n", PAM_SAFE_ITEM(pd->rhost)));
     DEBUG(l, ("authtok type: %d\n", pd->authtok_type));
     DEBUG(l, ("authtok size: %d\n", pd->authtok_size));
     DEBUG(l, ("newauthtok type: %d\n", pd->newauthtok_type));
diff --git a/src/providers/ipa/ipa_hbac_rules.c b/src/providers/ipa/ipa_hbac_rules.c
index 49dcdfa0a345b1af7e155ff86db7e2f584992f0e..24caf1fd4b797b61e0e1353db9e0808d0c26688c 100644
--- a/src/providers/ipa/ipa_hbac_rules.c
+++ b/src/providers/ipa/ipa_hbac_rules.c
@@ -226,7 +226,7 @@ ipa_hbac_rule_info_next(struct tevent_req *req,
 
     DEBUG(SSSDBG_TRACE_FUNC, ("Sending request for next search base: "
                               "[%s][%d][%s]\n", base->basedn, base->scope,
-                              base->filter));
+                              state->cur_filter));
 
     subreq = sdap_get_generic_send(state, state->ev, state->opts, state->sh,
                                    base->basedn, base->scope,
diff --git a/src/providers/ipa/ipa_hbac_services.c b/src/providers/ipa/ipa_hbac_services.c
index 4f0f5f7b1127a01f27ec4703dee7f73cd565dd91..c086f976e5ede0640b5e867c1e6d122b906c618d 100644
--- a/src/providers/ipa/ipa_hbac_services.c
+++ b/src/providers/ipa/ipa_hbac_services.c
@@ -148,7 +148,7 @@ static errno_t ipa_hbac_service_info_next(struct tevent_req *req,
 
     DEBUG(SSSDBG_TRACE_FUNC, ("Sending request for next search base: "
                               "[%s][%d][%s]\n", base->basedn, base->scope,
-                              base->filter));
+                              state->cur_filter));
     subreq = sdap_get_generic_send(state, state->ev, state->opts, state->sh,
                                    base->basedn, base->scope,
                                    state->cur_filter,
@@ -263,7 +263,7 @@ ipa_hbac_servicegroup_info_next(struct tevent_req *req,
     /* Look up service groups */
     DEBUG(SSSDBG_TRACE_FUNC, ("Sending request for next search base: "
                               "[%s][%d][%s]\n", base->basedn, base->scope,
-                              base->filter));
+                              state->cur_filter));
     subreq = sdap_get_generic_send(state, state->ev, state->opts, state->sh,
                                    base->basedn, base->scope,
                                    state->cur_filter, state->attrs, NULL, 0,
diff --git a/src/providers/ipa/ipa_selinux_maps.c b/src/providers/ipa/ipa_selinux_maps.c
index 7a54d24a7ca4064ee30335539bdfe00d7c8f7299..711274b1ba63371c265f6d71bb9dee498fb98d66 100644
--- a/src/providers/ipa/ipa_selinux_maps.c
+++ b/src/providers/ipa/ipa_selinux_maps.c
@@ -128,7 +128,7 @@ ipa_selinux_get_maps_next(struct tevent_req *req,
 
     DEBUG(SSSDBG_TRACE_FUNC, ("Trying to fetch SELinux maps with following "
                               "parameters: [%d][%s][%s]\n", base->scope,
-                              base->filter, base->basedn));
+                              state->cur_filter, base->basedn));
     subreq = sdap_get_generic_send(state, state->ev, state->opts,
                                    state->sh, base->basedn,
                                    base->scope, state->cur_filter,
diff --git a/src/providers/ldap/sdap.c b/src/providers/ldap/sdap.c
index 9e052eef5fe1de2bcf2719379392ea399fe9c943..616e7cba568a4e10913f706a928f6028e7aebdc8 100644
--- a/src/providers/ldap/sdap.c
+++ b/src/providers/ldap/sdap.c
@@ -54,7 +54,8 @@ int sdap_get_map(TALLOC_CTX *memctx,
                                 map[i].def_name,
                                 &name);
         if (ret != EOK) {
-            DEBUG(0, ("Failed to retrieve value for %s\n", map[i].opt_name));
+            DEBUG(SSSDBG_CRIT_FAILURE,
+                  ("Failed to retrieve value for %s\n", map[i].opt_name));
             talloc_zfree(map);
             return EINVAL;
         }
@@ -62,7 +63,8 @@ int sdap_get_map(TALLOC_CTX *memctx,
         if (name) {
             ret = sss_filter_sanitize(map, name, &map[i].name);
             if (ret != EOK) {
-                DEBUG(1, ("Could not sanitize attribute [%s]\n", name));
+                DEBUG(SSSDBG_CRIT_FAILURE,
+                      ("Could not sanitize attribute [%s]\n", name));
                 talloc_zfree(map);
                 return EINVAL;
             }
@@ -72,14 +74,17 @@ int sdap_get_map(TALLOC_CTX *memctx,
         }
 
         if (map[i].def_name && !map[i].name) {
-            DEBUG(0, ("Failed to retrieve value for %s\n", map[i].opt_name));
+            DEBUG(SSSDBG_CRIT_FAILURE,
+                  ("Failed to retrieve value for %s\n", map[i].opt_name));
             if (ret != EOK) {
                 talloc_zfree(map);
                 return EINVAL;
             }
         }
 
-        DEBUG(5, ("Option %s has value %s\n", map[i].opt_name, map[i].name));
+        DEBUG(SSSDBG_TRACE_FUNC, ("Option %s has%s value %s\n",
+              map[i].opt_name, map[i].name ? "" : " no",
+              map[i].name ? map[i].name : ""));
     }
 
     *_map = map;
diff --git a/src/providers/ldap/sdap_async.c b/src/providers/ldap/sdap_async.c
index 076a3f22006eb2c27c295aa50bff1e2b3f58bfa9..b21d9c384d063081ce97168b1c31e16e3bcdbe13 100644
--- a/src/providers/ldap/sdap_async.c
+++ b/src/providers/ldap/sdap_async.c
@@ -1155,8 +1155,10 @@ static errno_t sdap_get_generic_ext_step(struct tevent_req *req)
      */
     talloc_zfree(state->op);
 
-    DEBUG(6, ("calling ldap_search_ext with [%s][%s].\n", state->filter,
-                                                          state->search_base));
+    DEBUG(SSSDBG_TRACE_FUNC,
+         ("calling ldap_search_ext with [%s][%s].\n",
+          state->filter ? state->filter : "no filter",
+          state->search_base));
     if (DEBUG_IS_SET(SSSDBG_TRACE_LIBS)) {
         int i;
 
diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c
index 4706e98b8e4b49ea6bd10b9910ad21d9e5c7f388..50296251bd6a9fb4e8d7b865cdb6764d27b70baf 100644
--- a/src/responder/nss/nsssrv_cmd.c
+++ b/src/responder/nss/nsssrv_cmd.c
@@ -784,7 +784,8 @@ static int nss_cmd_getpwnam_search(struct nss_dom_ctx *dctx)
         return EOK;
     }
 
-    DEBUG(2, ("No matching domain found for [%s], fail!\n", name));
+    DEBUG(SSSDBG_MINOR_FAILURE,
+          ("No matching domain found for [%s], fail!\n", cmdctx->name));
     return ENOENT;
 }
 
@@ -2100,7 +2101,8 @@ static int nss_cmd_getgrnam_search(struct nss_dom_ctx *dctx)
         return EOK;
     }
 
-    DEBUG(2, ("No matching domain found for [%s], fail!\n", name));
+    DEBUG(SSSDBG_MINOR_FAILURE,
+          ("No matching domain found for [%s], fail!\n", cmdctx->name));
     return ENOENT;
 }
 
@@ -3156,7 +3158,8 @@ static int nss_cmd_initgroups_search(struct nss_dom_ctx *dctx)
         return nss_cmd_initgr_send_reply(dctx);
     }
 
-    DEBUG(2, ("No matching domain found for [%s], fail!\n", name));
+    DEBUG(SSSDBG_MINOR_FAILURE,
+          ("No matching domain found for [%s], fail!\n", cmdctx->name));
     return ENOENT;
 }
 
diff --git a/src/responder/nss/nsssrv_netgroup.c b/src/responder/nss/nsssrv_netgroup.c
index 81c29bcc7ed6dcff83bbf80e692bdb87ceab7f85..c9fae82630e89d4df3ce56743de20f280bd7ed12 100644
--- a/src/responder/nss/nsssrv_netgroup.c
+++ b/src/responder/nss/nsssrv_netgroup.c
@@ -507,7 +507,8 @@ static errno_t lookup_netgr_step(struct setent_step_ctx *step_ctx)
     }
 
     /* If we've gotten here, then no domain contained this netgroup */
-    DEBUG(2, ("No matching domain found for [%s], fail!\n", name));
+    DEBUG(SSSDBG_MINOR_FAILURE,
+          ("No matching domain found for [%s], fail!\n", step_ctx->name));
 
     netgr = talloc_zero(step_ctx->nctx, struct getent_ctx);
     if (netgr == NULL) {
diff --git a/src/responder/pam/pamsrv_cmd.c b/src/responder/pam/pamsrv_cmd.c
index 3efa696ace23418db37fbd98acce1800e5f83350..1fdcc5b5cb8b20bf06af6920f9b5f158c13b77c2 100644
--- a/src/responder/pam/pamsrv_cmd.c
+++ b/src/responder/pam/pamsrv_cmd.c
@@ -1141,7 +1141,8 @@ static int pam_check_user_search(struct pam_auth_req *preq)
         return EAGAIN;
     }
 
-    DEBUG(2, ("No matching domain found for [%s], fail!\n", name));
+    DEBUG(SSSDBG_MINOR_FAILURE,
+          ("No matching domain found for [%s], fail!\n", preq->pd->user));
     return ENOENT;
 }
 
-- 
1.7.7.6



More information about the sssd-devel mailing list