diff options
Diffstat (limited to 'linker/linker.cpp')
-rw-r--r-- | linker/linker.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/linker/linker.cpp b/linker/linker.cpp index 7bc3529a0..9bb655792 100644 --- a/linker/linker.cpp +++ b/linker/linker.cpp @@ -1222,12 +1222,14 @@ static bool find_loaded_library_by_inode(android_namespace_t* ns, off64_t file_offset, bool search_linked_namespaces, soinfo** candidate) { + if (file_stat.st_dev == 0 || file_stat.st_ino == 0) { + *candidate = nullptr; + return false; + } auto predicate = [&](soinfo* si) { - return si->get_st_dev() != 0 && - si->get_st_ino() != 0 && + return si->get_st_ino() == file_stat.st_ino && si->get_st_dev() == file_stat.st_dev && - si->get_st_ino() == file_stat.st_ino && si->get_file_offset() == file_offset; }; |