On Wed, Mar 03, 2021 at 08:39:09AM +0100, Greg KH wrote: > On Wed, Mar 03, 2021 at 03:33:23PM +0800, Wang, Li wrote: > > On 3/3/2021 3:14 PM, Greg KH wrote: > > > On Wed, Mar 03, 2021 at 12:59:32PM +0800, Li Wang wrote: > > > > drivers/tty/vt/keyboard.c: In function 'vt_do_kdgkb_ioctl': > > > > drivers/tty/vt/keyboard.c: warning: 'ret' may be used uninitialized in > > > > this function [-Wmaybe-uninitialized] > > > > return ret; > > > > ^~~ > > > > kernel-source/drivers/tty/vt/keyboard.c: warning: 'kbs' may be used > > > > uninitialized in this function [-Wmaybe-uninitialized] > > > > kfree(kbs); > > > > ^~~~~~~~~~ > > > > > > > > Signed-off-by: Li Wang <li.w...@windriver.com> > > > > --- > > > > drivers/tty/vt/keyboard.c | 4 ++-- > > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > > > > > diff --git a/drivers/tty/vt/keyboard.c b/drivers/tty/vt/keyboard.c > > > > index 7763862..3e73d55 100644 > > > > --- a/drivers/tty/vt/keyboard.c > > > > +++ b/drivers/tty/vt/keyboard.c > > > > @@ -2049,8 +2049,8 @@ int vt_do_kdgkb_ioctl(int cmd, struct kbsentry > > > > __user *user_kdgkb, int perm) > > > > { > > > > unsigned char kb_func; > > > > unsigned long flags; > > > > - char *kbs; > > > > - int ret; > > > > + char *kbs = NULL; > > > > + int ret = -EINVAL; > > > > if (get_user(kb_func, &user_kdgkb->kb_func)) > > > > return -EFAULT; > > > What compiler is providing these "warnings"? > > > > > > Turns out it is impossible to hit, so this isn't actually fixing > > > anything... > > > > I tested it with gcc 8.2 for arm > > > > for runtime codes view, indeed it is impossible to hit. > > > > but for compiler view, gcc should give 'used uninitialized' warning, too. > > Odd that no other compiler version does this right now, perhaps upgrade > to a newer version of gcc? 8.2 is really old :(
But it's still supported. I think I can see why. We have a switch case without default, and probably that's how it makes that happen. So, the proper fix is to add default section AFAICT. -- With Best Regards, Andy Shevchenko