https://bugzilla.redhat.com/show_bug.cgi?id=1212162
Bug ID: 1212162 Summary: Exception handling corrupts a VLA Product: Fedora Version: 21 Component: mingw32-gcc Assignee: rjones@redhat.com Reporter: hedayatv@gmail.com QA Contact: extras-qa@fedoraproject.org CC: erik-fedora@vanpienbroek.nl, fedora-mingw@lists.fedoraproject.org, kalevlember@gmail.com, rjones@redhat.com
Description of problem: Code: ----------------------------------------------------------------- #include <iostream> #include <cstring> #include <sstream> #include <stdexcept>
using namespace std;
int main(int argc, char **argv) { int n; stringstream ss(argv[1]); ss >> n; cout << "N: " << n << endl; char tbuff[n]; try { memset(tbuff, 0, n); throw runtime_error("ERR"); } catch (exception &e) { cout << "Writing to VLA" << endl; memset(tbuff, 0, n); cout << "Wrote" << endl; } } -----------------------------------------------------------------
Compiled with: /usr/bin/i686-w64-mingw32-g++ -O2 test.cpp -o t
Run with wine (similar results under Windows) results in crash: []% ./t 100 fixme:winediag:start_process Wine Staging is a testing version containing experimental patches. fixme:winediag:start_process Please report bugs at http://bugs.wine-staging.com (instead of winehq.org). N: 100 Writing to VLA wine: Unhandled page fault on read access to 0x00000000 at address (nil) (thread 0009), starting debugger... Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0x00000000). ....
Version-Release number of selected component (if applicable): mingw32-gcc-c++-4.9.2-1.fc21.x86_64
How reproducible: 100%
https://bugzilla.redhat.com/show_bug.cgi?id=1212162
--- Comment #1 from Richard W.M. Jones rjones@redhat.com --- I guess this is a bug in one of Wine, GCC, or mingw-w64. But not in Fedora packaging. You'll get a faster response by taking the bug report to one of those upstream projects.
https://bugzilla.redhat.com/show_bug.cgi?id=1212162
Erik van Pienbroek erik-fedora@vanpienbroek.nl changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |ktietz@redhat.com Component|mingw32-gcc |mingw-gcc Assignee|rjones@redhat.com |erik-fedora@vanpienbroek.nl
--- Comment #2 from Erik van Pienbroek erik-fedora@vanpienbroek.nl --- @Kai: any idea?
https://bugzilla.redhat.com/show_bug.cgi?id=1212162
--- Comment #3 from Hedayat Vatankhah hedayatv@gmail.com --- It is not wine, since the same crash happens on Windows for a similar code. It should be either GCC (upstream GCC) or mingw (which is probably a branch of upstream code?); but I don't know exactly where should I report bugs in mingw-gcc, so I reported here (I thought there might be some Fedora specific patches also). Anyway, the bug is probably related to MinGW sjlj exception handling. If you think that I should report it upstream myself, please tell me if I should report it in GCC bugzilla or Mingw64 one.
https://bugzilla.redhat.com/show_bug.cgi?id=1212162
--- Comment #4 from Fedora End Of Life endoflife@fedoraproject.org --- This message is a reminder that Fedora 21 is nearing its end of life. Approximately 4 (four) weeks from now Fedora will stop maintaining and issuing updates for Fedora 21. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as EOL if it remains open with a Fedora 'version' of '21'.
Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version.
Thank you for reporting this issue and we are sorry that we were not able to fix it before Fedora 21 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora, you are encouraged change the 'version' to a later Fedora version prior this bug is closed as described in the policy above.
Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete.
https://bugzilla.redhat.com/show_bug.cgi?id=1212162
Hedayat Vatankhah hedayatv@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- External Bug ID| |GNU Compiler Collection | |68213 Version|21 |22