]> OCCT Git - occt.git/commitdiff
0022954: Variable not freed upon realloc failure
authordbv <dbv@opencascade.com>
Wed, 7 Mar 2012 10:34:51 +0000 (14:34 +0400)
committerbugmaster <bugmaster@opencascade.com>
Thu, 15 Mar 2012 07:05:21 +0000 (11:05 +0400)
src/OSD/OSD_Environment.cxx

index 6b6ed0f6cc132e143ce902d234593b983600001f..251e00eed200c18d984ccd4094932a3252a88b36 100755 (executable)
@@ -143,7 +143,17 @@ void OSD_Environment::Build ()
   else {
     // Allocation memoire. Surtout tout la heap!
     index = Ibuffer++;
-    buffer = (char **) realloc ( buffer, Ibuffer * sizeof(char*) );
+    char **aTmp;
+    aTmp = (char **) realloc ( buffer, Ibuffer * sizeof(char*) );
+    if (aTmp)
+    {
+      buffer = aTmp;
+    }
+    else
+    {
+      myError.SetValue(errno, Iam, "Memory realloc failure");
+      return;
+    }
   }
    
   // create a new entry in the buffer and add it to environment