On Thu, Jan 27, 2011 at 01:54:20PM +0100, Pierre Ynard wrote:
> reassign 611195 libc6
> tags 611195 + patch
> thanks
> 
> > so there you have it in a nutshell. probably the quickest 'fix' is to
> > at least add a check for mprotect's return value
> 
> I wrote a patch that should fix the segfault. I couldn't test it because
> I don't have an appropriate environment to rebuild eglibc and test the
> issue.
> 
> 
> --- elf/dl-load.c     2011-01-26 22:02:02.000000000 +0100
> +++ elf/dl-load.c     2011-01-26 22:30:22.000000000 +0100
> @@ -1398,7 +1398,11 @@
>         if (__builtin_expect (p + s <= relro_end, 1))
>           {
>             /* The variable lies in the region protected by RELRO.  */
> -           __mprotect ((void *) p, s, PROT_READ|PROT_WRITE);
> +           if (__mprotect ((void *) p, s, PROT_READ|PROT_WRITE) < 0)
> +             {
> +               errstring = N_("cannot change memory protections");
> +               goto call_lose_errno;
> +             }
>             __stack_prot |= PROT_READ|PROT_WRITE|PROT_EXEC;
>             __mprotect ((void *) p, s, PROT_READ);
>           }
> 
> 

Given the patch has been refused by upstream glibc, could you please
send it to patc...@eglibc.org with an explanation how what it does, and
stating that it has been refused in glibc?

I am going to apply it in debian, but I don't want to keep it eternally,
so it has to be merged some way.

-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
aurel...@aurel32.net                 http://www.aurel32.net



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to