Message ID | 20201128224114.1033617-27-sam@ravnborg.org (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | drivers/video: W=1 warning fixes | expand |
Hi Am 28.11.20 um 23:41 schrieb Sam Ravnborg: > Two W=1 string related warnings. > - Using strncpy to copy string without null-termination generates a > warning. Use memcpy to copy only the relevant chars > > - Fix a potential bug with a very long string, subtract one from the > length to make room for the termination null. > > Signed-off-by: Sam Ravnborg <sam@ravnborg.org> > Cc: Michal Januszewski <spock@gentoo.org> > Cc: linux-fbdev@vger.kernel.org > --- > drivers/video/fbdev/uvesafb.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c > index 8ee0fc9c63cf..45dc8da191e4 100644 > --- a/drivers/video/fbdev/uvesafb.c > +++ b/drivers/video/fbdev/uvesafb.c > @@ -423,7 +423,7 @@ static int uvesafb_vbe_getinfo(struct uvesafb_ktask *task, > task->t.flags = TF_VBEIB; > task->t.buf_len = sizeof(struct vbe_ib); > task->buf = &par->vbe_ib; > - strncpy(par->vbe_ib.vbe_signature, "VBE2", 4); > + memcpy(par->vbe_ib.vbe_signature, "VBE2", 4); > > err = uvesafb_exec(task); > if (err || (task->t.regs.eax & 0xffff) != 0x004f) { > @@ -1871,7 +1871,7 @@ static ssize_t v86d_show(struct device_driver *dev, char *buf) > static ssize_t v86d_store(struct device_driver *dev, const char *buf, > size_t count) > { > - strncpy(v86d_path, buf, PATH_MAX); > + strncpy(v86d_path, buf, PATH_MAX - 1); From lookign a the drive rcode, I assume that the code never touches the final byte in v86d_path. So it remains \0 indefinitely. Acked-by: Thomas Zimmermann <tzimmermann@suse.de> > return count; > } > static DRIVER_ATTR_RW(v86d); >
diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c index 8ee0fc9c63cf..45dc8da191e4 100644 --- a/drivers/video/fbdev/uvesafb.c +++ b/drivers/video/fbdev/uvesafb.c @@ -423,7 +423,7 @@ static int uvesafb_vbe_getinfo(struct uvesafb_ktask *task, task->t.flags = TF_VBEIB; task->t.buf_len = sizeof(struct vbe_ib); task->buf = &par->vbe_ib; - strncpy(par->vbe_ib.vbe_signature, "VBE2", 4); + memcpy(par->vbe_ib.vbe_signature, "VBE2", 4); err = uvesafb_exec(task); if (err || (task->t.regs.eax & 0xffff) != 0x004f) { @@ -1871,7 +1871,7 @@ static ssize_t v86d_show(struct device_driver *dev, char *buf) static ssize_t v86d_store(struct device_driver *dev, const char *buf, size_t count) { - strncpy(v86d_path, buf, PATH_MAX); + strncpy(v86d_path, buf, PATH_MAX - 1); return count; } static DRIVER_ATTR_RW(v86d);
Two W=1 string related warnings. - Using strncpy to copy string without null-termination generates a warning. Use memcpy to copy only the relevant chars - Fix a potential bug with a very long string, subtract one from the length to make room for the termination null. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Michal Januszewski <spock@gentoo.org> Cc: linux-fbdev@vger.kernel.org --- drivers/video/fbdev/uvesafb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)