* Bug #14527 fixed - Calling pathconvert function without parameters crashed Scilab. 76/18476/3
Adeline CARNIS [Wed, 17 Aug 2016 13:18:50 +0000 (15:18 +0200)]
Change-Id: I92302d28550097e6ae4a5b868ca8c3e577cd36ef

scilab/CHANGES.md
scilab/modules/fileio/sci_gateway/cpp/sci_pathconvert.cpp
scilab/modules/fileio/tests/nonreg_tests/bug_14527.dia.ref [new file with mode: 0644]
scilab/modules/fileio/tests/nonreg_tests/bug_14527.tst [new file with mode: 0644]

index ec813f0..1495ff7 100644 (file)
@@ -279,6 +279,7 @@ Bug Fixes
 * [Bug #14367](http://bugzilla.scilab.org/show_bug.cgi?id=14367) fixed - `edit_curv` failed opening due to a `[]+1` operation.
 * [Bug #14448](http://bugzilla.scilab.org/show_bug.cgi?id=14448) fixed - removed havewindow() was still documented
 * [Bug #14513](http://bugzilla.scilab.org/show_bug.cgi?id=14513) fixed - `isqual` comparing two built-in functions yielded an error.
+* [Bug #14527](http://bugzilla.scilab.org/show_bug.cgi?id=14527) fixed - Calling pathconvert function without parameters crashed Scilab.
 * [Bug #14557](http://bugzilla.scilab.org/show_bug.cgi?id=14557) fixed - `csim` failed when the system has no state.
 * [Bug #14582](http://bugzilla.scilab.org/show_bug.cgi?id=14582) fixed - `gettext`or it alias `_()` were sometimes applied to broken literal strings
 * [Bug #14586](http://bugzilla.scilab.org/show_bug.cgi?id=14586) fixed - Xcos simulation stop button did not work.
index 71a2309..3fdabf7 100644 (file)
@@ -39,7 +39,7 @@ types::Function::ReturnValue sci_pathconvert(types::typed_list &in, int _iRetCou
     int iPathExpand         = 1;
     int iPathTrail          = 1;
 
-    if (in.size() < 1 && in.size() > 4)
+    if (in.size() < 1 || in.size() > 4)
     {
         Scierror(999, _("%s: Wrong number of input arguments: %d to %d expected.\n"), "pathconvert" , 1, 4);
         return types::Function::Error;
diff --git a/scilab/modules/fileio/tests/nonreg_tests/bug_14527.dia.ref b/scilab/modules/fileio/tests/nonreg_tests/bug_14527.dia.ref
new file mode 100644 (file)
index 0000000..06e5e6f
--- /dev/null
@@ -0,0 +1,18 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises - Adeline CARNIS
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+// <-- Non-regression test for bug 14527 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=14527
+//
+// <-- Short Description -->
+//    Calling pathconvert function without parameters crashed Scilab.
+// =============================================================================
+assert_checkfalse(execstr("pathconvert()"   ,"errcatch") == 0);
+refMsg = msprintf(_("%s: Wrong number of input arguments: %d to %d expected.\n"), "pathconvert", 1, 4);
+assert_checkerror("pathconvert()", refMsg);
diff --git a/scilab/modules/fileio/tests/nonreg_tests/bug_14527.tst b/scilab/modules/fileio/tests/nonreg_tests/bug_14527.tst
new file mode 100644 (file)
index 0000000..a583fe5
--- /dev/null
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises - Adeline CARNIS
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- CLI SHELL MODE -->
+
+// <-- Non-regression test for bug 14527 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=14527
+//
+// <-- Short Description -->
+//    Calling pathconvert function without parameters crashed Scilab.
+// =============================================================================
+
+assert_checkfalse(execstr("pathconvert()"   ,"errcatch") == 0);
+refMsg = msprintf(_("%s: Wrong number of input arguments: %d to %d expected.\n"), "pathconvert", 1, 4);
+assert_checkerror("pathconvert()", refMsg);