Start using some C++ 14 features.
This commit is contained in:
+56
-56
@@ -61,10 +61,10 @@ PackVmlinuxBase<T>::PackVmlinuxBase(InputFile *f,
|
||||
super(f),
|
||||
my_e_machine(e_machine), my_elfclass(elfclass), my_elfdata(elfdata),
|
||||
my_boot_label(boot_label),
|
||||
n_ptload(0), phdri(NULL), shdri(NULL), shstrtab(NULL)
|
||||
n_ptload(0), phdri(nullptr), shdri(nullptr), shstrtab(nullptr)
|
||||
{
|
||||
ElfClass::compileTimeAssertions();
|
||||
bele = N_BELE_CTP::getRTP((const BeLePolicy*) NULL);
|
||||
bele = N_BELE_CTP::getRTP((const BeLePolicy*) nullptr);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
@@ -140,7 +140,7 @@ typename T::Shdr const *PackVmlinuxBase<T>::getElfSections()
|
||||
return p;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
@@ -173,7 +173,7 @@ bool PackVmlinuxBase<T>::canPack()
|
||||
|
||||
// A Linux kernel must have a __ksymtab section. [??]
|
||||
Shdr const *p, *const shstrsec = getElfSections();
|
||||
if (0==shstrsec) {
|
||||
if (nullptr==shstrsec) {
|
||||
return false;
|
||||
}
|
||||
{
|
||||
@@ -230,7 +230,7 @@ void PackVmlinuxBase<T>::pack(OutputFile *fo)
|
||||
Ehdr ehdro;
|
||||
TE32 tmp_u32;
|
||||
|
||||
// NULL
|
||||
// nullptr
|
||||
// .text(PT_LOADs) .note(1st page) .note(rest)
|
||||
// .shstrtab .symtab .strtab
|
||||
Shdr shdro[1+3+3];
|
||||
@@ -313,7 +313,7 @@ void PackVmlinuxBase<T>::pack(OutputFile *fo)
|
||||
memcpy(&unc_hdr[sizeof(ehdri)], phdri, sizeof(Phdr) * ehdri.e_phnum);
|
||||
unsigned len_cpr = 0;
|
||||
int const r = upx_compress(unc_hdr, len_unc, cpr_hdr, &len_cpr,
|
||||
NULL, ph.method, 10, NULL, NULL );
|
||||
nullptr, ph.method, 10, nullptr, nullptr );
|
||||
if (UPX_E_OK!=r || len_unc<=len_cpr) // FIXME: allow no compression
|
||||
throwInternalError("Ehdr compression failed");
|
||||
|
||||
@@ -371,7 +371,7 @@ void PackVmlinuxBase<T>::pack(OutputFile *fo)
|
||||
}
|
||||
compressWithFilters(ibuf, ph.u_len, obuf,
|
||||
f_ptr, f_len, // filter range
|
||||
NULL, 0, // hdr_ptr, hdr_len
|
||||
nullptr, 0, // hdr_ptr, hdr_len
|
||||
&ft, 512, &cconf, getStrategy(ft));
|
||||
|
||||
set_be32(&hdr_info.sz_unc, ph.u_len);
|
||||
@@ -581,12 +581,12 @@ int PackVmlinuxBase<T>::canUnpack()
|
||||
|
||||
// find the .shstrtab section
|
||||
Shdr const *const shstrsec = getElfSections();
|
||||
if (0==shstrsec) {
|
||||
if (nullptr==shstrsec) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// check for .text .note .note and sane (.sh_size + .sh_offset)
|
||||
p_note0 = p_note1 = p_text = 0;
|
||||
p_note0 = p_note1 = p_text = nullptr;
|
||||
int j;
|
||||
Shdr *p;
|
||||
for (p= shdri, j= ehdri.e_shnum; --j>=0; ++p) {
|
||||
@@ -599,15 +599,15 @@ int PackVmlinuxBase<T>::canUnpack()
|
||||
p_text = p;
|
||||
}
|
||||
if (0==strcmp(".note", shstrtab + p->sh_name)) {
|
||||
if (0==p_note0) {
|
||||
if (nullptr==p_note0) {
|
||||
p_note0 = p;
|
||||
} else
|
||||
if (0==p_note1) {
|
||||
if (nullptr==p_note1) {
|
||||
p_note1 = p;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (0==p_text || 0==p_note0 || 0==p_note1) {
|
||||
if (nullptr==p_text || nullptr==p_note0 || nullptr==p_note1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -781,21 +781,21 @@ void PackVmlinuxI386::buildLoader(const Filter *ft)
|
||||
(0x40==(0xf0 & ft->id)) ? "LXCKLLT1" : (ft->id ? "LXCALLT1" : ""),
|
||||
"LXMOVEUP",
|
||||
getDecompressorSections(),
|
||||
NULL
|
||||
nullptr
|
||||
);
|
||||
if (ft->id) {
|
||||
assert(ft->calls > 0);
|
||||
if (0x40==(0xf0 & ft->id)) {
|
||||
addLoader("LXCKLLT9", NULL);
|
||||
addLoader("LXCKLLT9", nullptr);
|
||||
}
|
||||
else {
|
||||
addLoader("LXCALLT9", NULL);
|
||||
addLoader("LXCALLT9", nullptr);
|
||||
}
|
||||
addFilter32(ft->id);
|
||||
}
|
||||
addLoader("LINUX990",
|
||||
((ph.first_offset_found == 1) ? "LINUX991" : ""),
|
||||
"LINUX992,IDENTSTR,UPX1HEAD", NULL);
|
||||
"LINUX992,IDENTSTR,UPX1HEAD", nullptr);
|
||||
}
|
||||
|
||||
void PackVmlinuxAMD64::buildLoader(const Filter *ft)
|
||||
@@ -806,21 +806,21 @@ void PackVmlinuxAMD64::buildLoader(const Filter *ft)
|
||||
(0x40==(0xf0 & ft->id)) ? "LXCKLLT1" : (ft->id ? "LXCALLT1" : ""),
|
||||
"LXMOVEUP",
|
||||
getDecompressorSections(),
|
||||
NULL
|
||||
nullptr
|
||||
);
|
||||
if (ft->id) {
|
||||
assert(ft->calls > 0);
|
||||
if (0x40==(0xf0 & ft->id)) {
|
||||
addLoader("LXCKLLT9", NULL);
|
||||
addLoader("LXCKLLT9", nullptr);
|
||||
}
|
||||
else {
|
||||
addLoader("LXCALLT9", NULL);
|
||||
addLoader("LXCALLT9", nullptr);
|
||||
}
|
||||
addFilter32(ft->id);
|
||||
}
|
||||
addLoader("LINUX990",
|
||||
((ph.first_offset_found == 1) ? "LINUX991" : ""),
|
||||
"LINUX992,IDENTSTR,UPX1HEAD", NULL);
|
||||
"LINUX992,IDENTSTR,UPX1HEAD", nullptr);
|
||||
}
|
||||
|
||||
bool PackVmlinuxARMEL::is_valid_e_entry(Addr e_entry)
|
||||
@@ -868,69 +868,69 @@ void PackVmlinuxARMEL::buildLoader(const Filter *ft)
|
||||
{
|
||||
// prepare loader
|
||||
initLoader(stub_arm_v5a_linux_kernel_vmlinux, sizeof(stub_arm_v5a_linux_kernel_vmlinux));
|
||||
addLoader("LINUX000", NULL);
|
||||
addLoader("LINUX000", nullptr);
|
||||
if (ft->id) {
|
||||
assert(ft->calls > 0);
|
||||
addLoader("LINUX010", NULL);
|
||||
addLoader("LINUX010", nullptr);
|
||||
}
|
||||
addLoader("LINUX020", NULL);
|
||||
addLoader("LINUX020", nullptr);
|
||||
if (ft->id) {
|
||||
addFilter32(ft->id);
|
||||
}
|
||||
addLoader("LINUX030", NULL);
|
||||
if (ph.method == M_NRV2E_8) addLoader("NRV2E", NULL);
|
||||
else if (ph.method == M_NRV2B_8) addLoader("NRV2B", NULL);
|
||||
else if (ph.method == M_NRV2D_8) addLoader("NRV2D", NULL);
|
||||
else if (M_IS_LZMA(ph.method)) addLoader("LZMA_ELF00,LZMA_DEC10,LZMA_DEC30", NULL);
|
||||
addLoader("LINUX030", nullptr);
|
||||
if (ph.method == M_NRV2E_8) addLoader("NRV2E", nullptr);
|
||||
else if (ph.method == M_NRV2B_8) addLoader("NRV2B", nullptr);
|
||||
else if (ph.method == M_NRV2D_8) addLoader("NRV2D", nullptr);
|
||||
else if (M_IS_LZMA(ph.method)) addLoader("LZMA_ELF00,LZMA_DEC10,LZMA_DEC30", nullptr);
|
||||
else throwBadLoader();
|
||||
addLoader("IDENTSTR,UPX1HEAD", NULL);
|
||||
addLoader("IDENTSTR,UPX1HEAD", nullptr);
|
||||
}
|
||||
|
||||
void PackVmlinuxARMEB::buildLoader(const Filter *ft)
|
||||
{
|
||||
// prepare loader
|
||||
initLoader(stub_armeb_v5a_linux_kernel_vmlinux, sizeof(stub_armeb_v5a_linux_kernel_vmlinux));
|
||||
addLoader("LINUX000", NULL);
|
||||
addLoader("LINUX000", nullptr);
|
||||
if (ft->id) {
|
||||
assert(ft->calls > 0);
|
||||
addLoader("LINUX010", NULL);
|
||||
addLoader("LINUX010", nullptr);
|
||||
}
|
||||
addLoader("LINUX020", NULL);
|
||||
addLoader("LINUX020", nullptr);
|
||||
if (ft->id) {
|
||||
addFilter32(ft->id);
|
||||
}
|
||||
addLoader("LINUX030", NULL);
|
||||
if (ph.method == M_NRV2E_8) addLoader("NRV2E", NULL);
|
||||
else if (ph.method == M_NRV2B_8) addLoader("NRV2B", NULL);
|
||||
else if (ph.method == M_NRV2D_8) addLoader("NRV2D", NULL);
|
||||
else if (M_IS_LZMA(ph.method)) addLoader("LZMA_ELF00,LZMA_DEC10,LZMA_DEC30", NULL);
|
||||
addLoader("LINUX030", nullptr);
|
||||
if (ph.method == M_NRV2E_8) addLoader("NRV2E", nullptr);
|
||||
else if (ph.method == M_NRV2B_8) addLoader("NRV2B", nullptr);
|
||||
else if (ph.method == M_NRV2D_8) addLoader("NRV2D", nullptr);
|
||||
else if (M_IS_LZMA(ph.method)) addLoader("LZMA_ELF00,LZMA_DEC10,LZMA_DEC30", nullptr);
|
||||
else throwBadLoader();
|
||||
addLoader("IDENTSTR,UPX1HEAD", NULL);
|
||||
addLoader("IDENTSTR,UPX1HEAD", nullptr);
|
||||
}
|
||||
|
||||
void PackVmlinuxPPC32::buildLoader(const Filter *ft)
|
||||
{
|
||||
// prepare loader
|
||||
initLoader(stub_powerpc_linux_kernel_vmlinux, sizeof(stub_powerpc_linux_kernel_vmlinux));
|
||||
addLoader("LINUX000", NULL);
|
||||
addLoader("LINUX000", nullptr);
|
||||
if (ft->id) {
|
||||
assert(ft->calls > 0);
|
||||
addLoader("LINUX010", NULL);
|
||||
addLoader("LINUX010", nullptr);
|
||||
}
|
||||
addLoader("LINUX020", NULL);
|
||||
addLoader("LINUX020", nullptr);
|
||||
if (ft->id) {
|
||||
addFilter32(ft->id);
|
||||
}
|
||||
addLoader("LINUX030", NULL);
|
||||
if (ph.method == M_NRV2E_LE32) addLoader("NRV2E,NRV_TAIL", NULL);
|
||||
else if (ph.method == M_NRV2B_LE32) addLoader("NRV2B,NRV_TAIL", NULL);
|
||||
else if (ph.method == M_NRV2D_LE32) addLoader("NRV2D,NRV_TAIL", NULL);
|
||||
else if (M_IS_LZMA(ph.method)) addLoader("LZMA_ELF00,LZMA_DEC10,LZMA_DEC30", NULL);
|
||||
addLoader("LINUX030", nullptr);
|
||||
if (ph.method == M_NRV2E_LE32) addLoader("NRV2E,NRV_TAIL", nullptr);
|
||||
else if (ph.method == M_NRV2B_LE32) addLoader("NRV2B,NRV_TAIL", nullptr);
|
||||
else if (ph.method == M_NRV2D_LE32) addLoader("NRV2D,NRV_TAIL", nullptr);
|
||||
else if (M_IS_LZMA(ph.method)) addLoader("LZMA_ELF00,LZMA_DEC10,LZMA_DEC30", nullptr);
|
||||
else throwBadLoader();
|
||||
if (hasLoaderSection("CFLUSH"))
|
||||
addLoader("CFLUSH");
|
||||
|
||||
addLoader("IDENTSTR,UPX1HEAD", NULL);
|
||||
addLoader("IDENTSTR,UPX1HEAD", nullptr);
|
||||
}
|
||||
|
||||
static const
|
||||
@@ -939,25 +939,25 @@ void PackVmlinuxPPC64LE::buildLoader(const Filter *ft)
|
||||
{
|
||||
// prepare loader
|
||||
initLoader(stub_powerpc64le_linux_kernel_vmlinux, sizeof(stub_powerpc64le_linux_kernel_vmlinux));
|
||||
addLoader("LINUX000", NULL);
|
||||
addLoader("LINUX000", nullptr);
|
||||
if (ft->id) {
|
||||
assert(ft->calls > 0);
|
||||
addLoader("LINUX010", NULL);
|
||||
addLoader("LINUX010", nullptr);
|
||||
}
|
||||
addLoader("LINUX020", NULL);
|
||||
addLoader("LINUX020", nullptr);
|
||||
if (ft->id) {
|
||||
addFilter32(ft->id);
|
||||
}
|
||||
addLoader("LINUX030", NULL);
|
||||
if (ph.method == M_NRV2E_LE32) addLoader("NRV2E,NRV_TAIL", NULL);
|
||||
else if (ph.method == M_NRV2B_LE32) addLoader("NRV2B,NRV_TAIL", NULL);
|
||||
else if (ph.method == M_NRV2D_LE32) addLoader("NRV2D,NRV_TAIL", NULL);
|
||||
else if (M_IS_LZMA(ph.method)) addLoader("LZMA_ELF00,LZMA_DEC10,LZMA_DEC30", NULL);
|
||||
addLoader("LINUX030", nullptr);
|
||||
if (ph.method == M_NRV2E_LE32) addLoader("NRV2E,NRV_TAIL", nullptr);
|
||||
else if (ph.method == M_NRV2B_LE32) addLoader("NRV2B,NRV_TAIL", nullptr);
|
||||
else if (ph.method == M_NRV2D_LE32) addLoader("NRV2D,NRV_TAIL", nullptr);
|
||||
else if (M_IS_LZMA(ph.method)) addLoader("LZMA_ELF00,LZMA_DEC10,LZMA_DEC30", nullptr);
|
||||
else throwBadLoader();
|
||||
if (hasLoaderSection("CFLUSH"))
|
||||
addLoader("CFLUSH");
|
||||
|
||||
addLoader("IDENTSTR,UPX1HEAD", NULL);
|
||||
addLoader("IDENTSTR,UPX1HEAD", nullptr);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user