[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1465136464.1767.57.camel@linux.intel.com>
Date: Sun, 05 Jun 2016 17:21:04 +0300
From: Andy Shevchenko <andriy.shevchenko@...ux.intel.com>
To: George Spelvin <linux@...encehorizons.net>
Cc: bjorn@...k.no, linux-kernel@...r.kernel.org,
matt@...eblueprint.co.uk, rv@...musvillemoes.dk
Subject: Re: [PATCH v2 3/2] lib/uuid.c: Silence an unchecked return value
warning
On Sat, 2016-06-04 at 09:16 -0400, George Spelvin wrote:
> Andy Shevchenko pointed out that __uuid_to_bin doesn't need to check
> the return value from hex2bin(), because the preceding uuid_is_valid()
> check already took care of that.
>
> But hex2bin() is declared __must_check, so checking anyway is the
> simplest way to silence the warning.
>
> This cancels a small fraction of the the space savings, but not all:
>
> vs. previous patch vs. before patch series
> Before After Delta Percent Orig. Delta
> Percent
> x86-32 90 96 +6 6.7% 122 -
> 26 -21.3%
> x86-64 90 96 +6 6.7% 127 -31
> -24.4%
> arm 92 104 +12 13.0% 116 -12
> -10.3%
> thumb 50 62 +12 24.0% 100 -38
> -38.0%
> arm64 116 124 +8 6.9% 148 -24
> -16.2%
>
> Signed-off-by: George Spelvin <linux@...encehorizons.net>
> ---
> lib/uuid.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/lib/uuid.c b/lib/uuid.c
> index 93945915..1a6dbbd2 100644
> --- a/lib/uuid.c
> +++ b/lib/uuid.c
> @@ -104,7 +104,8 @@ static int __uuid_to_bin(const char uuid[36], __u8
> b[16], const u8 pos[16])
> return -EINVAL;
>
> for (i = 0; i < 16; i++)
> - hex2bin(b + i, uuid + pos[i], 1);
> + if (hex2bin(b + i, uuid + pos[i], 1) < 0)
> + return -EINVAL;
Which I against of. Please, use normal hex_to_bin() calls here.
Compiler will inline it anyway, but at least will not do second check
for nothing.
>
> return 0;
> }
--
Andy Shevchenko <andriy.shevchenko@...ux.intel.com>
Intel Finland Oy
Powered by blists - more mailing lists