Re: [PATCH] FS-Cache: print hexadecimal value for special cookies type

From: Andy Shevchenko
Date: Mon Apr 24 2017 - 17:47:59 EST


On Sat, Apr 22, 2017 at 2:09 AM, JÃrÃmy Lefaure
<jeremy.lefaure@xxxxxxxxxxxx> wrote:
> On Fri, 21 Apr 2017 22:41:54 +0300
> Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote:
>> On Wed, Apr 19, 2017 at 11:38 PM, JÃrÃmy Lefaure
>> <jeremy.lefaure@xxxxxxxxxxxx> wrote:
>> > When building object-list.o, gcc 6 raises a warning on the sprintf call
>> > in fscache_objlist_show:
>> >
>> > CC fs/fscache/object-list.o
>> > fs/fscache/object-list.c: In function âfscache_objlist_showâ:
>> > fs/fscache/object-list.c:265:19: warning: âsprintfâ may write a
>> > terminating nul past the end of the destination [-Wformat-overflow=]
>> > sprintf(_type, "%02u", cookie->def->type);
>> > ^~~~~~
>> > fs/fscache/object-list.c:265:4: note: âsprintfâ output between 3 and 4
>> > bytes into a destination of size 3
>> > sprintf(_type, "%02u", cookie->def->type);
>> > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> >
>> > Moreover, the documentation says that we should have an hex value for
>> > special cookies (see Documentation/filesystems/caching/fscache.txt).
>> >
>> > Printing hexadecimal value for special cookies fixes the overflow
>> > warning and complies with the documentation.
>>
>> If this is used by some user space tool the safest fix is to print in
>> BCD and fix documentation.
>>
> Are you talking about the Binary Coded Decimal format ?

Yes.

> I don't get why
> it would be better. If we change the printed format, it would break
> user space tool anyway, right ?

If userspace tool is bound to the format it might go crazy about hex
digits in the cookie.

Is that cookie important somehow? (for example, user space might
request something based on it?) It might be a case when you got let
say '75' and then ask for 117 (0x75), however real value is 75.

So, if it's okay in this, perhaps paragraph explaining side effects in
commit message would be good to have/

--
With Best Regards,
Andy Shevchenko