* bug #15303 fixed - some properties written in capital letter in set function crashe... 37/19537/2
Adeline CARNIS [Tue, 21 Nov 2017 11:53:38 +0000 (12:53 +0100)]
Change-Id: I24670cb5b7a8b377ced6479e64b9efb68dfb94c4

scilab/CHANGES.md
scilab/modules/graphics/sci_gateway/c/sci_set.c
scilab/modules/graphics/tests/nonreg_tests/bug_15303.tst [new file with mode: 0644]

index d2bb09c..c45617b 100644 (file)
@@ -499,6 +499,7 @@ the [development mailing list](dev@lists.scilab.org) for a particular toolbox.
 * [#15300](http://bugzilla.scilab.org/show_bug.cgi?id=15300): Distributive assignments like `a=(1,2)` crashed Scilab.
 * [#15301](http://bugzilla.scilab.org/show_bug.cgi?id=15301): Sequence constructor `:` failed when a bound was an outputless funtion call.
 * [#15302](http://bugzilla.scilab.org/show_bug.cgi?id=15302): `load` crashed when inputs arguments are not strings.
+* [#15303](http://bugzilla.scilab.org/show_bug.cgi?id=15303): Some properties written in capital letter in set function crashed Scilab.
 * [#15306](http://bugzilla.scilab.org/show_bug.cgi?id=15306): After the behavior of `||` was changed, its help page was not up to date.
 * [#15308](http://bugzilla.scilab.org/show_bug.cgi?id=15308): Unlike `evstr(["1 2";"3 4"])`, `evstr(["1;2" "3;4"])` was not accepted.
 * [#15328](http://bugzilla.scilab.org/show_bug.cgi?id=15328): OpenJDK 9 was not supported for custom builds.
index 71f7175..1cc06f6 100644 (file)
@@ -167,9 +167,9 @@ int sci_set(char *fname, void *pvApiCtx)
                 }
                 break;
             case sci_strings :
-                if (strcmp(pstProperty, "tics_labels") == 0 || strcmp(pstProperty, "auto_ticks") == 0 ||
-                        strcmp(pstProperty, "axes_visible") == 0 || strcmp(pstProperty, "axes_reverse") == 0 ||
-                        strcmp(pstProperty, "text") == 0 || strcmp(pstProperty, "ticks_format") == 0)
+                if (stricmp(pstProperty, "tics_labels") == 0 || stricmp(pstProperty, "auto_ticks") == 0 ||
+                        stricmp(pstProperty, "axes_visible") == 0 || stricmp(pstProperty, "axes_reverse") == 0 ||
+                        stricmp(pstProperty, "text") == 0 || stricmp(pstProperty, "ticks_format") == 0)
                 {
                     isMatrixOfString = 1;
                     if (getAllocatedMatrixOfString(pvApiCtx, piAddr2, &iRows2, &iCols2, (char***)&pvData))
@@ -389,9 +389,9 @@ int sci_set(char *fname, void *pvApiCtx)
                     sciErr = getMatrixOfHandle(pvApiCtx, piAddr3, &iRows3, &iCols3, (long long**)&pvData);
                     break;
                 case sci_strings :
-                    if (strcmp(pstProperty, "tics_labels") != 0 && strcmp(pstProperty, "auto_ticks") != 0 && strcmp(pstProperty, "tight_limits") != 0 &&
-                            strcmp(pstProperty, "axes_visible") != 0 && strcmp(pstProperty, "axes_reverse") != 0 &&
-                            strcmp(pstProperty, "text") != 0 && stricmp(pstProperty, "string") != 0 &&
+                    if (stricmp(pstProperty, "tics_labels") != 0 && stricmp(pstProperty, "auto_ticks") != 0 && stricmp(pstProperty, "tight_limits") != 0 &&
+                            stricmp(pstProperty, "axes_visible") != 0 && stricmp(pstProperty, "axes_reverse") != 0 &&
+                            stricmp(pstProperty, "text") != 0 && stricmp(pstProperty, "string") != 0 &&
                             stricmp(pstProperty, "tooltipstring") != 0 && stricmp(pstProperty, "ticks_format") != 0) /* Added for uicontrols */
                     {
                         if (isScalar(pvApiCtx, piAddr3) == 0)
diff --git a/scilab/modules/graphics/tests/nonreg_tests/bug_15303.tst b/scilab/modules/graphics/tests/nonreg_tests/bug_15303.tst
new file mode 100644 (file)
index 0000000..9721ee4
--- /dev/null
@@ -0,0 +1,28 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2017 - ESI - Adeline CARNIS
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- TEST WITH GRAPHIC -->
+// <-- NO CHECK REF -->
+//
+// <-- Non-regression test for bug 15303 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/15303
+//
+// <-- Short Description -->
+// Some properties written in capital letter in set function crashed Scilab.
+
+f = figure();
+ui = uicontrol(f);
+
+assert_checkfalse(execstr("set(ui, ""text"", ""a"")"   ,"errcatch") == 0);
+refMsg = msprintf(_("This object has no %s property.\n"), "text");
+assert_checkerror("set(ui, ""text"", ""a"")", refMsg);
+
+assert_checkfalse(execstr("set(ui, ""Text"", ""a"")"   ,"errcatch") == 0);
+refMsg = msprintf(_("This object has no %s property.\n"), "text");
+assert_checkerror("set(ui, ""Text"", ""a"")", refMsg);