public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/101933] New: Unloaded dll with global std::mutex causes exe to crash on exit #38
@ 2021-08-16 10:23 mailnew4ster at gmail dot com
  2021-08-16 21:20 ` [Bug target/101933] " pinskia at gcc dot gnu.org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: mailnew4ster at gmail dot com @ 2021-08-16 10:23 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101933

            Bug ID: 101933
           Summary: Unloaded dll with global std::mutex causes exe to
                    crash on exit #38
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mailnew4ster at gmail dot com
  Target Milestone: ---

Reproduction on Windows:

Create and compile dll.cc as following:

```
#include <mutex>
std::mutex x;
```

g++.exe dll.cc -shared -o test.dll

Create and compile exe.cc as following:

```
#include <windows.h>
int main()
{
    auto x = LoadLibrary("test.dll");
    MessageBox(0,0,0,0);
    FreeLibrary(x);
    MessageBox(0,0,0,0);
    return 0;
}
```

g++.exe exe.cc -o test.exe

Run test.exe and observe a crash after seeing both message boxes.
The crash happens in msvcrt.doexit, which tries to call a cleanup function
inside the dll which was already freed.

I'm using TDM-GCC, and I also reported the issue there:
https://github.com/jmeubank/tdm-gcc/issues/38

I'm not sure whether it's specific to TDM-GCC, it applies some patches on GCC,
but they are very small and I think they probably don't affect this issue.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-09-04  8:56 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-16 10:23 [Bug c++/101933] New: Unloaded dll with global std::mutex causes exe to crash on exit #38 mailnew4ster at gmail dot com
2021-08-16 21:20 ` [Bug target/101933] " pinskia at gcc dot gnu.org
2021-09-03 19:58 ` mailnew4ster at gmail dot com
2021-09-03 20:16 ` mailnew4ster at gmail dot com
2021-09-04  8:56 ` [Bug target/101933] Unloaded dll with global std::mutex causes exe to crash on exit mailnew4ster at gmail dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).