On Fri, Jul 06, 2018 at 03:28:32PM +0200, Arnd Bergmann wrote: > gcc-8 points out that the fix-byte buffer might be too small if > desc->mode is a three-digit number: > > drivers/usb/typec/class.c: In function 'typec_register_altmode': > drivers/usb/typec/class.c:502:32: error: '%d' directive writing between 1 and 3 bytes into a region of size 2 [-Werror=format-overflow=] > sprintf(alt->group_name, "mode%d", desc->mode); > ^~ > drivers/usb/typec/class.c:502:27: note: directive argument in the range [0, 255] > sprintf(alt->group_name, "mode%d", desc->mode); > ^~~~~~~~ > drivers/usb/typec/class.c:502:2: note: 'sprintf' output between 6 and 8 bytes into a destination of size 6 > sprintf(alt->group_name, "mode%d", desc->mode); > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > I assume this cannot happen in practice, but we can simply make the > string long enough to avoid the warning. This uses the two padding > bytes that already exist after the string. > > Fixes: 4ab8c18d4d67 ("usb: typec: Register a device for every mode") > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> Acked-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> > --- > drivers/usb/typec/bus.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/usb/typec/bus.h b/drivers/usb/typec/bus.h > index 62aaf8b56bde..db40e61d8b72 100644 > --- a/drivers/usb/typec/bus.h > +++ b/drivers/usb/typec/bus.h > @@ -16,7 +16,7 @@ struct altmode { > enum typec_port_data roles; > > struct attribute *attrs[5]; > - char group_name[6]; > + char group_name[8]; > struct attribute_group group; > const struct attribute_group *groups[2]; > Thanks, -- heikki -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html