Hi, Mike, On Wed, 2 Feb 2022 at 12:14, Mike Rapoport <rppt@xxxxxxxxxx> wrote: > > From: Mike Rapoport <rppt@xxxxxxxxxxxxx> > > Rui Salvaterra reported that Aisleroit solitaire crashes with "Wrong > __data_start/_end pair" assertion from libgc after update to v5.17-rc1. > > Bisection pointed to commit 9630f0d60fec ("fs/binfmt_elf: use PT_LOAD > p_align values for static PIE") that fixed handling of static PIEs, but > made the condition that guards load_bias calculation to exclude loader > binaries. > > Restoring the check for presence of interpreter fixes the problem. > > Fixes: 9630f0d60fec ("fs/binfmt_elf: use PT_LOAD p_align values for static PIE") > Reported-by: Rui Salvaterra <rsalvaterra@xxxxxxxxx> > Signed-off-by: Mike Rapoport <rppt@xxxxxxxxxxxxx> > --- > fs/binfmt_elf.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c > index 605017eb9349..9e11e6f13e83 100644 > --- a/fs/binfmt_elf.c > +++ b/fs/binfmt_elf.c > @@ -1117,7 +1117,7 @@ static int load_elf_binary(struct linux_binprm *bprm) > * without MAP_FIXED nor MAP_FIXED_NOREPLACE). > */ > alignment = maximum_alignment(elf_phdata, elf_ex->e_phnum); > - if (alignment > ELF_MIN_ALIGN) { > + if (interpreter || alignment > ELF_MIN_ALIGN) { > load_bias = ELF_ET_DYN_BASE; > if (current->flags & PF_RANDOMIZE) > load_bias += arch_mmap_rnd(); > -- > 2.34.1 > The patch does fix the problem for me, and is thus Tested-by: Rui Salvaterra <rsalvaterra@xxxxxxxxx> Thanks, Rui