Graphics: fix invalid free on drawaxis 25/18225/2
Clément DAVID [Tue, 7 Jun 2016 04:51:02 +0000 (06:51 +0200)]
Depending on opts[] (eg. varargin), val might be NULL or set. As
freeAllocatedMatrixOfString() is not safe against NULL data, the check
should be on the caller.

Change-Id: I0ff7d14673c31fb2029f73737ce3c68cbb70216e

scilab/modules/graphics/sci_gateway/c/sci_drawaxis.c

index ef73656..fe5aeb8 100644 (file)
@@ -314,9 +314,12 @@ int sci_drawaxis(char *fname, void* pvApiCtx)
     }
 
     Objdrawaxis(dir, tics, x, &nx, y, &ny, val, sub_int, format, fontsize, textcolor, ticscolor, 'n', seg_flag, nb_tics_labels);
-    
+
     freeAllocatedSingleString(format);
-    freeAllocatedMatrixOfString(opts[8].iRows, opts[8].iCols, val);
+    if (val != NULL)
+    {
+        freeAllocatedMatrixOfString(opts[8].iRows, opts[8].iCols, val);
+    }
     createScalarHandle(pvApiCtx, iRhs + 1, getHandle(getCurrentObject()));
     AssignOutputVariable(pvApiCtx, 1) = iRhs + 1;
     ReturnArguments(pvApiCtx);