Fixed file-descriptor leak if ImBitmapFont::LoadFromFile() calls to seek/tell fails.

This commit is contained in:
ocornut 2014-09-10 12:21:33 +01:00
parent 1cf4b313e2
commit 3fd68c3a31

View File

@ -5190,13 +5190,22 @@ bool ImBitmapFont::LoadFromFile(const char* filename)
if ((f = fopen(filename, "rb")) == NULL) if ((f = fopen(filename, "rb")) == NULL)
return false; return false;
if (fseek(f, 0, SEEK_END)) if (fseek(f, 0, SEEK_END))
{
fclose(f);
return false; return false;
}
const long f_size = ftell(f); const long f_size = ftell(f);
if (f_size == -1) if (f_size == -1)
{
fclose(f);
return false; return false;
}
DataSize = (size_t)f_size; DataSize = (size_t)f_size;
if (fseek(f, 0, SEEK_SET)) if (fseek(f, 0, SEEK_SET))
{
fclose(f);
return false; return false;
}
if ((Data = (unsigned char*)IM_MALLOC(DataSize)) == NULL) if ((Data = (unsigned char*)IM_MALLOC(DataSize)) == NULL)
{ {
fclose(f); fclose(f);