mirror of
https://github.com/upx/upx
synced 2025-09-28 19:06:07 +08:00
::pack3 to set .p_filesz; also set blocksize to allow giant scripts as input
p_lx_sh.cpp p_lx_sh.h committer: jreiser <jreiser> 1105479043 +0000
This commit is contained in:
parent
3ed786fb5c
commit
59668c5fc1
|
@ -104,7 +104,11 @@ bool PackLinuxI386sh::getShellName(char *buf)
|
||||||
return false;
|
return false;
|
||||||
for (int j = 0; NULL != shname[j]; ++j) {
|
for (int j = 0; NULL != shname[j]; ++j) {
|
||||||
if (0 == strcmp(shname[j], bname + 1)) {
|
if (0 == strcmp(shname[j], bname + 1)) {
|
||||||
return super::canPack();
|
bool const s = super::canPack();
|
||||||
|
if (s) {
|
||||||
|
opt->o_unix.blocksize = blocksize = file_size;
|
||||||
|
}
|
||||||
|
return s;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -139,6 +143,13 @@ PackLinuxI386sh::pack1(OutputFile *fo, Filter &)
|
||||||
generateElfHdr(fo, linux_i386sh_fold, 0x08048000);
|
generateElfHdr(fo, linux_i386sh_fold, 0x08048000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
PackLinuxI386sh::pack3(OutputFile *fo, Filter &ft)
|
||||||
|
{
|
||||||
|
super::pack3(fo,ft);
|
||||||
|
elfout.phdr[0].p_filesz = fo->getBytesWritten();
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
vi:ts=4:et
|
vi:ts=4:et
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -48,6 +48,7 @@ public:
|
||||||
virtual int buildLoader(const Filter *);
|
virtual int buildLoader(const Filter *);
|
||||||
|
|
||||||
virtual void pack1(OutputFile *fo, Filter &ft);
|
virtual void pack1(OutputFile *fo, Filter &ft);
|
||||||
|
virtual void pack3(OutputFile *fo, Filter &ft);
|
||||||
|
|
||||||
virtual bool canPack();
|
virtual bool canPack();
|
||||||
// virtual void unpack(OutputFile *fo) { super::unpack(fo); }
|
// virtual void unpack(OutputFile *fo) { super::unpack(fo); }
|
||||||
|
|
Loading…
Reference in New Issue
Block a user