2021-03-07 12:43:34

by Hassan Shahbazi

[permalink] [raw]
Subject: [PATCH] drivers: tty: vt: vt.c: fix NULL dereference crash

Fix a NULL deference crash on hiding the cursor.

Reported by: syzbot
https://syzkaller.appspot.com/bug?id=defb47bf56e1c14d5687280c7bb91ce7b608b94b

Signed-off-by: Hassan Shahbazi <[email protected]>
---
drivers/tty/vt/vt.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
index 284b07224c55..8c3e83c81341 100644
--- a/drivers/tty/vt/vt.c
+++ b/drivers/tty/vt/vt.c
@@ -904,7 +904,9 @@ static void hide_cursor(struct vc_data *vc)
if (vc_is_sel(vc))
clear_selection();

- vc->vc_sw->con_cursor(vc, CM_ERASE);
+ if (vc->vc_sw)
+ vc->vc_sw->con_cursor(vc, CM_ERASE);
+
hide_softcursor(vc);
}

--
2.26.2


2021-03-12 08:37:01

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] drivers: tty: vt: vt.c: fix NULL dereference crash

On Sun, Mar 07, 2021 at 12:56:43PM +0200, Hassan Shahbazi wrote:
> Fix a NULL deference crash on hiding the cursor.
>
> Reported by: syzbot
> https://syzkaller.appspot.com/bug?id=defb47bf56e1c14d5687280c7bb91ce7b608b94b
>
> Signed-off-by: Hassan Shahbazi <[email protected]>
> ---
> drivers/tty/vt/vt.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
> index 284b07224c55..8c3e83c81341 100644
> --- a/drivers/tty/vt/vt.c
> +++ b/drivers/tty/vt/vt.c
> @@ -904,7 +904,9 @@ static void hide_cursor(struct vc_data *vc)
> if (vc_is_sel(vc))
> clear_selection();
>
> - vc->vc_sw->con_cursor(vc, CM_ERASE);
> + if (vc->vc_sw)
> + vc->vc_sw->con_cursor(vc, CM_ERASE);
> +
> hide_softcursor(vc);
> }
>
> --
> 2.26.2
>

Are you sure this actually fixes the problem? How did you test it? Did
syzbot test this?

I had a few reports of this patch _not_ solving the problem, so getting
confirmation of this would be good.

thanks,

greg k-h

2021-03-12 11:48:05

by Fatih Yildirim

[permalink] [raw]
Subject: Re: [PATCH] drivers: tty: vt: vt.c: fix NULL dereference crash

On Fri, 2021-03-12 at 09:33 +0100, Greg KH wrote:
> On Sun, Mar 07, 2021 at 12:56:43PM +0200, Hassan Shahbazi wrote:
> > Fix a NULL deference crash on hiding the cursor.
> >
> > Reported by: syzbot
> > https://syzkaller.appspot.com/bug?id=defb47bf56e1c14d5687280c7bb91ce7b608b94b
> >
> > Signed-off-by: Hassan Shahbazi <[email protected]>
> > ---
> > drivers/tty/vt/vt.c | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
> > index 284b07224c55..8c3e83c81341 100644
> > --- a/drivers/tty/vt/vt.c
> > +++ b/drivers/tty/vt/vt.c
> > @@ -904,7 +904,9 @@ static void hide_cursor(struct vc_data *vc)
> > if (vc_is_sel(vc))
> > clear_selection();
> >
> > - vc->vc_sw->con_cursor(vc, CM_ERASE);
> > + if (vc->vc_sw)
> > + vc->vc_sw->con_cursor(vc, CM_ERASE);
> > +
> > hide_softcursor(vc);
> > }
> >
> > --
> > 2.26.2
> >
>
> Are you sure this actually fixes the problem? How did you test
> it? Did
> syzbot test this?
>
> I had a few reports of this patch _not_ solving the problem, so
> getting
> confirmation of this would be good.
>
> thanks,
>
> greg k-h

Hi,

I've tested the patch on upstream using the .config and the C
reproducer reported by syzbot. It seems that the patch doesn't fix the
issue.

Maybe you can send a patch test request to syzbot to validate the
patch.

Thanks,
Fatih


2021-03-12 15:09:18

by Du Cheng

[permalink] [raw]
Subject: [PATCH] drivers: tty: vt: vt.c: fix NULL dereference crash

Hi Hassan Shahbazi,

I also tested your patch locally with qemu, but it did not fix the crashing.

I sent test command to syzbot on upstream linux and am waiting for result.

Regards,
Du Cheng

2021-03-12 15:45:58

by Du Cheng

[permalink] [raw]
Subject: [PATCH] drivers: tty: vt: vt.c: fix NULL dereference crash

Hi Fatih,
I just found out that the section [Patch testing requests] on
https://syzkaller.appspot.com/bug?id=defb47bf56e1c14d5687280c7bb91ce7b608b94b,
indicates that you did not attach the patch when sending email to syzbot. syzbot
was simply testing the vallina upstream with repro.c, so it failed as expected.

Anyway, I resent the test email *with the patch* from Hassan to syzbot, and
let's see the result.

Regards,
Du Cheng

2021-03-13 09:16:40

by Hassan Shahbazi

[permalink] [raw]
Subject: Re: [PATCH] drivers: tty: vt: vt.c: fix NULL dereference crash

On Fri, Mar 12, 2021 at 09:33:37AM +0100, Greg KH wrote:
> On Sun, Mar 07, 2021 at 12:56:43PM +0200, Hassan Shahbazi wrote:
> > Fix a NULL deference crash on hiding the cursor.
> >
> > Reported by: syzbot
> > https://syzkaller.appspot.com/bug?id=defb47bf56e1c14d5687280c7bb91ce7b608b94b
> >
> > Signed-off-by: Hassan Shahbazi <[email protected]>
> > ---
> > drivers/tty/vt/vt.c | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
> > index 284b07224c55..8c3e83c81341 100644
> > --- a/drivers/tty/vt/vt.c
> > +++ b/drivers/tty/vt/vt.c
> > @@ -904,7 +904,9 @@ static void hide_cursor(struct vc_data *vc)
> > if (vc_is_sel(vc))
> > clear_selection();
> >
> > - vc->vc_sw->con_cursor(vc, CM_ERASE);
> > + if (vc->vc_sw)
> > + vc->vc_sw->con_cursor(vc, CM_ERASE);
> > +
> > hide_softcursor(vc);
> > }
> >
> > --
> > 2.26.2
> >
>
> Are you sure this actually fixes the problem? How did you test it? Did
> syzbot test this?
>
> I had a few reports of this patch _not_ solving the problem, so getting
> confirmation of this would be good.
>
> thanks,
>
> greg k-h

Unfortunately, it seems the patch has not fixed the bug. I drop this
patch and will continue working on a newer one.

Thanks for the feedback,
Hassan Shahbazi