[SSSD] [PATCH] Assorted fixed found by the clang static analyzer

Jakub Hrozek jhrozek at redhat.com
Thu Apr 26 11:51:39 UTC 2012


I scanned the SSSD source code with the clang static analyzer and found
a number of issues. Patches are attached -- I think that most of them
are OK to just include in master. Patches #1, #13 and #16 may be
something that we want to include sooner.

Because the clang analyzer is freely available in Fedora, I think it would
make sense to run a scan at least before a release.

Developers can also run the clang tool themselves - I'll add info how
into our Developers page.
-------------- next part --------------
>From d0eec070284159653317bd1d4cd97b7769125f06 Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
Date: Wed, 25 Apr 2012 16:17:35 +0200
Subject: [PATCH 01/18] SUDO: Return ret, not EOK

This patch fixes bad refactoring - the function used to return value
directly on error and EOK as the last statement. If was then converted
into using goto label, but the last statement was still returning EOK
instead of the value it should.
---
 src/db/sysdb_sudo.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/db/sysdb_sudo.c b/src/db/sysdb_sudo.c
index f579ba8b8a8d7117f12022ca1659fe9528381b35..8f396ef5c5445e5c250bdfeecbdc7369bf0bfb4b 100644
--- a/src/db/sysdb_sudo.c
+++ b/src/db/sysdb_sudo.c
@@ -336,7 +336,7 @@ sysdb_get_sudo_user_info(TALLOC_CTX *mem_ctx, const char *username,
     *groupnames = talloc_steal(mem_ctx, sysdb_groupnames);
 done:
     talloc_free(tmp_ctx);
-    return EOK;
+    return ret;
 }
 
 errno_t
-- 
1.7.7.6

-------------- next part --------------
>From f2c91080fa055cb08674d85ea9e73cf2316900de Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
Date: Wed, 25 Apr 2012 16:20:59 +0200
Subject: [PATCH 02/18] SYSDB: return EOK if empty message is passed into
 get_rm_msg

If the code never entered the loop in get_rm_message, we would return
arbitrary return value.
---
 src/db/sysdb_selinux.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/src/db/sysdb_selinux.c b/src/db/sysdb_selinux.c
index 5df5fe0e36d4325041593c0fe69a7d5ac16f4f23..e9f2da11ba476f7bd081935dcd4041104daff981 100644
--- a/src/db/sysdb_selinux.c
+++ b/src/db/sysdb_selinux.c
@@ -56,6 +56,7 @@ static errno_t get_rm_msg(TALLOC_CTX *mem_ctx,
         rm_msg->num_elements++;
     }
 
+    ret = EOK;
 done:
     if (ret != EOK) {
         talloc_free(rm_msg);
-- 
1.7.7.6

-------------- next part --------------
>From 63133d60bc8680dea764ff3170cbf0e03f18ee67 Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
Date: Wed, 25 Apr 2012 16:27:12 +0200
Subject: [PATCH 03/18] SYSDB: check return value

In addition to testing the number of elements, also check the return
value of sysdb_attrs_get_el.
---
 src/db/sysdb.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/db/sysdb.c b/src/db/sysdb.c
index de23607a51a0731c1864cba05417b5d52c7ceae7..41c677d7e5fe16ed2799384c5c5744f92d13d64c 100644
--- a/src/db/sysdb.c
+++ b/src/db/sysdb.c
@@ -1613,7 +1613,7 @@ errno_t sysdb_attrs_primary_name(struct sysdb_ctx *sysdb,
     ret = sysdb_attrs_get_el(attrs,
                              SYSDB_NAME,
                              &sysdb_name_el);
-    if (sysdb_name_el->num_values == 0) {
+    if (ret != EOK || sysdb_name_el->num_values == 0) {
         ret = EINVAL;
         goto done;
     }
@@ -1730,7 +1730,7 @@ errno_t sysdb_attrs_get_aliases(TALLOC_CTX *mem_ctx,
     ret = sysdb_attrs_get_el(attrs,
                              SYSDB_NAME,
                              &sysdb_name_el);
-    if (sysdb_name_el->num_values == 0) {
+    if (ret != EOK || sysdb_name_el->num_values == 0) {
         ret = EINVAL;
         goto done;
     }
-- 
1.7.7.6

-------------- next part --------------
>From d1e5da0dab8bc56bf0149e63322c14892648a3f8 Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
Date: Wed, 25 Apr 2012 16:45:06 +0200
Subject: [PATCH 04/18] SSS_DEBUGLEVEL: silence analyzer warnings

Errno was returned instead of ret.

The other hunk removes return code from fread - it is not needed, the
NULL termination of the string is ensured by initializing the buffer.
---
 src/tools/sss_debuglevel.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/tools/sss_debuglevel.c b/src/tools/sss_debuglevel.c
index 83be144422eed47ef013b9d5bac837f10a6a9b6e..623cea2acd9677b5a6b954f71db981c64ed316e9 100644
--- a/src/tools/sss_debuglevel.c
+++ b/src/tools/sss_debuglevel.c
@@ -218,7 +218,7 @@ errno_t send_sighup()
         ret = errno;
         DEBUG(SSSDBG_CRIT_FAILURE, ("Could not send SIGHUP to process %d: %s\n",
               pid, strerror(errno)));
-        return errno;
+        return ret;
     }
 
     return EOK;
@@ -333,7 +333,7 @@ errno_t get_sssd_pid(pid_t *out_pid)
         goto done;
     }
 
-    ret = fread(pid_str, sizeof(char), MAX_PID_LENGTH * sizeof(char), pid_file);
+    fread(pid_str, sizeof(char), MAX_PID_LENGTH * sizeof(char), pid_file);
     if (!feof(pid_file)) {
         /* eof not reached */
         ret = ferror(pid_file);
-- 
1.7.7.6

-------------- next part --------------
>From a37d7a564dcd26373750da9aaa658af23f0e30fd Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
Date: Wed, 25 Apr 2012 16:51:00 +0200
Subject: [PATCH 05/18] SSH: return NULL on error in
 ssh_host_pubkeys_format_known_host_plain

The 'result' pointer must be initialized tin order to always return a
defined value.
---
 src/responder/ssh/sshsrv_cmd.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/responder/ssh/sshsrv_cmd.c b/src/responder/ssh/sshsrv_cmd.c
index 4766ed8b52c67a968c4b8f5080d1424fb35d08ff..0740cd25c2ec054c4d86d17ffaeebd01b65df7c3 100644
--- a/src/responder/ssh/sshsrv_cmd.c
+++ b/src/responder/ssh/sshsrv_cmd.c
@@ -422,7 +422,8 @@ ssh_host_pubkeys_format_known_host_plain(TALLOC_CTX *mem_ctx,
                                          struct sss_ssh_ent *ent)
 {
     TALLOC_CTX *tmp_ctx;
-    char *name, *pubkey, *result;
+    char *name, *pubkey;
+    char *result = NULL;
     size_t i;
 
     tmp_ctx = talloc_new(NULL);
-- 
1.7.7.6

-------------- next part --------------
>From e1cd8292560418a1cfcef94e87041e0a889a8260 Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
Date: Wed, 25 Apr 2012 16:54:48 +0200
Subject: [PATCH 06/18] SERVER: use the correct return code of
 sss_atomic_write_s

---
 src/util/server.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/util/server.c b/src/util/server.c
index 39cc1277681f88dd1c3dd5a8ed95ba3df3cc10b3..c59c193bba76b73e849b7ce68247d7c0950e8729 100644
--- a/src/util/server.c
+++ b/src/util/server.c
@@ -175,7 +175,7 @@ int pidfile(const char *path, const char *name)
 
     errno = 0;
     written = sss_atomic_write_s(fd, pid_str, size);
-    if (ret == -1) {
+    if (written == -1) {
         err = errno;
         DEBUG(SSSDBG_CRIT_FAILURE,
               ("write failed [%d][%s]\n", err, strerror(err)));
-- 
1.7.7.6

-------------- next part --------------
>From 25fd5d4c91b4457576f0b02e53b08cf6fd8b437e Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
Date: Wed, 25 Apr 2012 16:57:06 +0200
Subject: [PATCH 07/18] LDAP: check return value of sysdb_attrs_get_el

---
 src/providers/ldap/sdap_async_groups.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/src/providers/ldap/sdap_async_groups.c b/src/providers/ldap/sdap_async_groups.c
index c7e4ac2794947f2ca040c644ab94f2ce835026c6..d6877a37484c8a4d1149230786dccd004416cec0 100644
--- a/src/providers/ldap/sdap_async_groups.c
+++ b/src/providers/ldap/sdap_async_groups.c
@@ -1092,6 +1092,13 @@ next:
          */
         ret = sysdb_attrs_get_el(state->group,
                 state->opts->group_map[SDAP_AT_GROUP_MEMBER].sys_name, &el);
+        if (ret != EOK) {
+            DEBUG(SSSDBG_CRIT_FAILURE,
+                  ("Failed to get the group member attribute [%d]: %s\n",
+                  ret, strerror(ret)));
+            tevent_req_error(req, ret);
+            return;
+        }
         el->values = talloc_steal(state->group, state->sysdb_dns->values);
         el->num_values = state->sysdb_dns->num_values;
         DEBUG(9, ("Processed Group - Done\n"));
-- 
1.7.7.6

-------------- next part --------------
>From ccbbaaedda324e860f16f79f899838cfdf630697 Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
Date: Wed, 25 Apr 2012 17:00:50 +0200
Subject: [PATCH 08/18] RESPONDER: check return value from confdb_get_int

sss_process_init forgot to check return value of confdb_get_int
---
 src/responder/common/responder_common.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/src/responder/common/responder_common.c b/src/responder/common/responder_common.c
index 2c1ae28beeffbada75f56c90be4952dc616cdf18..faff0febdaa56a37df1f47995518b94198590d5e 100644
--- a/src/responder/common/responder_common.c
+++ b/src/responder/common/responder_common.c
@@ -548,6 +548,13 @@ int sss_process_init(TALLOC_CTX *mem_ctx,
     ret = confdb_get_int(rctx->cdb, rctx->confdb_service_path,
                          CONFDB_RESPONDER_GET_DOMAINS_TIMEOUT,
                          GET_DOMAINS_DEFAULT_TIMEOUT, &rctx->domains_timeout);
+    if (ret != EOK) {
+        DEBUG(SSSDBG_OP_FAILURE,
+              ("Cannnot get the default domain timeout [%d]: %s\n",
+               ret, strerror(ret)));
+        return ret;
+    }
+
     if (rctx->domains_timeout < 0) {
         DEBUG(SSSDBG_CONF_SETTINGS, ("timeout can't be set to negative value, setting default\n"));
         rctx->domains_timeout = GET_DOMAINS_DEFAULT_TIMEOUT;
-- 
1.7.7.6

-------------- next part --------------
>From 330cf090b27959b1572452e98d7e8cbdfbb1ffa2 Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
Date: Wed, 25 Apr 2012 17:08:58 +0200
Subject: [PATCH 09/18] PYHBAC: Return NULL on failure

The error handler would simply fall through instead of returning NULL.
---
 src/python/pyhbac.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/src/python/pyhbac.c b/src/python/pyhbac.c
index 05938db9970d28e804cd08665ee657225dc6fc85..e9dce9b01b78401516b5c21141be8007b4a94aec 100644
--- a/src/python/pyhbac.c
+++ b/src/python/pyhbac.c
@@ -1684,6 +1684,7 @@ HbacRequest_repr(HbacRequest *self)
         Py_DECREF(targethost_repr);
         Py_DECREF(srchost_repr);
         Py_DECREF(format);
+        return NULL;
     }
 
     o = PyUnicode_Format(format, args);
-- 
1.7.7.6

-------------- next part --------------
>From be16a5dde03e494db3c0960321584c2c094314a9 Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
Date: Wed, 25 Apr 2012 17:15:21 +0200
Subject: [PATCH 10/18] PROXY: return correct return codes

We were reporting on the value of "status" instead of "ret'. We also
didn't set ret to EOK in cases group contained no members.
---
 src/providers/proxy/proxy_id.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/providers/proxy/proxy_id.c b/src/providers/proxy/proxy_id.c
index e1325b74d3f97cde38e182ec659f50aed93e185a..2e9754a2bb89429e694bb4644ff9ae5610afffcf 100644
--- a/src/providers/proxy/proxy_id.c
+++ b/src/providers/proxy/proxy_id.c
@@ -334,7 +334,7 @@ done:
     talloc_zfree(tmpctx);
     if (ret) {
         DEBUG(SSSDBG_CRIT_FAILURE,
-              ("proxy -> getpwuid_r failed for '%d' <%d>\n", uid, status));
+              ("proxy -> getpwuid_r failed for '%d' <%d>\n", uid, ret));
     }
     return ret;
 }
@@ -656,6 +656,7 @@ static errno_t proxy_process_missing_users(struct sysdb_ctx *sysdb,
         }
     }
 
+    ret = EOK;
 done:
     talloc_free(tmp_ctx);
     return ret;
@@ -849,7 +850,7 @@ done:
     if (ret) {
         DEBUG(SSSDBG_OP_FAILURE,
               ("proxy -> getgrnam_r failed for '%s' <%d>\n",
-              name, status));
+              name, ret));
     }
     return ret;
 }
@@ -918,7 +919,7 @@ done:
     if (ret) {
         DEBUG(SSSDBG_OP_FAILURE,
               ("proxy -> getgrgid_r failed for '%d' <%d>\n",
-               gid, status));
+               gid, ret));
     }
     return ret;
 }
-- 
1.7.7.6

-------------- next part --------------
>From 514ea6c223b0b84ebbfbca38f3d2c3538e9a2d48 Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
Date: Wed, 25 Apr 2012 17:18:10 +0200
Subject: [PATCH 11/18] PAM_SSS: report error code if write fails

clang had reported this as "value of ret is never used", I think it
would be nice to report a meaningful error message.
---
 src/sss_client/pam_sss.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/sss_client/pam_sss.c b/src/sss_client/pam_sss.c
index 3de810c58487495fa71b8f36fc35f4f373733257..e25792fc012c587e2ffc804057a2b43ec6b90068 100644
--- a/src/sss_client/pam_sss.c
+++ b/src/sss_client/pam_sss.c
@@ -1209,8 +1209,8 @@ static int send_and_receive(pam_handle_t *pamh, struct pam_items *pi,
             written = sss_atomic_write_s(fd, pi->selinux_user, len);
             if (written == -1) {
                 ret = errno;
-                logger(pamh, LOG_ERR, "writing to SELinux data file "
-                        "failed. %s", tmp_path);
+                logger(pamh, LOG_ERR, "writing to SELinux data file %s"
+                        "failed [%d]: %s", tmp_path, ret, strerror(ret));
                 pam_status = PAM_SYSTEM_ERR;
                 goto done;
             }
-- 
1.7.7.6

-------------- next part --------------
>From 0d3b273d4ddd45632d92c3bfb1f9d20c46c1fae0 Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
Date: Thu, 26 Apr 2012 11:12:35 +0200
Subject: [PATCH 12/18] NSS: Check return code of sss_mmap_cache_gr_store

---
 src/responder/nss/nsssrv_cmd.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c
index 2c95645791821b7a08672474930adc041a70b23d..26179e46e40c4dd2329e94c7cdbd40dd20f018e9 100644
--- a/src/responder/nss/nsssrv_cmd.c
+++ b/src/responder/nss/nsssrv_cmd.c
@@ -1900,6 +1900,11 @@ static int fill_grent(struct sss_packet *packet,
                                             fullname.len + pwfield.len,
                                           rsize - STRS_ROFFSET -
                                             fullname.len - pwfield.len);
+            if (ret != EOK && ret != ENOMEM) {
+                DEBUG(SSSDBG_OP_FAILURE,
+                      ("Failed to store group %s(%s) in mmap cache!",
+                       name.str, domain));
+            }
         }
 
         continue;
-- 
1.7.7.6

-------------- next part --------------
>From d9059e9bb31e02c9211028bad58ed54cc1c9661f Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
Date: Thu, 26 Apr 2012 11:20:13 +0200
Subject: [PATCH 13/18] IPA netgroups: return EOK when there are no netgroups
 to process

If the code fell through the loop, ret would have been random value.
---
 src/providers/ipa/ipa_netgroups.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/src/providers/ipa/ipa_netgroups.c b/src/providers/ipa/ipa_netgroups.c
index a8e0d3445ab5bc9d6ff00b61dd4348bec2f92dcb..3aedf5310675facbbbf84edbdc199436357e5ab4 100644
--- a/src/providers/ipa/ipa_netgroups.c
+++ b/src/providers/ipa/ipa_netgroups.c
@@ -994,6 +994,7 @@ static int ipa_netgr_process_all(struct ipa_get_netgroups_state *state)
         }
     }
 
+    ret = EOK;
 done:
     return ret;
 }
-- 
1.7.7.6

-------------- next part --------------
>From c62019e2879df7edd6dd1612653d37c0adafc76f Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
Date: Thu, 26 Apr 2012 11:21:59 +0200
Subject: [PATCH 14/18] IPA: Check return values

---
 src/providers/ipa/ipa_common.c |    4 ++++
 src/providers/ipa/ipa_hosts.c  |    6 ++++++
 2 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/src/providers/ipa/ipa_common.c b/src/providers/ipa/ipa_common.c
index 225c9786c47ffe4895ad24a77b1cb23550839e48..e2e312ff2077a5629331261e8a6f9c96ac2f9ed7 100644
--- a/src/providers/ipa/ipa_common.c
+++ b/src/providers/ipa/ipa_common.c
@@ -916,6 +916,10 @@ int ipa_get_autofs_options(struct ipa_options *ipa_opts,
     ret = sdap_parse_search_base(ipa_opts->id, ipa_opts->id->basic,
                                  SDAP_AUTOFS_SEARCH_BASE,
                                  &ipa_opts->id->autofs_search_bases);
+    if (ret != EOK && ret != ENOENT) {
+        DEBUG(SSSDBG_OP_FAILURE, ("Could not parse autofs search base\n"));
+        return ret;
+    }
 
     ret = sdap_get_map(ipa_opts->id, cdb, conf_path,
                        ipa_autofs_mobject_map,
diff --git a/src/providers/ipa/ipa_hosts.c b/src/providers/ipa/ipa_hosts.c
index 5252ac9b4de33862d5526e23b10fe14df8e5bc8a..300138648f3029a6d94e60ade6e6c00977618f66 100644
--- a/src/providers/ipa/ipa_hosts.c
+++ b/src/providers/ipa/ipa_hosts.c
@@ -332,6 +332,12 @@ ipa_hostgroup_info_done(struct tevent_req *subreq)
                                     &hostgroup_count,
                                     &hostgroups);
         talloc_zfree(subreq);
+        if (ret != EOK) {
+            DEBUG(SSSDBG_OP_FAILURE,
+                  ("sdap_get_generic_recv failed: [%d]\n", ret));
+            tevent_req_error(req, ret);
+            return;
+        }
 
         /* Merge the two arrays */
         if (hostgroup_count > 0) {
-- 
1.7.7.6

-------------- next part --------------
>From 4835f37745e9ebfd039119d82e6e2c0fbacbc0cf Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
Date: Thu, 26 Apr 2012 11:23:09 +0200
Subject: [PATCH 15/18] ipa_get_config_send: remove unused assignment

---
 src/providers/ipa/ipa_config.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/src/providers/ipa/ipa_config.c b/src/providers/ipa/ipa_config.c
index 2afa3d326770d90370abbcee31f8d8af61a1ad85..25f1e37bc2b7ea030bd429a1e7125f86b548ad27 100644
--- a/src/providers/ipa/ipa_config.c
+++ b/src/providers/ipa/ipa_config.c
@@ -64,7 +64,6 @@ ipa_get_config_send(TALLOC_CTX *mem_ctx,
         state->attrs[1] = IPA_CONFIG_SELINUX_DEFAULT_MAP;
         state->attrs[2] = IPA_CONFIG_SELINUX_MAP_ORDER;
         state->attrs[3] = NULL;
-        attrs = state->attrs;
     } else {
         state->attrs = attrs;
     }
-- 
1.7.7.6

-------------- next part --------------
>From 3fc95f863b1ef9f2dd4c805f31c60bbb144d010d Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
Date: Thu, 26 Apr 2012 11:30:36 +0200
Subject: [PATCH 16/18] HBAC: Prevent NULL dereference in hbac_evaluate

'info' is optional parameter and can be set to NULL
---
 src/providers/ipa/hbac_evaluator.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/providers/ipa/hbac_evaluator.c b/src/providers/ipa/hbac_evaluator.c
index a41aa5bb6f177d0ae693776866be8377104c94fd..6190fe27907d0fd4a5efbcbda7fa6c7ff2c94bbb 100644
--- a/src/providers/ipa/hbac_evaluator.c
+++ b/src/providers/ipa/hbac_evaluator.c
@@ -147,8 +147,10 @@ enum hbac_eval_result hbac_evaluate(struct hbac_rule **rules,
         } else {
             /* An error occurred processing this rule */
             result = HBAC_EVAL_ERROR;
-            (*info)->code = ret;
-            (*info)->rule_name = strdup(rules[i]->name);
+            if (info) {
+                (*info)->code = ret;
+                (*info)->rule_name = strdup(rules[i]->name);
+            }
             /* Explicitly not checking the result of strdup(), since if
              * it's NULL, we can't do anything anyway.
              */
-- 
1.7.7.6

-------------- next part --------------
>From 188603a9311be9a85523850fb98a54ad1ca3c0dc Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
Date: Thu, 26 Apr 2012 13:00:49 +0200
Subject: [PATCH 17/18] DP: return correct error message when subdomains back
 end target is not configured

The done handler uses the value of status, not ret.
---
 src/providers/data_provider_be.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/providers/data_provider_be.c b/src/providers/data_provider_be.c
index 345dab237951e262af5e61aa5899257a809507f6..b9234d573dcdfdafc9716aa9eee6a3833406100f 100644
--- a/src/providers/data_provider_be.c
+++ b/src/providers/data_provider_be.c
@@ -416,7 +416,7 @@ static int be_get_subdomains(DBusMessage *message, struct sbus_connection *conn)
     /* return an error if corresponding backend target is not configured */
     if (becli->bectx->bet_info[BET_SUBDOMAINS].bet_ops == NULL) {
         DEBUG(SSSDBG_CRIT_FAILURE, ("Undefined backend target.\n"));
-        ret = ENODEV;
+        status = ENODEV;
         goto done;
     }
 
-- 
1.7.7.6

-------------- next part --------------
>From cbd2a76f6ffa919656ec3cfab210094c36ad3dbe Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
Date: Thu, 26 Apr 2012 13:06:26 +0200
Subject: [PATCH 18/18] AUTOFS: remove unused assignments

---
 src/responder/autofs/autofssrv_cmd.c |    5 -----
 src/sss_client/autofs/sss_autofs.c   |    1 -
 2 files changed, 0 insertions(+), 6 deletions(-)

diff --git a/src/responder/autofs/autofssrv_cmd.c b/src/responder/autofs/autofssrv_cmd.c
index ebf68b84a3d73d2b36c8a203c0be57cb50fbbcd2..4744fbaa1e4e9d2e0b1f8dadfc398ff71ce8d6d9 100644
--- a/src/responder/autofs/autofssrv_cmd.c
+++ b/src/responder/autofs/autofssrv_cmd.c
@@ -448,7 +448,6 @@ setautomntent_send(TALLOC_CTX *mem_ctx,
 
         state->map = talloc_zero(actx, struct autofs_map_ctx);
         if (!state->map) {
-            ret = ENOMEM;
             goto fail;
         }
         dctx->map_ctx = state->map;
@@ -456,7 +455,6 @@ setautomntent_send(TALLOC_CTX *mem_ctx,
         state->map->mapname = talloc_strdup(state->map, state->mapname);
         if (!state->map->mapname) {
             talloc_free(state->map);
-            ret = ENOMEM;
             goto fail;
         }
         state->map->map_table = actx->maps;
@@ -477,7 +475,6 @@ setautomntent_send(TALLOC_CTX *mem_ctx,
         lookup_ctx = talloc_zero(state->map, struct setautomntent_lookup_ctx);
         if (!lookup_ctx) {
             talloc_free(state->map);
-            ret = ENOMEM;
             goto fail;
         }
 
@@ -492,7 +489,6 @@ setautomntent_send(TALLOC_CTX *mem_ctx,
                     talloc_strdup(lookup_ctx, state->mapname);
         if (!lookup_ctx->mapname) {
             talloc_free(state->map);
-            ret = ENOMEM;
             goto fail;
         }
 
@@ -585,7 +581,6 @@ lookup_automntmap_step(struct setautomntent_lookup_ctx *lookup_ctx)
                 }
                 else break;
             }
-            ret = EOK;
         }
 
         ret = get_autofs_map(lookup_ctx->actx, lookup_ctx->mapname, &map);
diff --git a/src/sss_client/autofs/sss_autofs.c b/src/sss_client/autofs/sss_autofs.c
index 0125e6eece3bfcc69029e6a1e300159778eb72f3..e87ef4fd22d7ea577696866c00bbbb066bee8274 100644
--- a/src/sss_client/autofs/sss_autofs.c
+++ b/src/sss_client/autofs/sss_autofs.c
@@ -281,7 +281,6 @@ _sss_getautomntent_r(char **key, char **value, void *context)
     }
     /* Don't try to handle any error codes, just go to the responder again */
 
-    ret = 0;
     data_len = sizeof(uint32_t) +            /* mapname len */
                name_len + 1 +                /* mapname\0   */
                sizeof(uint32_t) +            /* index into the map */
-- 
1.7.7.6



More information about the sssd-devel mailing list