Messages in this thread | | | From | Juergen Gross <> | Subject | Re: [PATCH 8/8] xen/hvc: replace BUG_ON() with negative return value | Date | Thu, 13 May 2021 12:35:19 +0200 |
| |
On 13.05.21 12:25, Greg Kroah-Hartman wrote: > On Thu, May 13, 2021 at 12:03:02PM +0200, Juergen Gross wrote: >> Xen frontends shouldn't BUG() in case of illegal data received from >> their backends. So replace the BUG_ON()s when reading illegal data from >> the ring page with negative return values. >> >> Signed-off-by: Juergen Gross <jgross@suse.com> >> --- >> drivers/tty/hvc/hvc_xen.c | 15 +++++++++++++-- >> 1 file changed, 13 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c >> index 92c9a476defc..30d7ffb1e04c 100644 >> --- a/drivers/tty/hvc/hvc_xen.c >> +++ b/drivers/tty/hvc/hvc_xen.c >> @@ -86,6 +86,11 @@ static int __write_console(struct xencons_info *xencons, >> cons = intf->out_cons; >> prod = intf->out_prod; >> mb(); /* update queue values before going on */ >> + >> + if (WARN_ONCE((prod - cons) > sizeof(intf->out), >> + "Illegal ring page indices")) >> + return -EINVAL; > > How nice, you just rebooted on panic-on-warn systems :( > >> + >> BUG_ON((prod - cons) > sizeof(intf->out)); > > Why keep this line?
Failed to delete it, sorry.
> > Please just fix this up properly, if userspace can trigger this, then > both the WARN_ON() and BUG_ON() are not correct and need to be correctly > handled.
It can be triggered by the console backend, but I agree a WARN isn't the way to go here.
Juergen [unhandled content-type:application/pgp-keys][unhandled content-type:application/pgp-signature] | |