Message ID | 1483263585-8101-1-git-send-email-hpoussin@reactos.org |
---|---|
State | New |
Headers | show |
On Sun, Jan 01, 2017 at 10:39:45AM +0100, Hervé Poussineau wrote: > This patch fixes a segfault at QEMU startup, introduced in a08156321ab9a7d2fed9ee77dbfeea2a61ffd153. > gd_vc_find_current() return NULL, which is dereferenced without checking it. > > While at it, disable the whole 'View' menu if no console exists. > > Reproducer: qemu-system-i386 -M none -nodefaults > > Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> > --- > ui/gtk.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) Oops, sorry! Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
diff --git a/ui/gtk.c b/ui/gtk.c index a216216..406de4f 100644 --- a/ui/gtk.c +++ b/ui/gtk.c @@ -2171,6 +2171,8 @@ static gboolean gtkinit; void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover) { + VirtualConsole *vc; + GtkDisplayState *s = g_malloc0(sizeof(*s)); char *filename; GdkDisplay *window_display; @@ -2249,9 +2251,11 @@ void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover) } #endif + vc = gd_vc_find_current(s); + gtk_widget_set_sensitive(s->view_menu, vc != NULL); #ifdef CONFIG_VTE gtk_widget_set_sensitive(s->copy_item, - gd_vc_find_current(s)->type == GD_VC_VTE); + vc && vc->type == GD_VC_VTE); #endif if (full_screen) {
This patch fixes a segfault at QEMU startup, introduced in a08156321ab9a7d2fed9ee77dbfeea2a61ffd153. gd_vc_find_current() return NULL, which is dereferenced without checking it. While at it, disable the whole 'View' menu if no console exists. Reproducer: qemu-system-i386 -M none -nodefaults Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> --- ui/gtk.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)