mirror of
https://github.com/ocornut/imgui.git
synced 2024-11-24 15:50:25 +01:00
Merge pull request #31 from orbitcowboy/master
Fixed file descriptor leak on LoadSettings() failure
This commit is contained in:
commit
29ba288ea0
15
imgui.cpp
15
imgui.cpp
@ -1049,13 +1049,22 @@ static void LoadSettings()
|
|||||||
if ((f = fopen(filename, "rt")) == NULL)
|
if ((f = fopen(filename, "rt")) == NULL)
|
||||||
return;
|
return;
|
||||||
if (fseek(f, 0, SEEK_END))
|
if (fseek(f, 0, SEEK_END))
|
||||||
return;
|
{
|
||||||
|
fclose(f);
|
||||||
|
return;
|
||||||
|
}
|
||||||
const long f_size_signed = ftell(f);
|
const long f_size_signed = ftell(f);
|
||||||
if (f_size_signed == -1)
|
if (f_size_signed == -1)
|
||||||
return;
|
{
|
||||||
|
fclose(f);
|
||||||
|
return;
|
||||||
|
}
|
||||||
size_t f_size = (size_t)f_size_signed;
|
size_t f_size = (size_t)f_size_signed;
|
||||||
if (fseek(f, 0, SEEK_SET))
|
if (fseek(f, 0, SEEK_SET))
|
||||||
return;
|
{
|
||||||
|
fclose(f);
|
||||||
|
return;
|
||||||
|
}
|
||||||
char* f_data = new char[f_size+1];
|
char* f_data = new char[f_size+1];
|
||||||
f_size = fread(f_data, 1, f_size, f); // Text conversion alter read size so let's not be fussy about return value
|
f_size = fread(f_data, 1, f_size, f); // Text conversion alter read size so let's not be fussy about return value
|
||||||
fclose(f);
|
fclose(f);
|
||||||
|
Loading…
Reference in New Issue
Block a user