[PATCH] Fix stack memory protection on targets where the stack grows upward
Florian Weimer
fw@deneb.enyo.de
Sun Apr 16 21:27:00 GMT 2017
* John David Anglin:
> #elif _STACK_GROWS_UP
> - if (mprotect ((char *) pd - pd->guardsize,
> - pd->guardsize - guardsize, prot) != 0)
> + char *new_guard = (char *)(((uintptr_t) pd - guardsize) & ~pagesize_m1);
> + char *old_guard = (char *)(((uintptr_t) pd - pd->guardsize) & ~pagesize_m1);
> + /* The guard size difference might be > 0, but once rounded
> + to the nearest page the size difference might be zero. */
> + if (new_guard > old_guard
> + && mprotect (old_guard, new_guard - old_guard, prot) != 0)
> goto mprot_error;
> #endif
>
This is essentially HPPA-specific code, right? So I guess we can do
whatever it takes there.
More information about the Libc-alpha
mailing list