diff mbox

[ndctl] btt_check_bitmap: initialize rc

Message ID x49k1zperpp.fsf@segfault.boston.devel.redhat.com (mailing list archive)
State Accepted
Commit 87605d10249d
Headers show

Commit Message

Jeff Moyer Oct. 20, 2017, 3:58 p.m. UTC
It may be possible that rc is never set before returning from
the function.  nfree would have to be zero, and the bitmap
would have to be full.  Fix it.

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>

Comments

Verma, Vishal L Oct. 31, 2017, 7:32 p.m. UTC | #1
On 10/20, Jeff Moyer wrote:
> It may be possible that rc is never set before returning from
> the function.  nfree would have to be zero, and the bitmap
> would have to be full.  Fix it.
> 
> Signed-off-by: Jeff Moyer <jmoyer@redhat.com>

Ah so it shouldn't ever happen in practice, but I can see how a static
checker may complain about it. The patch looks good to me.

Reviewed-by: Vishal Verma <vishal.l.verma@intel.com>

> 
> diff --git a/ndctl/check.c b/ndctl/check.c
> index 915bb9d..dafd6a8 100644
> --- a/ndctl/check.c
> +++ b/ndctl/check.c
> @@ -508,7 +508,7 @@ static int btt_check_bitmap(struct arena_info *a)
>  {
>  	unsigned long *bm;
>  	u32 i, btt_mapping;
> -	int rc;
> +	int rc = BTT_BITMAP_ERROR;
>  
>  	bm = bitmap_alloc(a->internal_nlba);
>  	if (bm == NULL)
> @@ -521,7 +521,6 @@ static int btt_check_bitmap(struct arena_info *a)
>  			info(a->bttc,
>  				"arena %d: internal block %#x is referenced by two map entries\n",
>  				a->num, btt_mapping);
> -			rc = BTT_BITMAP_ERROR;
>  			goto out;
>  		}
>  		bitmap_set(bm, btt_mapping, 1);
> _______________________________________________
> Linux-nvdimm mailing list
> Linux-nvdimm@lists.01.org
> https://lists.01.org/mailman/listinfo/linux-nvdimm
diff mbox

Patch

diff --git a/ndctl/check.c b/ndctl/check.c
index 915bb9d..dafd6a8 100644
--- a/ndctl/check.c
+++ b/ndctl/check.c
@@ -508,7 +508,7 @@  static int btt_check_bitmap(struct arena_info *a)
 {
 	unsigned long *bm;
 	u32 i, btt_mapping;
-	int rc;
+	int rc = BTT_BITMAP_ERROR;
 
 	bm = bitmap_alloc(a->internal_nlba);
 	if (bm == NULL)
@@ -521,7 +521,6 @@  static int btt_check_bitmap(struct arena_info *a)
 			info(a->bttc,
 				"arena %d: internal block %#x is referenced by two map entries\n",
 				a->num, btt_mapping);
-			rc = BTT_BITMAP_ERROR;
 			goto out;
 		}
 		bitmap_set(bm, btt_mapping, 1);