Messages in this thread | | | From | David Laight <> | Subject | RE: KASAN+netlink, was: [PATCH] [net-next?] hns: avoid stack overflow with CONFIG_KASAN | Date | Wed, 8 Feb 2017 16:00:24 +0000 |
| |
> From: Johannes Berg > Sent: 08 February 2017 12:24 ... > Btw, what's causing this to start with? Can't the compiler reuse the > stack places?
Only if it realises they've gone out of scope - which probably doesn't happen when the functions are inlined. The address of the parameter can be saved by the calling function and used in a later call.
Something like this is valid:
int foo(int *p, int v) { static int *sv; int old = -1; if (sv) {old = *sv; *sv = v;} sv = v; return old; }
void bar(...) { int a, b; ... foo(&a, 0); ... foo(&b, 1); ... foo(NULL, 2); ...
If the compiler starts sharing stack it all goes wrong.
David
| |