Merge branch 'build' of https://github.com/CendioOssman/tigervnc
diff --git a/vncviewer/X11PixelBuffer.cxx b/vncviewer/X11PixelBuffer.cxx
index 59b90e2..a779427 100644
--- a/vncviewer/X11PixelBuffer.cxx
+++ b/vncviewer/X11PixelBuffer.cxx
@@ -156,6 +156,11 @@
Bool pixmaps;
XErrorHandler old_handler;
Status status;
+ const char *display_name = XDisplayName (NULL);
+
+ /* Don't use MIT-SHM on remote displays */
+ if (*display_name && *display_name != ':')
+ return 0;
if (!XShmQueryVersion(fl_display, &major, &minor, &pixmaps))
return 0;
@@ -184,7 +189,11 @@
caughtError = false;
old_handler = XSetErrorHandler(XShmAttachErrorHandler);
- XShmAttach(fl_display, shminfo);
+ if (!XShmAttach(fl_display, shminfo)) {
+ XSetErrorHandler(old_handler);
+ goto free_shmaddr;
+ }
+
XSync(fl_display, False);
XSetErrorHandler(old_handler);