Do not brev() strings in stub for PackLinuxEl32armBe.
This commit is contained in:
parent
dcc704a357
commit
4fc0a32572
@ -18,7 +18,8 @@ ifeq ($(CXX),)
|
|||||||
CXX = g++
|
CXX = g++
|
||||||
endif
|
endif
|
||||||
ifeq ($(CXX),g++)
|
ifeq ($(CXX),g++)
|
||||||
CXXFLAGS += -O2 -MMD
|
#CXXFLAGS += -O2 -MMD
|
||||||
|
CXXFLAGS += -g -MMD
|
||||||
CXXFLAGS += -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werror
|
CXXFLAGS += -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werror
|
||||||
endif
|
endif
|
||||||
CPPFLAGS += $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)
|
CPPFLAGS += $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)
|
||||||
|
|||||||
@ -611,7 +611,24 @@ PackLinuxElf32armBe::buildLoader(const Filter *ft) // FIXME
|
|||||||
unsigned const sz_fold = sizeof(linux_elf32arm_fold);
|
unsigned const sz_fold = sizeof(linux_elf32arm_fold);
|
||||||
MemBuffer brev_loader(sz_loader);
|
MemBuffer brev_loader(sz_loader);
|
||||||
MemBuffer brev_fold (sz_fold);
|
MemBuffer brev_fold (sz_fold);
|
||||||
brev(brev_loader, linux_elf32arm_loader, sz_loader);
|
|
||||||
|
// linux_elf32arm_loader[] is all instructions, except for two strings
|
||||||
|
// at the end: the copyright message, and the SELinux message.
|
||||||
|
// The copyright message begins and ends with '\n', and the SELinux
|
||||||
|
// message ends with '\n'. So copy back to the third '\n' from the end,
|
||||||
|
// and apply brev() only before that point.
|
||||||
|
int nl = 0;
|
||||||
|
int j;
|
||||||
|
for (j= sz_loader; --j>=0; ) {
|
||||||
|
unsigned char const c = linux_elf32arm_loader[j];
|
||||||
|
brev_loader[j] = c;
|
||||||
|
if ('\n'==c) {
|
||||||
|
if (3==++nl) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
brev(brev_loader, linux_elf32arm_loader, j);
|
||||||
brev(brev_fold, linux_elf32arm_fold, sz_fold);
|
brev(brev_fold, linux_elf32arm_fold, sz_fold);
|
||||||
ehdr_bele((Elf_BE32_Ehdr *)brev_fold.getVoidPtr(), (Elf_LE32_Ehdr const *)linux_elf32arm_fold);
|
ehdr_bele((Elf_BE32_Ehdr *)brev_fold.getVoidPtr(), (Elf_LE32_Ehdr const *)linux_elf32arm_fold);
|
||||||
return buildLinuxLoader(brev_loader, sz_loader, brev_fold, sz_fold, ft);
|
return buildLinuxLoader(brev_loader, sz_loader, brev_fold, sz_fold, ft);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user