Message ID | 20231108145822.3955219-1-arnd@kernel.org (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
Series | fbdev: hyperv_fb: fix uninitialized local variable use | expand |
On 11/8/23 15:58, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > When CONFIG_SYSFB is disabled, the hyperv_fb driver can now run into > undefined behavior on a gen2 VM, as indicated by this smatch warning: > > drivers/video/fbdev/hyperv_fb.c:1077 hvfb_getmem() error: uninitialized symbol 'base'. > drivers/video/fbdev/hyperv_fb.c:1077 hvfb_getmem() error: uninitialized symbol 'size'. > > Since there is no way to know the actual framebuffer in this configuration, > just return an allocation failure here, which should avoid the build > warning and the undefined behavior. > > Reported-by: kernel test robot <lkp@intel.com> > Reported-by: Dan Carpenter <dan.carpenter@linaro.org> > Closes: https://lore.kernel.org/r/202311070802.YCpvehaz-lkp@intel.com/ > Fixes: a07b50d80ab6 ("hyperv: avoid dependency on screen_info") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> applied. Thanks! Helge > --- > drivers/video/fbdev/hyperv_fb.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/video/fbdev/hyperv_fb.c b/drivers/video/fbdev/hyperv_fb.c > index bf59daf862fc..a80939fe2ee6 100644 > --- a/drivers/video/fbdev/hyperv_fb.c > +++ b/drivers/video/fbdev/hyperv_fb.c > @@ -1013,6 +1013,8 @@ static int hvfb_getmem(struct hv_device *hdev, struct fb_info *info) > } else if (IS_ENABLED(CONFIG_SYSFB)) { > base = screen_info.lfb_base; > size = screen_info.lfb_size; > + } else { > + goto err1; > } > > /*
diff --git a/drivers/video/fbdev/hyperv_fb.c b/drivers/video/fbdev/hyperv_fb.c index bf59daf862fc..a80939fe2ee6 100644 --- a/drivers/video/fbdev/hyperv_fb.c +++ b/drivers/video/fbdev/hyperv_fb.c @@ -1013,6 +1013,8 @@ static int hvfb_getmem(struct hv_device *hdev, struct fb_info *info) } else if (IS_ENABLED(CONFIG_SYSFB)) { base = screen_info.lfb_base; size = screen_info.lfb_size; + } else { + goto err1; } /*