Coverity #1321079 #1321080 #1321081 Resource Leak Fixed 86/17986/10
Aashish Misraa [Sat, 26 Mar 2016 10:23:57 +0000 (15:23 +0530)]
Change-Id: I537bbc901c3868379de751622662d0d524b37836

scilab/modules/linear_algebra/sci_gateway/cpp/sci_bdiag.cpp

index c7f4512..2beac38 100644 (file)
@@ -123,13 +123,16 @@ types::Function::ReturnValue sci_bdiag(types::typed_list &in, int _iRetCount, ty
     int const job   = 0;
 
     /* allocating the two memory buffers in one place as the original code did */
-    double* le = (double*) MALLOC( 2 * iDim * sizeof(double) );
+    double* le = (double*) MALLOC(2 * iDim * sizeof(double));
     int*    lib = (int*) MALLOC(iDim * sizeof(int));
-    double* lw = (double*)MALLOC(iDim * sizeof(double));
+    double* lw = (double*) MALLOC(iDim * sizeof(double));
 
-    if ((le && lib && lw) == false)
+    if (!le || !lw || !lib)
     {
         Scierror(999, _("%s: Allocation failed.\n"), "bdiag");
+        FREE(lw);
+        FREE(le);
+        FREE(lib);
         return types::Function::Error;
     }