[PATCH 03/11] xfsprogs: mkfs: fix unintentional integer overflow
Dave Chinner
david at fromorbit.com
Wed Dec 2 23:54:11 CST 2015
On Wed, Dec 02, 2015 at 04:49:19PM +0530, Vivek Trivedi wrote:
> Fix unintentional integer overflow in mkfs.
> Reported by coverity.
>
> Signed-off-by: Vivek Trivedi <t.vivek at samsung.com>
> ---
> mkfs/xfs_mkfs.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c
> index 7cba41a..e540c48 100644
> --- a/mkfs/xfs_mkfs.c
> +++ b/mkfs/xfs_mkfs.c
> @@ -2033,7 +2033,7 @@ _("warning: sparse inodes not supported without CRC support, disabled.\n"));
> /* check that rswidth is a multiple of fs blocksize */
> if (!norsflag && rswidth && !(BBTOB(rswidth) % blocksize)) {
> rswidth = DTOBT(rswidth);
> - rtextbytes = rswidth << blocklog;
> + rtextbytes = (__uint64_t)rswidth << blocklog;
> if (XFS_MIN_RTEXTSIZE <= rtextbytes &&
> (rtextbytes <= XFS_MAX_RTEXTSIZE)) {
> rtextblocks = rswidth;
I dislike unexplained casts in code like this. Nobody knows exactly
why it is there. A better fix is to change the definition of
rswidth to a 64 bit type so casts are not ever necessary...
Cheers,
Dave.
--
Dave Chinner
david at fromorbit.com
More information about the xfs
mailing list