Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1432072AbdDYVhL convert rfc822-to-8bit (ORCPT ); Tue, 25 Apr 2017 17:37:11 -0400 Received: from blatinox.fr ([51.254.120.209]:36847 "EHLO vps202351.ovh.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1431893AbdDYVhE (ORCPT ); Tue, 25 Apr 2017 17:37:04 -0400 Date: Tue, 25 Apr 2017 17:37:00 -0400 From: =?UTF-8?B?SsOpcsOpbXk=?= Lefaure To: Andy Shevchenko Cc: David Howells , linux-cachefs@redhat.com, "linux-kernel@vger.kernel.org" Subject: Re: [PATCH] FS-Cache: print hexadecimal value for special cookies type Message-ID: <20170425173700.124ee74d@blatinox-laptop.localdomain> In-Reply-To: References: <20170419203819.21951-1-jeremy.lefaure@lse.epita.fr> <20170421190929.7e90e8b2@blatinox-laptop.localdomain> X-Mailer: Claws Mail 3.14.1 (GTK+ 2.24.31; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2495 Lines: 59 On Tue, 25 Apr 2017 00:47:41 +0300 Andy Shevchenko wrote: > On Sat, Apr 22, 2017 at 2:09 AM, Jérémy Lefaure > wrote: > > On Fri, 21 Apr 2017 22:41:54 +0300 > > Andy Shevchenko wrote: > >> On Wed, Apr 19, 2017 at 11:38 PM, Jérémy Lefaure > >> 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. > Ok I get it. But changing the format can break the userland tool anyway, can't it ? For example if a userland tool expects the value 75, it won't read it properpy in BCD. > So, if it's okay in this, perhaps paragraph explaining side effects in > commit message would be good to have/ > Maybe the best fix would be to increase the size of the _type buffer to 4 so the unsigned byte can fit in it. And change the documentation to decimal value. What do you think about this solution ? Thanks,