With stack gap enabled top of the stack is moved down by a random
amount of bytes. Because of that some multithreaded applications
which use kern.usrstack sysctl to calculate address of stacks for
their threads can fail. Add kern.stacktop sysctl, which can be used
to retrieve address of the stack after stack gap is applied to it.
Returns value identical to kern.usrstack for processes which have
no stack gap.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Comment Actions
Hi, do you have any further comments or remarks? If there are no objections, I'm going to merge this patch by EOW.
sys/kern/kern_exec.c | ||
---|---|---|
137 | Style: need spaces around binary op '|'. Ignore other examples in this file, do it right for added code. | |
199–223 | Fix style while there: return (error); | |
237 | The op ('-') should be on the previous line, before line split. Also, why not to do single cast, instead of two: val = (unsigned)(p->p_sysent->sv_usrstack - p->p_vmspace->vm_stkgap); | |
246 | return (error); |
sys/kern/kern_exec.c | ||
---|---|---|
213 | There should be a blank line after local variable declaration. |