api_scilab: workaround Coverity false positive 06/21106/3
Clement David [Mon, 21 Oct 2019 10:40:13 +0000 (12:40 +0200)]
See Coverity #1350356 #1350357 #1350358 #1350359

Change-Id: Ie52556190267405b8064f35cc14307a407e32b9d

scilab/modules/api_scilab/src/cpp/api_stack_int.cpp
scilab/modules/api_scilab/src/cpp/template/api_boolean.hpp
scilab/modules/api_scilab/src/cpp/template/api_cell.hpp
scilab/modules/api_scilab/src/cpp/template/api_handle.hpp

index 57cf7c4..cd7550f 100644 (file)
@@ -185,6 +185,11 @@ SciErr getCommonMatrixOfInteger(void* _pvCtx, int* _piAddress, int _iPrecision,
         default:
             return sciErr;
     }
+    if (*_piData == NULL)
+    {
+        addErrorMessage(&sciErr, API_ERROR_GET_INT, _("%s: Unable to get argument #%d"), "getMatrixOfInteger", getRhsFromAddress(_pvCtx, _piAddress));
+        return sciErr;
+    }
 
     return sciErr;
 }
index 49b2bec..3cf97e0 100644 (file)
@@ -136,7 +136,6 @@ scilabStatus API_PROTO(setBooleanArray)(scilabEnv env, scilabVar var, const int*
     if (bset == false)
     {
         scilab_setInternalError(env, L"setBooleanArray", _W("unable to set data"));
-        return STATUS_ERROR;
     }
 #endif
     return bset ? STATUS_OK : STATUS_ERROR;
index 9c2f595..673cb0f 100644 (file)
@@ -122,7 +122,6 @@ scilabStatus API_PROTO(setCellValue)(scilabEnv env, scilabVar var, int* index, s
     if (bset == false)
     {
         scilab_setInternalError(env, L"setCellValue", _W("unable to set data"));
-        return STATUS_ERROR;
     }
 #endif
     return bset ? STATUS_OK : STATUS_ERROR;
@@ -145,7 +144,6 @@ scilabStatus API_PROTO(setCell2dValue)(scilabEnv env, scilabVar var, int row, in
     if (bset == false)
     {
         scilab_setInternalError(env, L"setCell2dValue", _W("unable to set data"));
-        return STATUS_ERROR;
     }
 #endif
     return bset ? STATUS_OK : STATUS_ERROR;
index 197ece2..3468ce7 100644 (file)
@@ -117,7 +117,6 @@ scilabStatus API_PROTO(setHandleArray)(scilabEnv env, scilabVar var, const long
     if (bset == false)
     {
         scilab_setInternalError(env, L"setHandleArray", _W("unable to set data"));
-        return STATUS_ERROR;
     }
 #endif
     return bset ? STATUS_OK : STATUS_ERROR;