On Tue, 2009-09-08 at 12:21 +0200, Sumit Bose wrote:
> > ../../server/responder/nss/nsssrv_cmd.c: In function ‘fill_grent’:
> > ../../server/responder/nss/nsssrv_cmd.c:1371: warning: ‘i’ may be
> used
> > uninitialized in this function
> 
> The value of count might have an unexpected value, but in this case
> fill_grent will return an error, too.

Yet this is bad, as the function is supposed to always return how many
entries have been used, even in case of errors.

Attached a patch to fix this, that makes it explicit.

Simo.

-- 
Simo Sorce * Red Hat, Inc * New York
>From 639f2883ed24668ccd09ecda6d7c7decf19cce81 Mon Sep 17 00:00:00 2001
From: Simo Sorce <sso...@redhat.com>
Date: Tue, 8 Sep 2009 14:36:11 -0400
Subject: [PATCH] Make counter for used messages explicit.

---
 server/responder/nss/nsssrv_cmd.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/server/responder/nss/nsssrv_cmd.c b/server/responder/nss/nsssrv_cmd.c
index 5b73be0..405dae8 100644
--- a/server/responder/nss/nsssrv_cmd.c
+++ b/server/responder/nss/nsssrv_cmd.c
@@ -1434,7 +1434,7 @@ static int fill_grent(struct sss_packet *packet,
     size_t nsize;
     size_t delim;
     size_t dom_len;
-    int i, ret, num, memnum;
+    int i, ret, num, memnum, used;
     size_t rzero, rsize;
     bool add_domain = dom->fqnames;
     const char *domain = dom->name;
@@ -1450,6 +1450,7 @@ static int fill_grent(struct sss_packet *packet,
 
     num = 0;
     memnum = 0;
+    used = 0;
 
     /* first 2 fields (len and reserved), filled up later */
     ret = sss_packet_grow(packet, 2*sizeof(uint32_t));
@@ -1460,7 +1461,7 @@ static int fill_grent(struct sss_packet *packet,
     rzero = 2*sizeof(uint32_t);
     rsize = 0;
 
-    for (i = 0; i < *count; i++) {
+    for (i = 0; i < *count; i++, used++) {
         msg = msgs[i];
 
         /* new group */
@@ -1673,7 +1674,7 @@ static int fill_grent(struct sss_packet *packet,
     }
 
 done:
-    *count = i;
+    *count = used;
 
     if (num == 0) {
         /* if num is 0 most probably something went wrong,
-- 
1.6.2.5

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

Reply via email to