diff --git a/src/solaris/native/sun/awt/awt_GraphicsEnv.c b/src/solaris/native/sun/awt/awt_GraphicsEnv.c index 68299f79602c5c39ec94d069499eaa862a4ace59..7f64a882fb42f00fddd38e9459439d594c63f3cb 100644 --- a/src/solaris/native/sun/awt/awt_GraphicsEnv.c +++ b/src/solaris/native/sun/awt/awt_GraphicsEnv.c @@ -650,7 +650,7 @@ static void xinerama_init_linux() if (XineramaQueryScreens != NULL) { DTRACE_PRINTLN("calling XineramaQueryScreens func on Linux"); xinInfo = (*XineramaQueryScreens)(awt_display, &locNumScr); - if (xinInfo != NULL) { + if (xinInfo != NULL && locNumScr > XScreenCount(awt_display)) { int32_t idx; DTRACE_PRINTLN("Enabling Xinerama support"); usingXinerama = True; @@ -701,7 +701,8 @@ static void xinerama_init_solaris() if (XineramaSolarisFunc != NULL) { DTRACE_PRINTLN("calling XineramaGetInfo func on Solaris"); if ((*XineramaSolarisFunc)(awt_display, 0, &fbrects[0], - &fbhints[0], &locNumScr) != 0) + &fbhints[0], &locNumScr) != 0 && + locNumScr > XScreenCount(awt_display)) { DTRACE_PRINTLN("Enabling Xinerama support"); usingXinerama = True;