mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/virt-viewer
synced 2025-12-27 14:54:14 +00:00
It's currently possible to destroy any virt-viewer window, including the main window. However, some part of the code expects that the main window is always present, for example to present status messages. In particular, stopping the guest (or running virsh destroy) will close all windows: virt_viewer_session_clear_displays will get called, which will call into virt_viewer_app_remove_display_removed, and finally into virt_viewer_app_remove_nth_window, which will destroy the window being removed if it holds the last reference to it. So going through virt_viewer_session_clear_displays, all VirtViewerWindow instances and their corresponding GtkWindow have been destroyed. This is already an issue as VirtViewerApp::main_window will be pointing to freed memory. When using virt-viewer --reconnect, this will cause a crash when restarting the guest in virt_viewer_app_create_session as it tries to get a valid GtkWindow through: GtkWindow *window = virt_viewer_window_get_window(priv->main_window); This commit avoids this issue by special casing the main window in virt_viewer_app_remove_nth_window to ensure it never gets removed. This is similar to what is done in virt_viewer_app_hide_all_windows. |
||
|---|---|---|
| .tx | ||
| build-aux | ||
| data | ||
| icons | ||
| m4 | ||
| man | ||
| po | ||
| src | ||
| .mailmap | ||
| acinclude.m4 | ||
| AUTHORS.in | ||
| autobuild.sh | ||
| autogen.sh | ||
| cfg.mk | ||
| ChangeLog | ||
| configure.ac | ||
| COPYING | ||
| git.mk | ||
| GNUmakefile | ||
| intltool-extract.in | ||
| intltool-merge.in | ||
| intltool-update.in | ||
| maint.mk | ||
| Makefile.am | ||
| mingw-virt-viewer.spec.in | ||
| NEWS | ||
| README | ||
| virt-viewer.spec.in | ||
Virt Viewer =========== Virt Viewer provides a graphical viewer for the guest OS display. At this time is supports guest OS using the VNC or SPICE protocols. Further protocols may be supported in the future as user demand dicatates. The viewer can connect directly to both local and remotely hosted guest OS, optionally using SSL/TLS encryption. Virt Viewer can be built with either GTK2 or GTK3, with the default option currently being GTK2. The choice can be made with: ./configure --with-gtk=3.0 (or =2.0) Virt Viewer uses the GTK-VNC (>= 0.4.3) widget to provide a display of the VNC protocol, which is available from http://gtk-vnc.sourceforge.net/ Virt Viewer uses the SPICE-GTK (>= 0.22) widget to provide a display of the SPICE protocol, which is available from: http://spice-space.org/page/Spice-Gtk Use of either SPICE-GTK or GTK-VNC can be disabled at time of configure, with --without-gtk-vnc or --without-spice-gtk respectively. Virt Viewer uses libvirt to lookup information about the guest OS display. This is available from http://libvirt.org/ Further information about the Virt Viewer application can be found on the Virt Manager website: http://virt-manager.org/ Feedback should be directed to the mailing list at http://virt-manager.org/mailinglist.html -- End