summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Aksenov <a.aksenov@samsung.com>2017-06-14 14:34:08 +0300
committerAlexander Aksenov <a.aksenov@samsung.com>2017-06-14 11:47:34 +0000
commitaf294ed89f9109b35f3b367f0f9620bcd93c91e5 (patch)
tree40f8f276865e3b521304f830f5aed8ce02df48fc
parent0a90d120909b771a8f573b6873422b4d5506b375 (diff)
downloadswap-probe-tizen_3.0_dev.tar.gz
swap-probe-tizen_3.0_dev.tar.bz2
swap-probe-tizen_3.0_dev.zip
Fix GOT double patchingtizen_3.0_dev
Now if entry in GOT points into SWAP libraries, it won't be patched again. Change-Id: I0659dd820a89f35694ab8f7108060a2f3e1085d0 Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
-rw-r--r--helper/got_patching.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/helper/got_patching.c b/helper/got_patching.c
index 0650451..6cd5ad6 100644
--- a/helper/got_patching.c
+++ b/helper/got_patching.c
@@ -122,6 +122,18 @@ static void *_get_orig_on_demand(unsigned long addr)
if (ret == 0)
return NULL;
+ if (sym_info.dli_saddr)
+ return NULL;
+
+ if (!strcmp(probelib_main, sym_info.dli_fname) ||
+ !strcmp(probelib_event, sym_info.dli_fname) ||
+ !strcmp(probelib_capi, sym_info.dli_fname) ||
+ !strcmp(probelib_graphics, sym_info.dli_fname) ||
+ !strcmp(probelib_screenshot, sym_info.dli_fname) ||
+ !strcmp(probelib_uihv, sym_info.dli_fname) ||
+ !strcmp(probelib_lsan, sym_info.dli_fname))
+ return NULL;
+
return sym_info.dli_saddr;
}