It is necessary to follow the monitor mapping, otherwise a display can get dimensions which belongs to other than desired monitor. Related: rhbz#1212802 --- v5: - prevented the potential illegal array access (displays[GPOINTER_TO_INT(l->data)]) --- src/virt-viewer-session-spice.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/virt-viewer-session-spice.c b/src/virt-viewer-session-spice.c index b69faa6..cdba054 100644 --- a/src/virt-viewer-session-spice.c +++ b/src/virt-viewer-session-spice.c @@ -866,12 +866,13 @@ virt_viewer_session_spice_fullscreen_auto_conf(VirtViewerSessionSpice *self) displays = g_new0(GdkRectangle, ndisplays); for (i = 0, l = initial_displays; l != NULL; l = l->next, i++) { - GdkRectangle* rect = &displays[i]; - gint j = virt_viewer_app_get_initial_monitor_for_display(app, GPOINTER_TO_INT(l->data)); - if (j == -1) + gint display_id = GPOINTER_TO_INT(l->data); + gint j = virt_viewer_app_get_initial_monitor_for_display(app, display_id); + g_warn_if_fail(display_id < ndisplays); + if (j == -1 || display_id >= ndisplays) continue; - gdk_screen_get_monitor_geometry(screen, j, rect); + gdk_screen_get_monitor_geometry(screen, j, &displays[display_id]); } g_list_free(initial_displays); -- 2.4.0 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list