Comments (6)
1. Find space in StackDepot for an "origin type" flag: allocation /
deallocation / a bunch of custom types (like __msan_poison).
2. Change the origin description in the report to "heap deallocation"
3. Maybe change the report header to MemorySanitizer: use-after-free
Original comment by [email protected]
on 9 Dec 2014 at 8:32
from memory-sanitizer.
This is coming up over and over again.
I understand we are stuck at #1, is this a problem? Maybe instead we could
check the top PC agains the ranges occupied by __interceptor_free etc?
Original comment by [email protected]
on 21 Jan 2015 at 7:13
from memory-sanitizer.
One possible cheap way to solve this: when we record the deallocation stack
trace on free(), delete, realloc, etc record the top frame somewhere.
It will always be one of very few, i.e. we can use a fixed size array.
Then, when reporting a bug, see if the first frame of the origin stack trace is
one
of the deallocation frames.
Original comment by [email protected]
on 22 Jan 2015 at 1:05
from memory-sanitizer.
Sounds hackish.
There is plenty of space in the stackdepot for "stack type". We use an entire
uptr for the number of frames in the stack trace!
Original comment by [email protected]
on 22 Jan 2015 at 11:27
from memory-sanitizer.
Also note that realloc() should generate 2 distinct origins, as it both
allocates and deallocated memory.
Original comment by [email protected]
on 22 Jan 2015 at 12:01
from memory-sanitizer.
Fixed in http://llvm.org/viewvc/llvm-project?view=revision&revision=226821
Original comment by [email protected]
on 22 Jan 2015 at 1:35
- Changed state: Fixed
from memory-sanitizer.
Related Issues (20)
- Support a module name blacklist to selectively disable interceptor checks
- Make track-origins a run-time decision
- False positive on fcvt() result HOT 1
- Missing origin in memmove()
- Origin tracking is not async signal safe HOT 4
- Feature - dump region around uninitialized memory as a fallback to origin tracing HOT 1
- Intercept syscall() HOT 1
- Remove __msan_allocated_memory from stack trace
- Intercept memcmp() HOT 1
- blacklist does not seem to work for interceptor functions HOT 9
- rorw fails with an MSan report when the argument is uninitialized (r217949) HOT 2
- Better reports for intrinsics, inline asm
- Possible false positive when memory sanitizing GoogleTest HOT 4
- Handle _mm_clmulepi64_si128
- Install a SIGSEGV handler in MSan HOT 1
- MsanReallocate does not handle origins correctly HOT 3
- Inefficient function prologue HOT 1
- Missing origin for "undef"
- Ultra-compatible memory mapping HOT 5
- Get rid of getCleanOrigin() HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from memory-sanitizer.