video: fbdev: uvesafb: Fix string related warnings
authorSam Ravnborg <sam@ravnborg.org>
Sat, 28 Nov 2020 22:41:12 +0000 (23:41 +0100)
committerSam Ravnborg <sam@ravnborg.org>
Sat, 5 Dec 2020 20:01:36 +0000 (21:01 +0100)
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>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Michal Januszewski <spock@gentoo.org>
Cc: linux-fbdev@vger.kernel.org
Link: https://patchwork.freedesktop.org/patch/msgid/20201128224114.1033617-27-sam@ravnborg.org
drivers/video/fbdev/uvesafb.c

index def14ac..6c9cfab 100644 (file)
@@ -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);