Commit 8ff52611 authored by Alan Coopersmith's avatar Alan Coopersmith Committed by Ulrich Sibiller

LINEAR_RGB_InitSCCData: When malloc fails, don't try to free unallocated bits

One of the malloc failure checks had a goto to the wrong spot in the list of cleanup free() calls to unwind at the end, and was freeing bits that hadn't been initialized/allocated yet, since they would be stored in the struct that just failed to be allocated. Error: Null pointer dereference (CWE 476) Read from pointer that could be constant 'NULL' at line 805 of /export/alanc/X.Org/sx86/lib/libX11/nx-X11/lib/X11/LRGB.c in function 'LINEAR_RGB_InitSCCData'. Pointer checked against constant 'NULL' at line 754 but does not protect the dereference. [ This bug was found by the Parfait bug checking tool. For more information see http://research.sun.com/projects/parfait ] Signed-off-by: 's avatarAlan Coopersmith <alan.coopersmith@oracle.com> Backported-to-NX-by: 's avatarUlrich Sibiller <uli42@gmx.de>
parent 93b55eee
...@@ -753,7 +753,7 @@ LINEAR_RGB_InitSCCData( ...@@ -753,7 +753,7 @@ LINEAR_RGB_InitSCCData(
/* Blue Intensity Table */ /* Blue Intensity Table */
if (!(pScreenData->pBlueTbl = (IntensityTbl *) if (!(pScreenData->pBlueTbl = (IntensityTbl *)
Xcalloc (1, sizeof(IntensityTbl)))) { Xcalloc (1, sizeof(IntensityTbl)))) {
goto FreeBlueTblElements; goto FreeGreenTblElements;
} }
if (_XcmsGetTableType1(pScreenData->pBlueTbl, format_return, &pChar, if (_XcmsGetTableType1(pScreenData->pBlueTbl, format_return, &pChar,
&nitems) == XcmsFailure) { &nitems) == XcmsFailure) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment