Merge pull request #1460 from woodruffw/audit-ignore-weak-linkage

os/mac: MachO.dynamically_linked_libraries filtering.
This commit is contained in:
Mike McQuaid 2016-11-09 11:15:23 +00:00 committed by GitHub
commit 1fb7d0fa57
3 changed files with 10 additions and 5 deletions

View File

@ -23,7 +23,10 @@ class LinkageChecker
@keg.find do |file|
next if file.symlink? || file.directory?
next unless file.dylib? || file.mach_o_executable? || file.mach_o_bundle?
file.dynamically_linked_libraries.each do |dylib|
# weakly loaded dylibs may not actually exist on disk, so skip them
# when checking for broken linkage
file.dynamically_linked_libraries(except: :LC_LOAD_WEAK_DYLIB).each do |dylib|
@reverse_links[dylib] << file
if dylib.start_with? "@"
@variable_dylibs << dylib

View File

@ -1,7 +1,7 @@
require "vendor/macho/macho"
require "os/mac/architecture_list"
module MachO
module MachOShim
# @private
def macho
@macho ||= begin
@ -51,8 +51,10 @@ module MachO
end
end
def dynamically_linked_libraries
macho.linked_dylibs
def dynamically_linked_libraries(except: :none)
lcs = macho.dylib_load_commands.reject { |lc| lc.type == except }
lcs.map(&:name).map(&:to_s)
end
def dylib_id

View File

@ -1,5 +1,5 @@
require "os/mac/mach"
class Pathname
include MachO
include MachOShim
end