Sciweavers

OOPSLA
2015
Springer

Reasoning about the POSIX file system: local update and global pathnames

8 years 4 days ago
Reasoning about the POSIX file system: local update and global pathnames
We introduce a program logic for specifying a core sequential subset of the POSIX file system and for reasoning abstractly about client programs working with the file system. The challenge is to reason about the combination of local directory update and global pathname traversal (including ’..’ and symbolic links) which may overlap the directories being updated. Existing reasoning techniques are either based on first-order logic and do not scale, or on separation logic and can only handle linear pathnames (no ’..’ or symbolic links). We introduce fusion logic for reasoning about local update and global pathname traversal, introducing a novel effect frame rule to propagate the effect of a local update on overlapping pathnames. We apply our reasoning to the standard recursive remove utility (rm -r), discovering bugs in well-known implementations. Categories and Subject Descriptors F.3.1 [Specifying and Verifying and Reasoning about Programs]: Logics of programs Keywords POSIX...
Gian Ntzik, Philippa Gardner
Added 16 Apr 2016
Updated 16 Apr 2016
Type Journal
Year 2015
Where OOPSLA
Authors Gian Ntzik, Philippa Gardner
Comments (0)