• Tetsuo Handa's avatar
    fbcon: Use kzalloc() in fbcon_prepare_logo() · a6a00d7e
    Tetsuo Handa authored
    A kernel built with syzbot's config file reported that
    
      scr_memcpyw(q, save, array3_size(logo_lines, new_cols, 2))
    
    causes uninitialized "save" to be copied.
    
      ----------
      [drm] Initialized vgem 1.0.0 20120112 for vgem on minor 0
      [drm] Initialized vkms 1.0.0 20180514 for vkms on minor 1
      Console: switching to colour frame buffer device 128x48
      =====================================================
      BUG: KMSAN: uninit-value in do_update_region+0x4b8/0xba0
       do_update_region+0x4b8/0xba0
       update_region+0x40d/0x840
       fbcon_switch+0x3364/0x35e0
       redraw_screen+0xae3/0x18a0
       do_bind_con_driver+0x1cb3/0x1df0
       do_take_over_console+0x11cb/0x13f0
       fbcon_fb_registered+0xacc/0xfd0
       register_framebuffer+0x1179/0x1320
       __drm_fb_helper_initial_config_and_unlock+0x23ad/0x2b40
       drm_fbdev_client_hotplug+0xbea/0xda0
       drm_fbdev_generic_setup+0x65e/0x9d0
       vkms_init+0x9f3/0xc76
       (...snipped...)
    
      Uninit was stored to memory at:
       fbcon_prepare_logo+0x143b/0x1940
       fbcon_init+0x2c1b/0x31c0
       visual_init+0x3e7/0x820
       do_bind_con_driver+0x14a4/0x1df0
       do_take_over_console+0x11cb/0x13f0
       fbcon_fb_registered+0xacc/0xfd0
       register_framebuffer+0x1179/0x1320
       __drm_fb_helper_initial_config_and_unlock+0x23ad/0x2b40
       drm_fbdev_client_hotplug+0xbea/0xda0
       drm_fbdev_generic_setup+0x65e/0x9d0
       vkms_init+0x9f3/0xc76
       (...snipped...)
    
      Uninit was created at:
       __kmem_cache_alloc_node+0xb69/0x1020
       __kmalloc+0x379/0x680
       fbcon_prepare_logo+0x704/0x1940
       fbcon_init+0x2c1b/0x31c0
       visual_init+0x3e7/0x820
       do_bind_con_driver+0x14a4/0x1df0
       do_take_over_console+0x11cb/0x13f0
       fbcon_fb_registered+0xacc/0xfd0
       register_framebuffer+0x1179/0x1320
       __drm_fb_helper_initial_config_and_unlock+0x23ad/0x2b40
       drm_fbdev_client_hotplug+0xbea/0xda0
       drm_fbdev_generic_setup+0x65e/0x9d0
       vkms_init+0x9f3/0xc76
       (...snipped...)
    
      CPU: 2 PID: 1 Comm: swapper/0 Not tainted 6.1.0-rc4-00356-g8f2975c2 #924
      Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
      ----------
    Signed-off-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Link: https://patchwork.freedesktop.org/patch/msgid/cad03d25-0ea0-32c4-8173-fd1895314bce@I-love.SAKURA.ne.jp
    a6a00d7e
fbcon.c 83.4 KB