mgetstr crashes scilab when parsing a small file (100 characters)
Reported by Antoine Monmayrant
100_char.txt (137 bytes, text/plain)
small char text that kills scilab
BUG DESCRIPTION:
----------------
reading few characters from a small text file crashes scilab
ERROR LOG:
----------
terminate called after throwing an instance of 'GiwsException::JniCallMethodException'
what(): Exception when calling Java method : String index out of range: -12
at java.lang.String.substring(String.java:1967)
at org.scilab.modules.console.SciOutputView.displayLineBuffer(Unknown Source)
at org.scilab.modules.console.SciOutputView.append(Unknown Source)
at org.scilab.modules.gui.bridge.console.SwingScilabConsole.display(Unknown Source)
at org.scilab.modules.gui.console.ScilabConsoleBridge.display(Unknown Source)
at org.scilab.modules.gui.bridge.ScilabBridge.display(Unknown Source)
at org.scilab.modules.gui.console.ScilabConsole.display(Unknown Source)
at org.scilab.modules.gui.bridge.CallScilabBridge.display(Unknown Source)
String index out of range: -12
at java.lang.String.substring(String.java:1967)
at org.scilab.modules.console.SciOutputView.displayLineBuffer(Unknown Source)
at org.scilab.modules.console.SciOutputView.append(Unknown Source)
at org.scilab.modules.gui.bridge.console.SwingScilabConsole.display(Unknown Source)
at org.scilab.modules.gui.console.ScilabConsoleBridge.display(Unknown Source)
at org.scilab.modules.gui.bridge.ScilabBridge.display(Unknown Source)
at org.scilab.modules.gui.console.ScilabConsole.display(Unknown Source)
at org.scilab.modules.gui.bridge.CallScilabBridge.display(Unknown Source)
A fatal error has been detected by Scilab.
Please check your user-defined functions (or external module ones) should they appear in the stack trace.
Otherwise you can report a bug on http://bugzilla.scilab.org/ with:
* a sample code which reproduces the issue
* the result of [a, b] = getdebuginfo()
* the following information:
[lyre:07366] Signal: Aborted (6)
[lyre:07366] Signal code: (-6)
Call stack:
1: 0x3ee97 <gsignal> (/lib/x86_64-linux-gnu/libc.so.6)
2: 0x40801 <abort> (/lib/x86_64-linux-gnu/libc.so.6)
3: 0x9e32b < > (/home/username/softs/scilab-6.1.0/lib/thirdparty/redist/libscistdc++.so.6)
4: 0x9c196 < > (/home/username/softs/scilab-6.1.0/lib/thirdparty/redist/libscistdc++.so.6)
5: 0x9c1e1 < > (/home/username/softs/scilab-6.1.0/lib/thirdparty/redist/libscistdc++.so.6)
6: 0x9c424 < > (/home/username/softs/scilab-6.1.0/lib/thirdparty/redist/libscistdc++.so.6)
7: 0x425b <org_scilab_modules_gui_bridge::CallScilabBridge::display(JavaVM_*, char const*)> (/home/username/softs/scilab-6.1.0/lib/scilab/libsciconsole.so.6)
8: 0x5ae9 <ConsolePrintf> (/home/username/softs/scilab-6.1.0/lib/scilab/libsciconsole.so.6)
9: 0x3bd411 <scilabForcedWriteW> (/home/username/softs/scilab-6.1.0/lib/scilab/libscilab-cli.so.6)
10: 0x4df055 <types::VariableToString(types::InternalType*, wchar_t const*)> (/home/username/softs/scilab-6.1.0/lib/scilab/libsciast.so.6)
11: 0x1b3db0 <ast::RunVisitorT<ast::ExecVisitor>::visitprivate(ast::AssignExp const&)> (/home/username/softs/scilab-6.1.0/lib/scilab/libsciast.so.6)
12: 0x1d7aab <ast::RunVisitorT<ast::ExecVisitor>::visitprivate(ast::SeqExp const&)> (/home/username/softs/scilab-6.1.0/lib/scilab/libsciast.so.6)
13: 0x1c9c5b <StaticRunner::launch()> (/home/username/softs/scilab-6.1.0/lib/scilab/libscilab-cli.so.6)
14: 0x1bfa6a <RunScilabEngine> (/home/username/softs/scilab-6.1.0/lib/scilab/libscilab-cli.so.6)
15: 0x1d52 <main> (scilab-bin)
16: 0x21b97 <__libc_start_main> (/lib/x86_64-linux-gnu/libc.so.6)
17: 0x1ab9 < > (scilab-bin)
End of stack
*** stack smashing detected ***: <unknown> terminated
Aborted (core dumped)
HOW TO REPRODUCE THE BUG:
-------------------------
filename="100_char.txt"
[fd, err] = mopen(filename, 'rt');
txtline=mgetstr(80,fd) // scilab crashes
Content of "100_char.txt" :
//////////////////////////////////////////////////////////////////
Listing of Grid Distortion Data
File : C:\Users\anonyml\Documents\Zemax\totototo\totototo_165_165
//////////////////////////////////////////////////////////////////
OTHER INFORMATION:
------------------