On Fri, Mar 8, 2019 at 10:42 AM Commit Bot <[email protected]> wrote:

> From: Nadav Har'El <[email protected]>
> Committer: Nadav Har'El <[email protected]>
> Branch: master
>
> elf: support PT_GNU_PROPERTY segment type
>
> Recently, binutils added yet another segment type, called
> "PT_GNU_PROPERTY":
>
> https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=0a59decbb81676ac30deede1bb6b6e241cd75502
>
> Since OSv's linker currently aborts when it sees an unknown segment type,
> we saw crashes when loading some specific shared objects, like a recent
> Java build from Fedora.
>
> This patch adds the missing segment type (and ignores it), and also
> improves
> the error message in case in the future we encounter more newly invented
> segment types.
>
> Fixes #1030.
>
> Signed-off-by: Nadav Har'El <[email protected]>
>
> ---
> diff --git a/core/elf.cc b/core/elf.cc
> --- a/core/elf.cc
> +++ b/core/elf.cc
> @@ -423,15 +423,15 @@ void object::load_segments()
>           case PT_GNU_RELRO:
>           case PT_GNU_EH_FRAME:
>           case PT_PAX_FLAGS:
> +        case PT_GNU_PROPERTY:
>               break;
>           case PT_TLS:
>               _tls_segment = _base + phdr.p_vaddr;
>               _tls_init_size = phdr.p_filesz;
>               _tls_uninit_size = phdr.p_memsz - phdr.p_filesz;
>               break;
>           default:
> -            abort();
> -            throw osv::invalid_elf_error("bad p_type");
> +            abort("Unknown p_type in executable %s: %d\n", pathname(),
> phdr.p_type);
>

Can't we always ignore unknown segment types, but print the above error
message as a warning?

- Pekka

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to