Merge pull request #9859 from tausbn/python-fix-another-bad-value-transfer-join

This commit is contained in:
yoff
2022-08-17 20:47:00 +02:00
committed by GitHub

View File

@@ -1271,12 +1271,21 @@ module InterProceduralPointsTo {
)
)
or
non_escaping_global_transfer(pred_var, pred_context, succ_def, succ_context)
}
pragma[nomagic]
private predicate non_escaping_global_transfer(
EssaVariable pred_var, PointsToContext pred_context, ScopeEntryDefinition succ_def,
PointsToContext succ_context
) {
exists(NonEscapingGlobalVariable var |
var = pred_var.getSourceVariable() and
var = succ_def.getSourceVariable() and
pred_var.getAUse() = succ_context.getRootCall() and
pred_context.isImport() and
succ_context.appliesToScope(succ_def.getScope())
pragma[only_bind_into](succ_context)
.appliesToScope(pragma[only_bind_into](succ_def).getScope())
)
}