diff --git a/hw/xwin/winprocarg.c b/hw/xwin/winprocarg.c index 0637aeb5c7..fddc262ee7 100644 --- a/hw/xwin/winprocarg.c +++ b/hw/xwin/winprocarg.c @@ -177,9 +177,16 @@ winInitializeScreens(int maxscreens) if (maxscreens > g_iNumScreens) { /* Reallocate the memory for DDX-specific screen info */ - g_ScreenInfo = + winScreenInfo *newScreenInfo = realloc(g_ScreenInfo, maxscreens * sizeof(winScreenInfo)); + if (!newScreenInfo) { + FatalError("winInitializeScreens: realloc(%p, %d) failed\n", + (void *)g_ScreenInfo, maxscreens * (int)sizeof(winScreenInfo)); + return; + } + g_ScreenInfo = newScreenInfo; + /* Set default values for any new screens */ for (i = g_iNumScreens; i < maxscreens; i++) winInitializeScreen(i);