Comments (9)
Also filed https://bugs.llvm.org/show_bug.cgi?id=37207 as it's msan bug.
from kmsan.
Right now [K]MSan uses AllocaInst.getName() to obtain the local's name.
It's actually possible to query the LLVM metadata to get the exact name and declaration location for local vars.
Another idea we've just discussed is to associate the local var's DILocation with the corresponding __msan_poison_alloca() call.
from kmsan.
Querying metadata is a good idea, and it's not that hard to implement. It will only work with full debug info though, not -gmlt.
In your last sentence, are you saying that you want to describe __msan_poison_alloca call site as data in debug info?
from kmsan.
In your last sentence, are you saying that you want to describe __msan_poison_alloca call site as data in debug info?
No, the idea was to make thecall __msan_poison_alloca
have the same file:line info as the local variable.
from kmsan.
Sure. Either that or __msan_set_alloca_origin4.
from kmsan.
Another question is how do we represent the information about inlined variables.
E.g. in the following case:
static int bar(int index) {
int buf[10];
for (int i = 0; i < 10; i++) {
buf[i] = (i > 1) ? buf[i-1] + buf[i-2] : 1;
}
return (index >= 0 && index < 10) ? buf[index] : 0;
}
static
int foo(int index) {
return bar(index);
}
We could describe the inlined buf
as one of the following options:
buf@foo
(current version)buf@bar
(show only the original function)buf@bar@foo
(show all the inlining stack)
Version 3 is the most informative, but it'll create a lot of unnecessary global strings. Version 2 has only the deepest function in the inline stack, which may sometimes be obscure.
from kmsan.
Uninit come from local variable buf created at:
bar bar.c:11
foo foo.c:22
baz baz.c:33
from kmsan.
Still reproducible with Clang 15.0.0.
from kmsan.
On the other hand, VLAs are gone from the kernel, so keeping the bug around in LLVM should be enough: https://bugs.llvm.org/show_bug.cgi?id=37207
from kmsan.
Related Issues (20)
- The return value of 'sscanf()' should be checked HOT 1
- Don't zero out origin of uninitialized bytes in kmsan_internal_set_shadow_origin() HOT 1
- KMSAN must use contiguous shadow for physical pages HOT 1
- Should we override gfp_flags when allocating metadata pages? HOT 1
- recipe for target 'vmlinux' failed? HOT 2
- trim aux frames from stacks HOT 1
- duplicate frame for local var origin HOT 1
- BUG: KMSAN: uninit-value in kmsan_handle_dma HOT 8
- Potential deadlock in stack_depot_save() HOT 1
- Some crypto configs that use asm are not disabled HOT 1
- BUG: NULL pointer dereference in wp_page_copy (kmsan specific) HOT 3
- Compile kmsan with clang-9 with -O2 ERROR HOT 2
- compile KMSAN error HOT 5
- https://www.google.com/webhp?client=ms-android-americamovil-us-revc&source=android-home&gws_rd=ssl
- Security Policy violation Binary Artifacts HOT 15
- can't compile if select KMSAN in ubuntu 2204 HOT 3
- arch/x86/kernel/module.c:230:49: error: call to undeclared library function 'memcpy' HOT 13
- KMSAN doesn't support paravirtualization
- Why do we need to sync metadata in x86_32 page faults? HOT 3
- false-positive bug report likely due to kmsan_percpu_ctx shared between softirq and hardirq context
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 kmsan.