[lustre-devel] [PATCH] staging: lustre: lov: Fix signed wrap around when decrementing index 'i'

Dilger, Andreas andreas.dilger at intel.com
Thu Nov 10 14:31:08 PST 2016


On Nov 10, 2016, at 07:19, Colin King <colin.king at canonical.com> wrote:
> 
> From: Colin Ian King <colin.king at canonical.com>
> 
> Change predecrement compare to post decrement compare to avoid an
> unsigned integer wrap-around comparisomn when decrementing in the while
> loop.
> 
> Issue found with static analysis with CoverityScan, CID 1375917

Thanks for the patch.  Seems this change has gotten a lot of attention,
this is the third patch to the list to fix it.  My preference is to
undo the int->unsigned declaration change, for which James has already
submitted a patch.

Cheers, Andreas

> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
> drivers/staging/lustre/lustre/lov/lov_ea.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/staging/lustre/lustre/lov/lov_ea.c b/drivers/staging/lustre/lustre/lov/lov_ea.c
> index 53db170..399298c 100644
> --- a/drivers/staging/lustre/lustre/lov/lov_ea.c
> +++ b/drivers/staging/lustre/lustre/lov/lov_ea.c
> @@ -102,7 +102,7 @@ struct lov_stripe_md *lsm_alloc_plain(u16 stripe_count)
> 	return lsm;
> 
> err:
> -	while (--i >= 0)
> +	while (i-- > 0)
> 		kmem_cache_free(lov_oinfo_slab, lsm->lsm_oinfo[i]);
> 	kvfree(lsm);
> 	return NULL;
> -- 
> 2.10.2
> 



More information about the lustre-devel mailing list