Skip to content

Permission incompletenesses #16

Open
@viper-admin

Description

@viper-admin

Created by @mschwerhoff on 2013-04-15 07:14
Last updated on 2017-09-23 13:41

The separation of the symbolic state into a heap and path conditions entails permission-related incompletenesses of various kinds and degrees. Silicon's current implementation several strategies to overcome them, for example

  • heap compression if "assert true" is executed
  • heap compression after new chunks are produced
  • definitely-not-aliases information is computed from the heap when heaps are compressed
  • chunks are first looked-up by a syntactic match, if this fails, by a semantic match (asking Z3)

However, several incompletenesses still exist, as illustrated by this test file (tip version).

My suggestion is to define an interface for heap lookups and to implement different heap lookup strategies that will (or can) be used a certain order. Questions to keep in mind are:

  • Can the heap stay as it is, that is, without much business logic?
  • Can chunks still be created manually or should the heap provide methods such as gainAccess, losePermissions or withChunk?
  • Can we hold on to the invariant that if a chunk exists, then its permissions are definitely positive?

Attachments:

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions