Consistently check for failed memory allocation
This commit is contained in:
parent
348fbfe410
commit
c9fc6e0f79
@ -356,6 +356,11 @@ int *numComponents_ret)
|
|||||||
colormapLen = getInt16(&header[5]);
|
colormapLen = getInt16(&header[5]);
|
||||||
colormapDepth = (header[7] + 7) >> 3;
|
colormapDepth = (header[7] + 7) >> 3;
|
||||||
colormap.reinitialise(colormapLen*colormapDepth);
|
colormap.reinitialise(colormapLen*colormapDepth);
|
||||||
|
if (colormap == NULL)
|
||||||
|
{
|
||||||
|
tgaerror = ERR_MEM;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
fin.read((char*)colormap, colormapLen*colormapDepth);
|
fin.read((char*)colormap, colormapLen*colormapDepth);
|
||||||
|
|
||||||
if (colormapDepth == 2) /* 16 bits */
|
if (colormapDepth == 2) /* 16 bits */
|
||||||
@ -387,6 +392,12 @@ int *numComponents_ret)
|
|||||||
bpr = format * width;
|
bpr = format * width;
|
||||||
SafeArray<unsigned char> linebuf(width * depth);
|
SafeArray<unsigned char> linebuf(width * depth);
|
||||||
|
|
||||||
|
if (buffer == NULL || linebuf == NULL)
|
||||||
|
{
|
||||||
|
tgaerror = ERR_MEM;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
//check the intended image orientation
|
//check the intended image orientation
|
||||||
bool bLeftToRight = (flags&0x10)==0;
|
bool bLeftToRight = (flags&0x10)==0;
|
||||||
bool bTopToBottom = (flags&0x20)!=0;
|
bool bTopToBottom = (flags&0x20)!=0;
|
||||||
@ -404,6 +415,11 @@ int *numComponents_ret)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
SafeArray<unsigned char> formattedMap(colormapLen * format);
|
SafeArray<unsigned char> formattedMap(colormapLen * format);
|
||||||
|
if (formattedMap == NULL)
|
||||||
|
{
|
||||||
|
tgaerror = ERR_MEM;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
for (int i = 0; i < colormapLen; i++)
|
for (int i = 0; i < colormapLen; i++)
|
||||||
{
|
{
|
||||||
convert_data(colormap, formattedMap, i, colormapDepth, format);
|
convert_data(colormap, formattedMap, i, colormapDepth, format);
|
||||||
|
Loading…
Reference in New Issue
Block a user