When building object-list.o, gcc (version 7) 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 value for special cookies is a hexadecimal value (see Documentation/filesystems/caching/fscache.txt). Increasing the buffer size to use a decimal value fixes the problem without any effect on userland tools. Also, this patch updates the documentation. Signed-off-by: Jérémy Lefaure <jeremy.lefaure@xxxxxxxxxxxx> --- v2: _ keep decimal value _ fix _type buffer size _ fix documentation I didn't have the time to test this patch yet but everything should be fine. Documentation/filesystems/caching/fscache.txt | 2 +- fs/fscache/object-list.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Documentation/filesystems/caching/fscache.txt b/Documentation/filesystems/caching/fscache.txt index 50f0a5757f48..9c3df61b3c16 100644 --- a/Documentation/filesystems/caching/fscache.txt +++ b/Documentation/filesystems/caching/fscache.txt @@ -374,7 +374,7 @@ and the second set of columns describe the object's cookie, if present: COLUMN DESCRIPTION =============== ======================================================= NETFS_COOKIE_DEF Name of netfs cookie definition - TY Cookie type (IX - index, DT - data, hex - special) + TY Cookie type (IX - index, DT - data, decimal - special) FL Cookie flags NETFS_DATA Netfs private data stored in the cookie OBJECT_KEY Object key } 1 column, with separating comma diff --git a/fs/fscache/object-list.c b/fs/fscache/object-list.c index 67f940892ef8..3452d7dbf1e1 100644 --- a/fs/fscache/object-list.c +++ b/fs/fscache/object-list.c @@ -169,7 +169,7 @@ static int fscache_objlist_show(struct seq_file *m, void *v) struct fscache_object *obj = v; struct fscache_cookie *cookie; unsigned long config = data->config; - char _type[3], *type; + char _type[4], *type; u8 *buf = data->buf, *p; if ((unsigned long) v == 1) { @@ -194,7 +194,7 @@ static int fscache_objlist_show(struct seq_file *m, void *v) if ((unsigned long) v == 2) { seq_puts(m, "======== ======== ==== ===== === === === == =====" " == == == =" - " | ================ == == ================"); + " | ================ === == ================"); if (config & (FSCACHE_OBJLIST_CONFIG_KEY | FSCACHE_OBJLIST_CONFIG_AUX)) seq_puts(m, " ================"); @@ -256,13 +256,13 @@ static int fscache_objlist_show(struct seq_file *m, void *v) switch (cookie->def->type) { case 0: - type = "IX"; + type = " IX"; break; case 1: - type = "DT"; + type = " DT"; break; default: - sprintf(_type, "%02u", cookie->def->type); + sprintf(_type, "%03u", cookie->def->type); type = _type; break; } -- 2.12.2 -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html