[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#611195: vlc-nox: generating plugin cache at postinst segfaults on PaX kernel



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 patches@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
aurelien@aurel32.net                 http://www.aurel32.net



Reply to: