On Wed, Apr 19, 2017 at 11:38 PM, Jérémy Lefaure <jeremy.lefa...@lse.epita.fr> 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. > Signed-off-by: Jérémy Lefaure <jeremy.lefa...@lse.epita.fr> > --- > fs/fscache/object-list.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/fscache/object-list.c b/fs/fscache/object-list.c > index 67f940892ef8..d51303124889 100644 > --- a/fs/fscache/object-list.c > +++ b/fs/fscache/object-list.c > @@ -262,7 +262,7 @@ static int fscache_objlist_show(struct seq_file *m, void > *v) > type = "DT"; > break; > default: > - sprintf(_type, "%02u", cookie->def->type); > + sprintf(_type, "%02x", cookie->def->type); > type = _type; > break; > } > -- > 2.12.2 > -- With Best Regards, Andy Shevchenko