[Spice-devel] [PATCH linux vdagent] Don't abort if XRRSetCrtcConfig fails

Jonathon Jongsma jjongsma at redhat.com
Thu Dec 19 09:31:21 PST 2013


In certain configurations (Fedora 20 or RHEL7 guests on a RHEL6 host), this call
fails, which cause the vdagent to abort. This patch prevents the crash, though
arbitrary resizing is obviously still non-functional in this situation.
---
 src/vdagent-x11-randr.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/vdagent-x11-randr.c b/src/vdagent-x11-randr.c
index 5223f88..63a626a 100644
--- a/src/vdagent-x11-randr.c
+++ b/src/vdagent-x11-randr.c
@@ -364,11 +364,11 @@ static int xrandr_add_and_set(struct vdagent_x11 *x11, int output, int x, int y,
     x11->randr.monitor_sizes[output].width = width;
     x11->randr.monitor_sizes[output].height = height;
     outputs[0] = xid;
+    vdagent_x11_set_error_handler(x11, error_handler);
     s = XRRSetCrtcConfig(x11->display, x11->randr.res, x11->randr.res->crtcs[output],
                          CurrentTime, x, y, mode->id, RR_Rotate_0, outputs,
                          1);
-
-    if (s != RRSetConfigSuccess) {
+    if (vdagent_x11_restore_error_handler(x11) || (s != RRSetConfigSuccess)) {
         syslog(LOG_ERR, "failed to XRRSetCrtcConfig");
         x11->set_crtc_config_not_functional = 1;
         return 0;
-- 
1.8.3.1



More information about the Spice-devel mailing list