ui/gtk: fix crash at startup when no console is available
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> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Message-id: 1483263585-8101-1-git-send-email-hpoussin@reactos.org Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
		
							parent
							
								
									e92fbc753d
								
							
						
					
					
						commit
						3d4da9d6f3
					
				
							
								
								
									
										6
									
								
								ui/gtk.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								ui/gtk.c
									
									
									
									
									
								
							@ -2171,6 +2171,8 @@ static gboolean gtkinit;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover)
 | 
					void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    VirtualConsole *vc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    GtkDisplayState *s = g_malloc0(sizeof(*s));
 | 
					    GtkDisplayState *s = g_malloc0(sizeof(*s));
 | 
				
			||||||
    char *filename;
 | 
					    char *filename;
 | 
				
			||||||
    GdkDisplay *window_display;
 | 
					    GdkDisplay *window_display;
 | 
				
			||||||
@ -2249,9 +2251,11 @@ void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover)
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    vc = gd_vc_find_current(s);
 | 
				
			||||||
 | 
					    gtk_widget_set_sensitive(s->view_menu, vc != NULL);
 | 
				
			||||||
#ifdef CONFIG_VTE
 | 
					#ifdef CONFIG_VTE
 | 
				
			||||||
    gtk_widget_set_sensitive(s->copy_item,
 | 
					    gtk_widget_set_sensitive(s->copy_item,
 | 
				
			||||||
                             gd_vc_find_current(s)->type == GD_VC_VTE);
 | 
					                             vc && vc->type == GD_VC_VTE);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (full_screen) {
 | 
					    if (full_screen) {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user