From fef5d90ba630efc47216ffed830e567e0fc9f2f1 Mon Sep 17 00:00:00 2001 From: ocean1 Date: Sun, 13 Nov 2016 23:26:21 -0800 Subject: [PATCH] fix for statically linked PPC binary with no .plt --- cle/backends/metaelf.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cle/backends/metaelf.py b/cle/backends/metaelf.py index 687de6294..94bb6a153 100644 --- a/cle/backends/metaelf.py +++ b/cle/backends/metaelf.py @@ -75,9 +75,10 @@ def _load_plt(self): # right before the resolution stubs. if self.arch.name in ('PPC32',): resolver_stubs = sorted((self.memory.read_addr_at(reloc.addr), name) for name, reloc in self.jmprel.iteritems()) - stubs_table = resolver_stubs[0][0] - 16 * len(resolver_stubs) - for i, (_, name) in enumerate(resolver_stubs): - self._add_plt_stub(name, stubs_table + i*16) + if resolver_stubs: + stubs_table = resolver_stubs[0][0] - 16 * len(resolver_stubs) + for i, (_, name) in enumerate(resolver_stubs): + self._add_plt_stub(name, stubs_table + i*16) if len(self._plt) == len(self.jmprel): # real quick, bail out before shit hits the fan