Change interface. Add challenge for caller.

This commit is contained in:
Ulrich Drepper 2004-01-13 15:35:20 +00:00
parent dc927809b1
commit 0a182a286d

View File

@ -1,5 +1,5 @@
/* Stack executability handling for GNU dynamic linker. Linux version. /* Stack executability handling for GNU dynamic linker. Linux version.
Copyright (C) 2003 Free Software Foundation, Inc. Copyright (C) 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -30,8 +30,13 @@ extern void *__libc_stack_end;
int int
internal_function internal_function
_dl_make_stack_executable (void) _dl_make_stack_executable (void **stack_endp)
{ {
/* Challenge the caller. */
if (*stack_endp != __libc_stack_end)
return EPERM;
*stack_endp = NULL;
#if _STACK_GROWS_DOWN #if _STACK_GROWS_DOWN
/* This gives us the highest page that needs to be changed. */ /* This gives us the highest page that needs to be changed. */
uintptr_t page = (uintptr_t) __libc_stack_end & -(intptr_t) GL(dl_pagesize); uintptr_t page = (uintptr_t) __libc_stack_end & -(intptr_t) GL(dl_pagesize);