I'm sending the last wave of patches cleaning dead assignments or fixing code 
around them.

0001-Dead-assignments-cleanup-in-providers-code.patch:
Here the biggest change is in prototype of sdap_access_decide_offline, which 
IMO 
doesn't need to return any value, since it returns alway EOK now and there is 
no code which could be failing.

0002-Dead-assignments-cleanup-in-NSS-responder.patch

0003-Dead-assignments-cleanup-in-memberof-module.patch:
Here I'm not entirely sure about return code LDB_ERR_OPERATIONS_ERROR. The 
variable ret can contain either 0 or -1 (in case of insufficient memory, I 
checked the ldb code).  I think returning -1 further isn't the right choice, 
thus either ENOMEM or LDB_ERR_OPERATIONS_ERR seem to be acceptable. I chose 
the latter one, because it indicates generic ldb error. ENOMEM could be 
convenient now, but in the future the behavior of ldb_schema_attribute_add 
might change and ENOMEM would become misleading.

0004-Dead-assignments-cleanup-in-various-places-in-SSSD.patch
The last hunk should be fixing this: http://jhrozek.fedorapeople.org/sssd-
clang-llvm/report-G4QCn7.html#EndPath . IMO the original code had a flaw there, 
which would make the inner while cycle useless in case write() actually wrote 
less bytes than it could. This way it should be fixed.

-- 
Jan
From f1727032bcf4b8e0bb147a84d07e531c17429877 Mon Sep 17 00:00:00 2001
From: Jan Zeleny <jzel...@redhat.com>
Date: Wed, 1 Sep 2010 16:30:32 +0200
Subject: [PATCH 1/4] Dead assignments cleanup in providers code

Dead assignments were deleted. Also prototype of function
sdap_access_decide_offline() has been changed, since its return
code was never used.
Ticket: #586
---
 src/providers/child_common.c       |    2 --
 src/providers/data_provider_opts.c |    1 -
 src/providers/krb5/krb5_child.c    |    1 -
 src/providers/ldap/ldap_id_enum.c  |    2 --
 src/providers/ldap/sdap_access.c   |   18 +++++++-----------
 src/providers/proxy/proxy_id.c     |    2 --
 6 files changed, 7 insertions(+), 19 deletions(-)

diff --git a/src/providers/child_common.c b/src/providers/child_common.c
index a242338..5b2251f 100644
--- a/src/providers/child_common.c
+++ b/src/providers/child_common.c
@@ -492,14 +492,12 @@ void child_cleanup(int readfd, int writefd)
     if (readfd != -1) {
         ret = close(readfd);
         if (ret != EOK) {
-            ret = errno;
             DEBUG(1, ("close failed [%d][%s].\n", errno, strerror(errno)));
         }
     }
     if (writefd != -1) {
         ret = close(writefd);
         if (ret != EOK) {
-            ret = errno;
             DEBUG(1, ("close failed [%d][%s].\n", errno, strerror(errno)));
         }
     }
diff --git a/src/providers/data_provider_opts.c b/src/providers/data_provider_opts.c
index 98283e4..14f48ac 100644
--- a/src/providers/data_provider_opts.c
+++ b/src/providers/data_provider_opts.c
@@ -42,7 +42,6 @@ int dp_get_options(TALLOC_CTX *memctx,
         opts[i].opt_name = def_opts[i].opt_name;
         opts[i].type = def_opts[i].type;
         opts[i].def_val = def_opts[i].def_val;
-        ret = EOK;
 
         switch (def_opts[i].type) {
         case DP_OPT_STRING:
diff --git a/src/providers/krb5/krb5_child.c b/src/providers/krb5/krb5_child.c
index cfb3f42..6892c66 100644
--- a/src/providers/krb5/krb5_child.c
+++ b/src/providers/krb5/krb5_child.c
@@ -270,7 +270,6 @@ static krb5_error_code create_ccache_file(struct krb5_req *kr, krb5_creds *creds
 done:
     if (fd != -1) {
         close(fd);
-        fd = -1;
     }
     if (kerr != 0 && tmp_cc != NULL) {
         krb5_cc_destroy(kr->ctx, tmp_cc);
diff --git a/src/providers/ldap/ldap_id_enum.c b/src/providers/ldap/ldap_id_enum.c
index 87b9563..0917e71 100644
--- a/src/providers/ldap/ldap_id_enum.c
+++ b/src/providers/ldap/ldap_id_enum.c
@@ -531,8 +531,6 @@ static struct tevent_req *enum_groups_send(TALLOC_CTX *memctx,
     state->ctx = ctx;
     state->op = op;
 
-    attr_name = ctx->opts->group_map[SDAP_AT_GROUP_NAME].name;
-
     if (ctx->max_group_timestamp && !purge) {
 
         state->filter = talloc_asprintf(state,
diff --git a/src/providers/ldap/sdap_access.c b/src/providers/ldap/sdap_access.c
index 7d7832a..90b5371 100644
--- a/src/providers/ldap/sdap_access.c
+++ b/src/providers/ldap/sdap_access.c
@@ -99,7 +99,7 @@ struct sdap_access_req_ctx {
     char *basedn;
 };
 
-static int sdap_access_decide_offline(struct tevent_req *req);
+static void sdap_access_decide_offline(struct tevent_req *req);
 static int sdap_access_retry(struct tevent_req *req);
 static void sdap_access_connect_done(struct tevent_req *subreq);
 static void sdap_access_get_access_done(struct tevent_req *req);
@@ -182,7 +182,7 @@ static struct tevent_req *sdap_access_send(TALLOC_CTX *mem_ctx,
     /* Ok, we have one result, check if we are online or offline */
     if (be_is_offline(state->be_ctx)) {
         /* Ok, we're offline. Return from the cache */
-        ret = sdap_access_decide_offline(req);
+        sdap_access_decide_offline(req);
         goto finished;
     }
 
@@ -241,7 +241,7 @@ finished:
     return req;
 }
 
-static int sdap_access_decide_offline(struct tevent_req *req)
+static void sdap_access_decide_offline(struct tevent_req *req)
 {
     struct sdap_access_req_ctx *state =
             tevent_req_data(req, struct sdap_access_req_ctx);
@@ -253,8 +253,6 @@ static int sdap_access_decide_offline(struct tevent_req *req)
         DEBUG(6, ("Access denied by cached credentials\n"));
         state->pam_status = PAM_PERM_DENIED;
     }
-
-    return EOK;
 }
 
 static int sdap_access_retry(struct tevent_req *req)
@@ -287,11 +285,9 @@ static void sdap_access_connect_done(struct tevent_req *subreq)
 
     if (ret != EOK) {
         if (dp_error == DP_ERR_OFFLINE) {
-            ret = sdap_access_decide_offline(req);
-            if (ret == EOK) {
-                tevent_req_done(req);
-                return;
-            }
+            sdap_access_decide_offline(req);
+            tevent_req_done(req);
+            return;
         }
 
         tevent_req_error(req, ret);
@@ -344,7 +340,7 @@ static void sdap_access_get_access_done(struct tevent_req *subreq)
             }
             state->pam_status = PAM_SYSTEM_ERR;
         } else if (dp_error == DP_ERR_OFFLINE) {
-            ret = sdap_access_decide_offline(req);
+            sdap_access_decide_offline(req);
         } else {
             DEBUG(1, ("sdap_get_generic_send() returned error [%d][%s]\n",
                       ret, strerror(ret)));
diff --git a/src/providers/proxy/proxy_id.c b/src/providers/proxy/proxy_id.c
index 8536b93..d2fba72 100644
--- a/src/providers/proxy/proxy_id.c
+++ b/src/providers/proxy/proxy_id.c
@@ -1037,7 +1037,6 @@ void proxy_get_account_info(struct be_req *breq)
 {
     struct be_acct_req *ar;
     struct proxy_id_ctx *ctx;
-    struct tevent_context *ev;
     struct sysdb_ctx *sysdb;
     struct sss_domain_info *domain;
     uid_t uid;
@@ -1047,7 +1046,6 @@ void proxy_get_account_info(struct be_req *breq)
     ar = talloc_get_type(breq->req_data, struct be_acct_req);
     ctx = talloc_get_type(breq->be_ctx->bet_info[BET_ID].pvt_bet_data,
                           struct proxy_id_ctx);
-    ev = breq->be_ctx->ev;
     sysdb = breq->be_ctx->sysdb;
     domain = breq->be_ctx->domain;
 
-- 
1.7.2.1

From fabd2f5eff81dcc2056693ab550b9fb1b22bd354 Mon Sep 17 00:00:00 2001
From: Jan Zeleny <jzel...@redhat.com>
Date: Thu, 2 Sep 2010 10:07:33 +0200
Subject: [PATCH 2/4] Dead assignments cleanup in NSS responder

Various dead assignments were deleted, some return value inspections
were added.
Ticket: #588
---
 src/responder/common/negcache.c |    2 --
 src/responder/nss/nsssrv_cmd.c  |   12 +++++++-----
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/responder/common/negcache.c b/src/responder/common/negcache.c
index 521a2e7..9ba24c8 100644
--- a/src/responder/common/negcache.c
+++ b/src/responder/common/negcache.c
@@ -395,7 +395,6 @@ errno_t sss_ncache_prepopulate(struct sss_nc_ctx *ncache,
             }
             filter_list[1] = NULL;
         }
-        ret = EOK;
     }
     else if (ret != EOK) goto done;
 
@@ -486,7 +485,6 @@ errno_t sss_ncache_prepopulate(struct sss_nc_ctx *ncache,
             }
             filter_list[1] = NULL;
         }
-        ret = EOK;
     }
     else if (ret != EOK) goto done;
 
diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c
index 9b75513..719608c 100644
--- a/src/responder/nss/nsssrv_cmd.c
+++ b/src/responder/nss/nsssrv_cmd.c
@@ -1272,6 +1272,9 @@ static int nss_cmd_endpwent(struct cli_ctx *cctx)
                          sss_packet_get_cmd(cctx->creq->in),
                          &cctx->creq->out);
 
+    if (ret != EOK) {
+        return ret;
+    }
     if (nctx->pctx == NULL) goto done;
 
     /* free results and reset */
@@ -2342,6 +2345,9 @@ static int nss_cmd_endgrent(struct cli_ctx *cctx)
                          sss_packet_get_cmd(cctx->creq->in),
                          &cctx->creq->out);
 
+    if (ret != EOK) {
+        return ret;
+    }
     if (nctx->gctx == NULL) goto done;
 
     /* free results and reset */
@@ -2395,11 +2401,7 @@ static int nss_cmd_initgr_send_reply(struct nss_dom_ctx *dctx)
 {
     struct nss_cmd_ctx *cmdctx = dctx->cmdctx;
     struct cli_ctx *cctx = cmdctx->cctx;
-    struct nss_ctx *nctx;
     int ret;
-    int i;
-
-    nctx = talloc_get_type(cctx->rctx->pvt_ctx, struct nss_ctx);
 
     ret = sss_packet_new(cctx->creq, 0,
                          sss_packet_get_cmd(cctx->creq->in),
@@ -2407,7 +2409,7 @@ static int nss_cmd_initgr_send_reply(struct nss_dom_ctx *dctx)
     if (ret != EOK) {
         return EFAULT;
     }
-    i = dctx->res->count;
+
     ret = fill_initgr(cctx->creq->out, dctx->res);
     if (ret) {
         return ret;
-- 
1.7.2.1

From a31db46c664f85fefa4b44b17830a61d5bbca18e Mon Sep 17 00:00:00 2001
From: Jan Zeleny <jzel...@redhat.com>
Date: Thu, 2 Sep 2010 13:27:25 +0200
Subject: [PATCH 3/4] Dead assignments cleanup in memberof module

Some assignments deleted, two return value inspections were
added.
Ticket: #589
---
 src/ldb_modules/memberof.c |    9 +++------
 1 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/src/ldb_modules/memberof.c b/src/ldb_modules/memberof.c
index c3f5763..1e28593 100644
--- a/src/ldb_modules/memberof.c
+++ b/src/ldb_modules/memberof.c
@@ -1712,14 +1712,12 @@ static int mbof_del_execute_cont(struct mbof_del_operation *delop)
     struct mbof_del_operation *parent;
     struct mbof_del_ctx *del_ctx;
     struct mbof_ctx *ctx;
-    struct ldb_context *ldb;
     struct mbof_dn_array *new_list;
     int i;
 
     del_ctx = delop->del_ctx;
     parent = delop->parent;
     ctx = del_ctx->ctx;
-    ldb = ldb_module_get_ctx(ctx->module);
 
     anc_ctx = talloc_zero(delop, struct mbof_del_ancestors_ctx);
     if (!anc_ctx) {
@@ -2194,11 +2192,9 @@ static int mbof_del_get_next(struct mbof_del_operation *delop,
 {
     struct mbof_del_operation *top, *cop;
     struct mbof_del_ctx *del_ctx;
-    struct mbof_ctx *ctx;
     struct mbof_dn *save, *tmp;
 
     del_ctx = delop->del_ctx;
-    ctx = del_ctx->ctx;
 
     /* first of all, save the current delop in the history */
     save = talloc_zero(del_ctx, struct mbof_dn);
@@ -2796,12 +2792,10 @@ static int mbof_mod_delete(struct mbof_mod_ctx *mod_ctx,
 {
     struct mbof_del_operation *first;
     struct mbof_del_ctx *del_ctx;
-    struct ldb_context *ldb;
     struct mbof_ctx *ctx;
     int i, ret;
 
     ctx = mod_ctx->ctx;
-    ldb = ldb_module_get_ctx(ctx->module);
 
     del_ctx = talloc_zero(mod_ctx, struct mbof_del_ctx);
     if (!del_ctx) {
@@ -3603,7 +3597,10 @@ static int memberof_init(struct ldb_module *module)
     /* set syntaxes for member and memberof so that comparisons in filters and
      * such are done right */
     ret = ldb_schema_attribute_add(ldb, DB_MEMBER, 0, LDB_SYNTAX_DN);
+    if (ret != 0) return LDB_ERR_OPERATIONS_ERROR;
+
     ret = ldb_schema_attribute_add(ldb, DB_MEMBEROF, 0, LDB_SYNTAX_DN);
+    if (ret != 0) return LDB_ERR_OPERATIONS_ERROR;
 
     return ldb_next_init(module);
 }
-- 
1.7.2.1

From 3f332302528452e2f18cbcabfc0f39efab1f0146 Mon Sep 17 00:00:00 2001
From: Jan Zeleny <jzel...@redhat.com>
Date: Thu, 2 Sep 2010 14:35:58 +0200
Subject: [PATCH 4/4] Dead assignments cleanup in various places in SSSD

Three assignments deleted, two return code inspection added.
Also found and fixed one critical bug caused by dead assignment.
Ticket: #590
---
 src/confdb/confdb.c       |    1 -
 src/confdb/confdb_setup.c |    5 +----
 src/db/sysdb.c            |    3 +++
 src/monitor/monitor.c     |    3 +++
 src/util/backup_file.c    |    2 +-
 5 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/confdb/confdb.c b/src/confdb/confdb.c
index 877b80a..eebc2cd 100644
--- a/src/confdb/confdb.c
+++ b/src/confdb/confdb.c
@@ -862,7 +862,6 @@ int confdb_get_domains(struct confdb_ctx *cdb,
         if (ret) {
             DEBUG(0, ("Error (%d [%s]) retrieving domain [%s], skipping!\n",
                       ret, strerror(ret), domlist[i]));
-            ret = EOK;
             continue;
         }
 
diff --git a/src/confdb/confdb_setup.c b/src/confdb/confdb_setup.c
index b2ac7e1..f98a697 100644
--- a/src/confdb/confdb_setup.c
+++ b/src/confdb/confdb_setup.c
@@ -133,7 +133,6 @@ static int confdb_create_ldif(TALLOC_CTX *mem_ctx,
     int ret, i, j;
     char *ldif;
     char *tmp_ldif;
-    char *writer;
     char **sections;
     int section_count;
     char *dn;
@@ -159,7 +158,6 @@ static int confdb_create_ldif(TALLOC_CTX *mem_ctx,
     }
 
     memcpy(ldif, CONFDB_INTERNAL_LDIF, ldif_len);
-    writer = ldif+ldif_len;
 
     /* Read in the collection and convert it to an LDIF */
     /* Get the list of sections */
@@ -273,7 +271,7 @@ error:
 
 int confdb_init_db(const char *config_file, struct confdb_ctx *cdb)
 {
-    int ret, i;
+    int ret;
     int fd = -1;
     struct collection_item *sssd_config = NULL;
     struct collection_item *error_list = NULL;
@@ -397,7 +395,6 @@ int confdb_init_db(const char *config_file, struct confdb_ctx *cdb)
 
     DEBUG(7, ("LDIF file to import: \n%s", config_ldif));
 
-    i=0;
     while ((ldif = ldb_ldif_read_string(cdb->ldb, (const char **)&config_ldif))) {
         ret = ldb_add(cdb->ldb, ldif->msg);
         if (ret != LDB_SUCCESS) {
diff --git a/src/db/sysdb.c b/src/db/sysdb.c
index 5a7626f..4e1243c 100644
--- a/src/db/sysdb.c
+++ b/src/db/sysdb.c
@@ -193,6 +193,9 @@ int sysdb_attrs_add_val(struct sysdb_attrs *attrs,
     int ret;
 
     ret = sysdb_attrs_get_el(attrs, name, &el);
+    if (ret != EOK) {
+        return ret;
+    }
 
     vals = talloc_realloc(attrs->a, el->values,
                           struct ldb_val, el->num_values+1);
diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c
index caf4056..1c2a058 100644
--- a/src/monitor/monitor.c
+++ b/src/monitor/monitor.c
@@ -981,6 +981,9 @@ static int add_new_service(struct mt_ctx *ctx, const char *name)
     struct mt_svc *svc;
 
     ret = get_service_config(ctx, name, &svc);
+    if (ret != EOK) {
+        return ret;
+    }
 
     ret = start_service(svc);
     if (ret != EOK) {
diff --git a/src/util/backup_file.c b/src/util/backup_file.c
index 9907932..fb1604b 100644
--- a/src/util/backup_file.c
+++ b/src/util/backup_file.c
@@ -96,8 +96,8 @@ int backup_file(const char *src_file, int dbglvl)
 
         count = num;
 
+        pos = 0;
         while (count > 0) {
-            pos = 0;
             errno = 0;
             num = write(dst_fd, &buf[pos], count);
             if (num < 0) {
-- 
1.7.2.1

_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://fedorahosted.org/mailman/listinfo/sssd-devel

Reply via email to