On Wed, 2016-02-03 at 13:13 +0100, Jason A. Donenfeld wrote: > Signed-off-by: Jason A. Donenfeld <[email protected]> > --- > lib/vsprintf.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/lib/vsprintf.c b/lib/vsprintf.c > index 1b1b1c8..85e6645 100644 > --- a/lib/vsprintf.c > +++ b/lib/vsprintf.c > @@ -1189,7 +1189,7 @@ char *ip6_addr_string_sa(char *buf, char *end, const > struct sockaddr_in6 *sa, > *p++ = ':'; > p = number(p, pend, ntohs(sa->sin6_port), spec); > } > - if (have_f) { > + if (have_f && (sa->sin6_flowinfo & IPV6_FLOWINFO_MASK)) { > *p++ = '/'; > p = number(p, pend, ntohl(sa->sin6_flowinfo & > IPV6_FLOWINFO_MASK), spec);
Why does this matter at all? The format string "%pIS[...]f" is not used currently in the kernel. If one were to call out this 'f' qualifier to %pIS, wouldn't it be better to show /0 than elide the / output completely?

