* Bug #13298 fixed - Static analysis bugs detected by PVS-Studio fixed 95/17495/3
Paul Bignier [Tue, 24 Nov 2015 14:59:29 +0000 (15:59 +0100)]
Change-Id: I8dc4dbcb9c0b26b2e4934377f7149f6214504a75

scilab/CHANGES_6.0.X
scilab/modules/completion/src/c/getCommonPart.c
scilab/modules/completion/src/c/getfilesdictionary.c
scilab/modules/graphics/src/c/getHandleProperty/set_view_property.c
scilab/modules/gui/sci_gateway/c/sci_uimenu.c
scilab/modules/gui/sci_gateway/cpp/sci_toprint.cpp
scilab/modules/hdf5/src/c/h5_readDataFromFile.c
scilab/modules/hdf5/src/c/h5_readDataFromFile_v1.c
scilab/modules/spreadsheet/src/c/ripole/pldstr.c

index 0a2a767..f2179fd 100644 (file)
@@ -13,6 +13,8 @@ For a high-level overview of the changes in this release, please consult the "Wh
         Changes between version 6.0.0-alpha-2 and 6.0.0-beta-1
         ======================================================
 
+* Bug #13298 fixed - Static analysis bugs detected by PVS-Studio fixed.
+
 * Bug #13986 fixed - setdefaultlanguage did not set value correctly in Windows registry.
 
 * Bug #13990 fixed - Windows installer did not ship all localization files.
index 0ec764d..1429067 100644 (file)
@@ -74,7 +74,7 @@ char *getCommonPart(char **dictionary, int sizeDictionary)
         int i = 0;
         int r = 0;
         char *currentstr = dictionary[0];
-        qsort(dictionary, sizeof dictionary / sizeof dictionary[0], sizeof dictionary[0], cmp);
+        qsort(dictionary, sizeDictionary, sizeof dictionary[0], cmp);
 
         r = cmpPos(currentstr, dictionary[1]);
         for (i = 1; i < sizeDictionary - 1; i++)
index 4061f73..8fd9833 100644 (file)
@@ -102,7 +102,7 @@ char **getfilesdictionary(char *somechars, int *sizearray, BOOL fullpath)
         {
             dictionary = (char**)REALLOC(dictionary, sizeof(char*) * (sizeListReturned + 1));
             dictionary[sizeListReturned] = NULL;
-            qsort(dictionary, sizeof dictionary / sizeof dictionary[0], sizeof dictionary[0], cmpfiles);
+            qsort(dictionary, *sizearray, sizeof dictionary[0], cmpfiles);
         }
     }
     else
index 901783e..b10de1a 100644 (file)
@@ -59,7 +59,7 @@ int set_view_property(void* _pvCtx, int iObjUID, void* _pvData, int valueType, i
 
     status = setGraphicObjectProperty(iObjUID, __GO_VIEW__, &viewType, jni_int, 1);
 
-    if (status = TRUE)
+    if (status == TRUE)
     {
         return SET_PROPERTY_SUCCEED;
     }
index 9e20bd9..95e21d6 100644 (file)
@@ -100,7 +100,7 @@ int sci_uimenu(char *fname, void *pvApiCtx)
             if (iParentUID != 0)
             {
                 getGraphicObjectProperty(iParentUID, __GO_TYPE__, jni_int, (void **)&piParentType);
-                if (iParentType == __GO_FIGURE__ && iParentType == __GO_UIMENU__)
+                if (iParentType != __GO_FIGURE__ && iParentType != __GO_UIMENU__)
                 {
                     Scierror(999, _("%s: Wrong type for input argument #%d: A '%s' or '%s' handle expected.\n"), fname, 1, "Figure", "Uimenu");
                     return FALSE;
index 8d186e3..9c064d1 100644 (file)
@@ -303,13 +303,10 @@ static int sci_toprint_two_rhs(void* _pvCtx, const char *fname)
                     return 1;
                 }
 
-                for (i = 0; i < mnOne; i++)
+                if (mnOne > 0)
                 {
-                    if (i == 0)
-                    {
-                        sprintf(lines, "%s\n", pStVarOne[i]);
-                    }
-                    else
+                    sprintf(lines, "%s\n", pStVarOne[0]);
+                    for (i = 1; i < mnOne; ++i)
                     {
                         sprintf(lines, "%s%s\n", lines, pStVarOne[i]);
                     }
index f459044..01431e6 100644 (file)
@@ -275,7 +275,7 @@ int getDatasetInfo(int _iDatasetId, int* _iComplex, int* _iDims, int* _piDims)
     if (_piDims != 0 && *_iDims != 0)
     {
         int i = 0;
-        hsize_t* dims = (hsize_t*)MALLOC(sizeof(hsize_t) * *_iDims);
+        hsize_t* dims = (hsize_t*)MALLOC(sizeof(hsize_t) **_iDims);
         if (H5Sget_simple_extent_dims(space, dims, NULL) < 0)
         {
             FREE(dims);
@@ -1083,10 +1083,6 @@ int getScilabTypeFromDataSet(int _iDatasetId)
     {
         iVarType = sci_boolean;
     }
-    else if (strcmp(pstScilabClass, g_SCILAB_CLASS_BOOLEAN) == 0)
-    {
-        iVarType = sci_boolean;
-    }
     else if (strcmp(pstScilabClass, g_SCILAB_CLASS_POLY) == 0)
     {
         iVarType = sci_poly;
index 19004dd..5d8ce5a 100644 (file)
@@ -1168,10 +1168,6 @@ int getScilabTypeFromDataSet_v1(int _iDatasetId)
     {
         iVarType = sci_boolean;
     }
-    else if (strcmp(pstScilabClass, g_SCILAB_CLASS_BOOLEAN) == 0)
-    {
-        iVarType = sci_boolean;
-    }
     else if (strcmp(pstScilabClass, g_SCILAB_CLASS_POLY) == 0)
     {
         iVarType = sci_poly;
index 7ba1467..0535c9c 100644 (file)
@@ -334,7 +334,7 @@ char *PLD_strtok( struct PLD_strtok *st, char *line, char *delimeters )
 
     result = st->start;
 
-    if ((st->start) && (st->start != '\0'))
+    if ((st->start) && (*st->start != '\0'))
     {
         stop = strpbrk( st->start, delimeters ); /* locate our next delimeter */