diff options
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Display.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Display.c b/nx-X11/programs/Xserver/hw/nxagent/Display.c index 15112312f..9931bdd77 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Display.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Display.c @@ -2577,12 +2577,18 @@ Bool nxagentReconnectDisplay(void *p0) nxagentNumDefaultColormaps = nxagentNumVisuals; - nxagentDefaultColormaps = (Colormap *) realloc(nxagentDefaultColormaps, - nxagentNumDefaultColormaps * sizeof(Colormap)); - - if (nxagentDefaultColormaps == NULL) { - FatalError("Can't allocate memory for the default colormaps\n"); + Colormap * tmp = (Colormap *) realloc(nxagentDefaultColormaps, + nxagentNumDefaultColormaps * sizeof(Colormap)); + if (tmp == NULL) + { + SAFE_free(nxagentDefaultColormaps); + FatalError("Can't allocate memory for the default colormaps\n"); + } + else + { + nxagentDefaultColormaps = tmp; + } } reconnectDisplayState = ALLOC_DEF_COLORMAP; |