Message ID | 20240328140512.4148825-2-arnd@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | address remaining stringop-truncation warnings | expand |
On Thu, Mar 28, 2024 at 03:04:45PM +0100, Arnd Bergmann wrote: > diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c > index 258aa0e37f55..6ca5797aeae5 100644 > --- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c > +++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c > @@ -937,8 +937,8 @@ static int create_component(struct vchiq_mmal_instance *instance, > /* build component create message */ > m.h.type = MMAL_MSG_TYPE_COMPONENT_CREATE; > m.u.component_create.client_component = component->client_component; > - strncpy(m.u.component_create.name, name, > - sizeof(m.u.component_create.name)); > + strscpy_pad(m.u.component_create.name, name, > + sizeof(m.u.component_create.name)); You sent this earlier and we already applied it. Btw, I just learned there is a new trick to write this when it's just sizeof(dest). strscpy_pad(m.u.component_create.name, name); regards, dan carpenter
On Thu, Mar 28, 2024, at 15:42, Dan Carpenter wrote: > On Thu, Mar 28, 2024 at 03:04:45PM +0100, Arnd Bergmann wrote: >> diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c >> index 258aa0e37f55..6ca5797aeae5 100644 >> --- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c >> +++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c >> @@ -937,8 +937,8 @@ static int create_component(struct vchiq_mmal_instance *instance, >> /* build component create message */ >> m.h.type = MMAL_MSG_TYPE_COMPONENT_CREATE; >> m.u.component_create.client_component = component->client_component; >> - strncpy(m.u.component_create.name, name, >> - sizeof(m.u.component_create.name)); >> + strscpy_pad(m.u.component_create.name, name, >> + sizeof(m.u.component_create.name)); > > You sent this earlier and we already applied it. Sorry about that. I normally mark patches I send as applied in the subject but it looks like I lost the annotation by accident. > Btw, I just learned there is a new trick to write this when it's just > sizeof(dest). > > strscpy_pad(m.u.component_create.name, name); Ah, cute. arnd
Hi, On Thu, Mar 28, 2024 at 03:04:45PM +0100, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > gcc-14 warns about this strncpy() that results in a non-terminated > string for an overflow: > > In file included from include/linux/string.h:369, > from drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c:20: > In function 'strncpy', > inlined from 'create_component' at drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c:940:2: > include/linux/fortify-string.h:108:33: error: '__builtin_strncpy' specified bound 128 equals destination size [-Werror=stringop-truncation] > > Change it to strscpy_pad(), which produces a properly terminated and > zero-padded string. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> If there is other review that warrants a change, we might as well switch over to the new 2-argument version of strscpy{_pad}() introduced in Commit e6584c3964f2f ("string: Allow 2-argument strscpy()"). No need to change for only this reason, though. Reviewed-by: Justin Stitt <justinstitt@google.com> > --- > drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c > index 258aa0e37f55..6ca5797aeae5 100644 > --- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c > +++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c > @@ -937,8 +937,8 @@ static int create_component(struct vchiq_mmal_instance *instance, > /* build component create message */ > m.h.type = MMAL_MSG_TYPE_COMPONENT_CREATE; > m.u.component_create.client_component = component->client_component; > - strncpy(m.u.component_create.name, name, > - sizeof(m.u.component_create.name)); > + strscpy_pad(m.u.component_create.name, name, > + sizeof(m.u.component_create.name)); > > ret = send_synchronous_mmal_msg(instance, &m, > sizeof(m.u.component_create), > -- > 2.39.2 > Thanks Justin
diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c index 258aa0e37f55..6ca5797aeae5 100644 --- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c +++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c @@ -937,8 +937,8 @@ static int create_component(struct vchiq_mmal_instance *instance, /* build component create message */ m.h.type = MMAL_MSG_TYPE_COMPONENT_CREATE; m.u.component_create.client_component = component->client_component; - strncpy(m.u.component_create.name, name, - sizeof(m.u.component_create.name)); + strscpy_pad(m.u.component_create.name, name, + sizeof(m.u.component_create.name)); ret = send_synchronous_mmal_msg(instance, &m, sizeof(m.u.component_create),