[bug_14300] double free fixed 83/17583/2
Cedric Delamarre [Tue, 15 Dec 2015 17:04:41 +0000 (18:04 +0100)]
test_run ast bug_14300
test_run ast bug_14300 mode_nwni_profiling

Change-Id: I87da365586b456224e4b6929b7ac064e54c92e8d

scilab/CHANGES_6.0.X
scilab/modules/ast/src/cpp/ast/runvisitor.cpp
scilab/modules/ast/tests/nonreg_tests/bug_14300.dia.ref [new file with mode: 0644]
scilab/modules/ast/tests/nonreg_tests/bug_14300.tst [new file with mode: 0644]

index b524ccd..a603d6f 100644 (file)
@@ -33,7 +33,7 @@ For a high-level overview of the changes in this release, please consult the "Wh
 
 * Bug #14257 fixed - English spelling in messages and in comments.
 
-* Bug #14257 fixed - English spelling in messages and in comments.
+* Bug #14300 fixed - Crash when playing with structures.
 
 Dependencies
 =============
index 8e23539..2ae8441 100644 (file)
@@ -370,7 +370,6 @@ void RunVisitorT<T>::visitprivate(const FieldExp &e)
     }
     catch (std::wstring & err)
     {
-        pValue->killMe();
         CoverageInstance::stopChrono((void*)&e);
         throw InternalError(err.c_str(), 999, e.getTail()->getLocation());
     }
diff --git a/scilab/modules/ast/tests/nonreg_tests/bug_14300.dia.ref b/scilab/modules/ast/tests/nonreg_tests/bug_14300.dia.ref
new file mode 100644 (file)
index 0000000..011598c
--- /dev/null
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2015 - Scilab Enterprises - Cedric Delamarre
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 14300 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/14300
+//
+// <-- Short Description -->
+// Crash when playing with structures.
+clear s;
+s.a.h = 1;
+s.b.h = 2;
+errmsg = msprintf(_("Unknown field : %s."), "h");
+assert_checkerror("s(:).h;", errmsg);
+assert_checkerror("s(1)(:).h;", errmsg);
diff --git a/scilab/modules/ast/tests/nonreg_tests/bug_14300.tst b/scilab/modules/ast/tests/nonreg_tests/bug_14300.tst
new file mode 100644 (file)
index 0000000..9bf55e9
--- /dev/null
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2015 - Scilab Enterprises - Cedric Delamarre
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 14300 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/14300
+//
+// <-- Short Description -->
+// Crash when playing with structures.
+
+clear s;
+s.a.h = 1;
+s.b.h = 2;
+
+errmsg = msprintf(_("Unknown field : %s."), "h");
+assert_checkerror("s(:).h;", errmsg);
+assert_checkerror("s(1)(:).h;", errmsg);