More care in ::forward_Shdrs() and ::pack4()
Also, de-compressing arm64 shlib restores .init_array[0], although supposedly *_RELATIVE relocation should overwrite. https://github.com/upx/upx/issues/693 modified: p_lx_elf.cpp modified: p_lx_elf.h
This commit is contained in:
committed by
Markus F.X.J. Oberhumer
parent
fa364d6ea3
commit
75e153dd99
+2
-2
@@ -155,7 +155,7 @@ protected:
|
||||
virtual int pack2(OutputFile *, Filter &) override; // append compressed data
|
||||
virtual off_t pack3(OutputFile *, Filter &) override; // append loader
|
||||
virtual void pack4(OutputFile *, Filter &) override; // append pack header
|
||||
virtual void forward_Shdrs(OutputFile *fo, Elf32_Ehdr *ehdro);
|
||||
virtual unsigned forward_Shdrs(OutputFile *fo, Elf32_Ehdr *ehdro);
|
||||
virtual void unpack(OutputFile *fo) override;
|
||||
virtual void un_asl_dynsym(unsigned orig_file_size, OutputFile *);
|
||||
virtual void un_shlib_1(
|
||||
@@ -319,7 +319,7 @@ protected:
|
||||
virtual int pack2(OutputFile *, Filter &) override; // append compressed data
|
||||
virtual off_t pack3(OutputFile *, Filter &) override; // append loader
|
||||
virtual void pack4(OutputFile *, Filter &) override; // append pack header
|
||||
virtual void forward_Shdrs(OutputFile *fo, Elf64_Ehdr *ehdro);
|
||||
virtual unsigned forward_Shdrs(OutputFile *fo, Elf64_Ehdr *ehdro);
|
||||
virtual void unpack(OutputFile *fo) override;
|
||||
virtual void un_asl_dynsym(unsigned orig_file_size, OutputFile *);
|
||||
virtual void un_shlib_1(
|
||||
|
||||
Reference in New Issue
Block a user