C++ Std::Condition_Variable Null Pointer Derreference
This story is about a bug generated by g++ and clang compilers (at least)
The condition_variables is a feature on the standard library of c++ (libstdc++), when its compiled statically a weird asm code is generated.
Any example on the link below will crash if its compiled statically:
https://en.cppreference.com/w/cpp/thread/condition_variable
In this case the condition_variable.wait() crashed, but this happens with other methods, a simple way to trigger it:
If this program is compiled dynamically the crash doesn't occur:
Looking the dissasembly there is a surprise created by the compiler:
Compilers:
g++ 9.2.1+20200130-2
clang++ v9
Both compilers are generating the "call 0x00"
If we check this call in a dynamic compiled:
The implementation of condition_variable in github:
https://github.com/gcc-mirror/gcc/blob/b7c9bd36eaacac42631b882dc67a6f0db94de21c/libstdc%2B%2B-v3/include/std/condition_variable
The compilers can't copile well this code in static, and same happens on other condition_variable methods.
I would say the _lock is being assembled improperly in static, is not exacly a null pointer derreference but the effects are the same, executing code at address 0x00 which on linux is a crash on most of cases.
Related word
- Hacking Apps
- Growth Hacker Tools
- Hacking Tools For Mac
- Hacker Search Tools
- Tools Used For Hacking
- Hacking Tools For Games
- Android Hack Tools Github
- Blackhat Hacker Tools
- Pentest Tools Bluekeep
- Hacking Tools Usb
- Github Hacking Tools
- Hacking Tools For Windows 7
- Hacker Tools Apk Download
- Hacking Tools Github
- Pentest Tools List
- Hacking Tools For Windows
- Hack App
- Hack Website Online Tool
- What Is Hacking Tools
- Hacker Tools For Ios
- Pentest Tools Alternative
- Pentest Tools Find Subdomains
- Physical Pentest Tools
- Hack Tools For Windows
- Pentest Tools Kali Linux
- Pentest Tools Nmap
- Hacking Tools Windows 10
- Pentest Tools Nmap
0 条评论:
发表评论
订阅 博文评论 [Atom]
<< 主页