Subject: Re: CVS commit: basesrc/libexec/ld.elf_so
To: enami tsugutomo <enami@sm.sony.co.jp>
From: Bang Jun-Young <junyoung@netbsd.org>
List: source-changes
Date: 11/22/2002 14:09:03
On Fri, Nov 22, 2002 at 02:00:13PM +0900, enami tsugutomo wrote:
> Bang Jun-Young <junyoung@netbsd.org> writes:
> 
> > Module Name:	basesrc
> > Committed By:	junyoung
> > Date:		Fri Nov 22 04:39:39 UTC 2002
> > 
> > Modified Files:
> > 	basesrc/libexec/ld.elf_so: reloc.c
> > 
> > Log Message:
> > Now _rtld_relocate_objects() returns with error as soon as any of
> > subsequent calls in it fails.
> > 
> > 
> > To generate a diff of this commit:
> > cvs rdiff -r1.75 -r1.76 basesrc/libexec/ld.elf_so/reloc.c
> 
> Without doing enough cleanup?  I guess you aren't notice the comment
> in the following code.
> 
> @@ -184,7 +183,7 @@
>                 }
>                 dbg(("doing non-PLT relocations"));
>                 if (_rtld_relocate_nonplt_objects(obj) < 0)
> -                       ok = 0;
> +                       return -1;
>                 if (obj->textrel) {     /* Re-protected the text segment. */
>                         if (mprotect(obj->mapbase, obj->textsize,
>                                      PROT_READ | PROT_EXEC) == -1) {

It is no problem, since the process is terminated if _rtld_relocate_objects()
fails.

Jun-Young

-- 
Bang Jun-Young <junyoung@netbsd.org>