Page MenuHomeFreeBSD

kern_exec: Add kern.stacktop sysctl.
ClosedPublic

Authored by dgr_semihalf.com on Sep 10 2021, 6:14 AM.
Tags
None
Referenced Files
F81592912: D31897.diff
Thu, Apr 18, 3:53 PM
F81573857: D31897.id94941.diff
Thu, Apr 18, 8:00 AM
Unknown Object (File)
Tue, Apr 16, 5:22 AM
Unknown Object (File)
Sat, Apr 13, 8:45 PM
Unknown Object (File)
Sat, Apr 13, 8:32 PM
Unknown Object (File)
Tue, Apr 9, 9:31 PM
Unknown Object (File)
Sun, Apr 7, 9:14 PM
Unknown Object (File)
Sat, Apr 6, 2:21 PM

Details

Summary

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.

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

dgr_semihalf.com created this revision.

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.

194

Fix style while there: return (error);

208

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);
217

return (error);

kib added inline comments.
sys/kern/kern_exec.c
208

There should be a blank line after local variable declaration.

This revision is now accepted and ready to land.Oct 13 2021, 11:13 PM

Added newline after variable declaration.

This revision now requires review to proceed.Oct 14 2021, 9:16 AM
This revision is now accepted and ready to land.Oct 14 2021, 2:25 PM
This revision was automatically updated to reflect the committed changes.