Prechádzať zdrojové kódy

Merge pull request #31 from orbitcowboy/master

Fixed file descriptor leak on LoadSettings() failure
omar 11 rokov pred
rodič
commit
29ba288ea0
1 zmenil súbory, kde vykonal 12 pridanie a 3 odobranie
  1. 12 3
      imgui.cpp

+ 12 - 3
imgui.cpp

@@ -1049,13 +1049,22 @@ static void LoadSettings()
     if ((f = fopen(filename, "rt")) == NULL)
         return;
     if (fseek(f, 0, SEEK_END)) 
-        return;
+    {
+       fclose(f); 
+       return; 
+    }
     const long f_size_signed = ftell(f);
     if (f_size_signed == -1) 
-        return;
+    {
+       fclose(f); 
+       return; 
+    }
     size_t f_size = (size_t)f_size_signed;
     if (fseek(f, 0, SEEK_SET)) 
-        return;
+    {
+       fclose(f); 
+       return; 
+    }
     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
     fclose(f);