DOI: 10.1007/978-3-540-69166-2_5
|View full text |Cite
|
Sign up to set email alerts
|

Pointer Analysis, Conditional Soundness, and Proving the Absence of Errors

Abstract: Abstract. It is well known that the use of points-to information can substantially improve the accuracy of a static program analysis. Commonly used algorithms for computing points-to information are known to be sound only for memory-safe programs. Thus, it appears problematic to utilize points-to information to verify the memory safety property without giving up soundness. We show that a sound combination is possible, even if the points-to information is computed separately and only conditionally sound. This r… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
6
0

Publication Types

Select...
4
2
1

Relationship

0
7

Authors

Journals

citations
Cited by 10 publications
(6 citation statements)
references
References 24 publications
0
6
0
Order By: Relevance
“…Therefore, when performing a points-to analysis, we can safely assume pointer arithmetic does not make a pointer go outside of a block. This assumption of memory-safe executions is also in previous work of formalizing points-to analysis [14], [42].…”
Section: A the Block Memory Modelmentioning
confidence: 84%
“…Therefore, when performing a points-to analysis, we can safely assume pointer arithmetic does not make a pointer go outside of a block. This assumption of memory-safe executions is also in previous work of formalizing points-to analysis [14], [42].…”
Section: A the Block Memory Modelmentioning
confidence: 84%
“…Conditional static analysis explores only those the permitted states are described by a condition θ expressed as a logical formula. the condition θ is either determined from the analysis design [42], [43], where θ is applicable to all program states, or determined during program analysis execution [44], where θ is composed of the conditions assumed to hold for a certain set of states. Elena Sherman automatic generate the condition θ to decompose the program's state space into multiple partitions based on the program's control flow graph, and each partition corresponds to a set of paths expressed as a set of CFG branches [45].…”
Section: Conditional Static Analysismentioning
confidence: 99%
“…Another approach aims to improve the scalability of precise analysis by permitting the analysis to explore only those program states for which it is adequately precise, i.e., able to provide definitive result. In the literature [5][6][7] this approach is called conditional static analysis (CSA) since the permitted states are described by a condition θ expressed as a logical formula. In such a framework an analysis verifies a program under some assumptions, i.e., there are no null pointer exceptions or a pre-condition on input values is assumed to hold.…”
Section: Introductionmentioning
confidence: 99%
“…Next, another analysis attempts to prove these assumptions by showing that the states, which do not satisfy θ are either not reachable or do not lead to property violations. In prior work the condition θ is either determined from the analysis design [5,6], where θ is applicable to all program states, or determined during program analysis execution [7], where θ is composed of the conditions assumed to hold for a certain set of states.…”
Section: Introductionmentioning
confidence: 99%