mirror of
https://github.com/upx/upx
synced 2025-09-28 19:06:07 +08:00
Added ElfLinker::addLoaderVA().
This commit is contained in:
parent
cfad7c8356
commit
bdd0daaf6f
|
@ -439,6 +439,23 @@ int ElfLinker::addLoader(const char *sname)
|
|||
return outputlen;
|
||||
}
|
||||
|
||||
void ElfLinker::addLoader(const char *s, va_list ap)
|
||||
{
|
||||
while (s != NULL)
|
||||
{
|
||||
addLoader(s);
|
||||
s = va_arg(ap, const char *);
|
||||
}
|
||||
}
|
||||
|
||||
void __acc_cdecl_va ElfLinker::addLoaderVA(const char *s, ...)
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap, s);
|
||||
addLoader(s, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
int ElfLinker::getSection(const char *sname, int *slen) const
|
||||
{
|
||||
const Section *section = findSection(sname);
|
||||
|
|
|
@ -83,6 +83,12 @@ public:
|
|||
virtual void init(const void *pdata, int plen);
|
||||
//virtual void setLoaderAlignOffset(int phase);
|
||||
virtual int addLoader(const char *sname);
|
||||
void addLoader(const char *s, va_list ap);
|
||||
#if 1 && (ACC_CC_GNUC >= 0x040100)
|
||||
void __acc_cdecl_va addLoaderVA(const char *s, ...) __attribute__((__sentinel__));
|
||||
#else
|
||||
void __acc_cdecl_va addLoaderVA(const char *s, ...);
|
||||
#endif
|
||||
virtual Section *addSection(const char *sname, const void *sdata, int slen, unsigned p2align);
|
||||
virtual int getSection(const char *sname, int *slen=NULL) const;
|
||||
virtual int getSectionSize(const char *sname) const;
|
||||
|
|
|
@ -1082,14 +1082,8 @@ void Packer::addLoader(C a, C b, C c, C d, C e, C f, C g, C h, C i, C j)
|
|||
void __acc_cdecl_va Packer::addLoaderVA(const char *s, ...)
|
||||
{
|
||||
va_list ap;
|
||||
const char *t = s;
|
||||
|
||||
va_start(ap, s);
|
||||
while (t != NULL)
|
||||
{
|
||||
linker->addLoader(t);
|
||||
t = va_arg(ap, const char *);
|
||||
}
|
||||
linker->addLoader(s, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user