@@ -119,27 +119,31 @@ def test_MACHO(self):
119
119
arch = get_arch (cc , source , executable )
120
120
121
121
if arch == lief .ARCHITECTURES .X86 :
122
- self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-no_pie' ,'-Wl,-flat_namespace' ,'-Wl,-allow_stack_execute' ,'-fno-stack-protector' ]),
122
+ self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-no_pie' ,'-Wl,-flat_namespace' ,'-Wl,-allow_stack_execute' ,'-fno-stack-protector' , '-Wl,-no_fixup_chains' ]),
123
+ (1 , executable + ': failed NOUNDEFS Canary FIXUP_CHAINS PIE NX CONTROL_FLOW' ))
124
+ self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-no_pie' ,'-Wl,-flat_namespace' ,'-Wl,-allow_stack_execute' ,'-fno-stack-protector' , '-Wl,-fixup_chains' ]),
123
125
(1 , executable + ': failed NOUNDEFS Canary PIE NX CONTROL_FLOW' ))
124
- self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-no_pie' ,'-Wl,-flat_namespace' ,'-Wl,-allow_stack_execute' ,'-fstack-protector-all' ]),
126
+ self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-no_pie' ,'-Wl,-flat_namespace' ,'-Wl,-allow_stack_execute' ,'-fstack-protector-all' , '-Wl,-fixup_chains' ]),
125
127
(1 , executable + ': failed NOUNDEFS PIE NX CONTROL_FLOW' ))
126
- self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-no_pie' ,'-Wl,-flat_namespace' ,'-fstack-protector-all' ]),
128
+ self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-no_pie' ,'-Wl,-flat_namespace' ,'-fstack-protector-all' , '-Wl,-fixup_chains' ]),
127
129
(1 , executable + ': failed NOUNDEFS PIE CONTROL_FLOW' ))
128
- self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-no_pie' ,'-fstack-protector-all' ]),
130
+ self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-no_pie' ,'-fstack-protector-all' , '-Wl,-fixup_chains' ]),
129
131
(1 , executable + ': failed PIE CONTROL_FLOW' ))
130
- self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-no_pie' ,'-Wl,-bind_at_load' ,'-fstack-protector-all' ]),
132
+ self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-no_pie' ,'-Wl,-bind_at_load' ,'-fstack-protector-all' , '-Wl,-fixup_chains' ]),
131
133
(1 , executable + ': failed PIE CONTROL_FLOW' ))
132
- self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-no_pie' ,'-Wl,-bind_at_load' ,'-fstack-protector-all' , '-fcf-protection=full' ]),
134
+ self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-no_pie' ,'-Wl,-bind_at_load' ,'-fstack-protector-all' , '-fcf-protection=full' , '-Wl,-fixup_chains' ]),
133
135
(1 , executable + ': failed PIE' ))
134
- self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-pie' ,'-Wl,-bind_at_load' ,'-fstack-protector-all' , '-fcf-protection=full' ]),
136
+ self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-pie' ,'-Wl,-bind_at_load' ,'-fstack-protector-all' , '-fcf-protection=full' , '-Wl,-fixup_chains' ]),
135
137
(0 , '' ))
136
138
else :
137
139
# arm64 darwin doesn't support non-PIE binaries, control flow or executable stacks
138
- self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-flat_namespace' ,'-fno-stack-protector' ]),
140
+ self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-flat_namespace' ,'-fno-stack-protector' , '-Wl,-no_fixup_chains' ]),
141
+ (1 , executable + ': failed NOUNDEFS Canary FIXUP_CHAINS' ))
142
+ self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-flat_namespace' ,'-fno-stack-protector' , '-Wl,-fixup_chains' ]),
139
143
(1 , executable + ': failed NOUNDEFS Canary' ))
140
- self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-flat_namespace' ,'-fstack-protector-all' ]),
144
+ self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-flat_namespace' ,'-fstack-protector-all' , '-Wl,-fixup_chains' ]),
141
145
(1 , executable + ': failed NOUNDEFS' ))
142
- self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-bind_at_load' ,'-fstack-protector-all' ]),
146
+ self .assertEqual (call_security_check (cc , source , executable , ['-Wl,-bind_at_load' ,'-fstack-protector-all' , '-Wl,-fixup_chains' ]),
143
147
(0 , '' ))
144
148
145
149
0 commit comments