git: 8f2668b0605e - main - _elf_aux_info(3): add support for AT_USRSTACK{BASE,LIM}
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 16 Sep 2022 20:25:38 UTC
The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=8f2668b0605e26b04a103f63096cfcc856d950c1 commit 8f2668b0605e26b04a103f63096cfcc856d950c1 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2022-09-12 19:36:24 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2022-09-16 20:23:32 +0000 _elf_aux_info(3): add support for AT_USRSTACK{BASE,LIM} Reviewed by: brooks, imp (previous version) Discussed with: markj Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D36540 --- lib/libc/gen/auxv.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/lib/libc/gen/auxv.c b/lib/libc/gen/auxv.c index ae21d088a8d1..af59a2dda90a 100644 --- a/lib/libc/gen/auxv.c +++ b/lib/libc/gen/auxv.c @@ -73,6 +73,7 @@ static char *canary, *pagesizes, *execpath; static void *ps_strings, *timekeep; static u_long hwcap, hwcap2; static void *fxrng_seed_version; +static u_long usrstackbase, usrstacklim; #ifdef __powerpc__ static int powerpc_new_auxv_format = 0; @@ -144,6 +145,14 @@ init_aux(void) case AT_FXRNG: fxrng_seed_version = aux->a_un.a_ptr; break; + + case AT_USRSTACKBASE: + usrstackbase = aux->a_un.a_val; + break; + + case AT_USRSTACKLIM: + usrstacklim = aux->a_un.a_val; + break; #ifdef __powerpc__ /* * Since AT_STACKPROT is always set, and the common @@ -370,6 +379,20 @@ _elf_aux_info(int aux, void *buf, int buflen) } else res = EINVAL; break; + case AT_USRSTACKBASE: + if (buflen == sizeof(u_long)) { + *(u_long *)buf = usrstackbase; + res = 0; + } else + res = EINVAL; + break; + case AT_USRSTACKLIM: + if (buflen == sizeof(u_long)) { + *(u_long *)buf = usrstacklim; + res = 0; + } else + res = EINVAL; + break; default: res = ENOENT; break;