Message ID | 20180528160011.2989632-1-arnd@arndb.de |
---|---|
State | Accepted |
Commit | 4c0eaac716d8e461584a4c8529cb00c72a563fa8 |
Headers | show |
Series | ALSA: xen: ensure nul-terminated device name | expand |
On 05/28/2018 06:59 PM, Arnd Bergmann wrote: > gcc-8 warns that pcm_instance->name is not necessarily terminated correctly > if the input is more than 80 characters long or lacks a termination byte > itself: > > In function 'strncpy', > inlined from 'cfg_device' at sound/xen/xen_snd_front_cfg.c:399:3, > inlined from 'xen_snd_front_cfg_card' at sound/xen/xen_snd_front_cfg.c:509:9: > include/linux/string.h:254:9: error: '__builtin_strncpy' specified bound 80 equals destination size [-Werror=stringop-truncation] > return __builtin_strncpy(p, q, size); > > Using strlcpy() instead of strncpy() makes this a bit safer. > > Fixes: fd3b36045c2c ("ALSA: xen-front: Read sound driver configuration from Xen store") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > sound/xen/xen_snd_front_cfg.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/sound/xen/xen_snd_front_cfg.c b/sound/xen/xen_snd_front_cfg.c > index 38c7e1eefbb9..684b5f1d51ac 100644 > --- a/sound/xen/xen_snd_front_cfg.c > +++ b/sound/xen/xen_snd_front_cfg.c > @@ -396,7 +396,7 @@ static int cfg_device(struct xen_snd_front_info *front_info, > > str = xenbus_read(XBT_NIL, device_path, XENSND_FIELD_DEVICE_NAME, NULL); > if (!IS_ERR(str)) { > - strncpy(pcm_instance->name, str, sizeof(pcm_instance->name)); > + strlcpy(pcm_instance->name, str, sizeof(pcm_instance->name)); > kfree(str); > } > Thank you for your patch, Reviewed-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com> _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
On Tue, 29 May 2018 07:48:51 +0200, Oleksandr Andrushchenko wrote: > > On 05/28/2018 06:59 PM, Arnd Bergmann wrote: > > gcc-8 warns that pcm_instance->name is not necessarily terminated correctly > > if the input is more than 80 characters long or lacks a termination byte > > itself: > > > > In function 'strncpy', > > inlined from 'cfg_device' at sound/xen/xen_snd_front_cfg.c:399:3, > > inlined from 'xen_snd_front_cfg_card' at sound/xen/xen_snd_front_cfg.c:509:9: > > include/linux/string.h:254:9: error: '__builtin_strncpy' specified bound 80 equals destination size [-Werror=stringop-truncation] > > return __builtin_strncpy(p, q, size); > > > > Using strlcpy() instead of strncpy() makes this a bit safer. > > > > Fixes: fd3b36045c2c ("ALSA: xen-front: Read sound driver configuration from Xen store") > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > > --- > > sound/xen/xen_snd_front_cfg.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/sound/xen/xen_snd_front_cfg.c b/sound/xen/xen_snd_front_cfg.c > > index 38c7e1eefbb9..684b5f1d51ac 100644 > > --- a/sound/xen/xen_snd_front_cfg.c > > +++ b/sound/xen/xen_snd_front_cfg.c > > @@ -396,7 +396,7 @@ static int cfg_device(struct xen_snd_front_info *front_info, > > str = xenbus_read(XBT_NIL, device_path, > > XENSND_FIELD_DEVICE_NAME, NULL); > > if (!IS_ERR(str)) { > > - strncpy(pcm_instance->name, str, sizeof(pcm_instance->name)); > > + strlcpy(pcm_instance->name, str, sizeof(pcm_instance->name)); > > kfree(str); > > } > > > Thank you for your patch, > Reviewed-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com> Applied now. Thanks. Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
diff --git a/sound/xen/xen_snd_front_cfg.c b/sound/xen/xen_snd_front_cfg.c index 38c7e1eefbb9..684b5f1d51ac 100644 --- a/sound/xen/xen_snd_front_cfg.c +++ b/sound/xen/xen_snd_front_cfg.c @@ -396,7 +396,7 @@ static int cfg_device(struct xen_snd_front_info *front_info, str = xenbus_read(XBT_NIL, device_path, XENSND_FIELD_DEVICE_NAME, NULL); if (!IS_ERR(str)) { - strncpy(pcm_instance->name, str, sizeof(pcm_instance->name)); + strlcpy(pcm_instance->name, str, sizeof(pcm_instance->name)); kfree(str); }
gcc-8 warns that pcm_instance->name is not necessarily terminated correctly if the input is more than 80 characters long or lacks a termination byte itself: In function 'strncpy', inlined from 'cfg_device' at sound/xen/xen_snd_front_cfg.c:399:3, inlined from 'xen_snd_front_cfg_card' at sound/xen/xen_snd_front_cfg.c:509:9: include/linux/string.h:254:9: error: '__builtin_strncpy' specified bound 80 equals destination size [-Werror=stringop-truncation] return __builtin_strncpy(p, q, size); Using strlcpy() instead of strncpy() makes this a bit safer. Fixes: fd3b36045c2c ("ALSA: xen-front: Read sound driver configuration from Xen store") Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- sound/xen/xen_snd_front_cfg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.9.0 _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel