diff -r de8733706a06 -r f20a798cdf7d Flask.thy --- a/Flask.thy Thu Jun 06 14:50:52 2013 +0800 +++ b/Flask.thy Sat Jun 08 09:59:33 2013 +0800 @@ -475,7 +475,7 @@ definition info_flow_shm :: "t_state \ t_process \ t_process \ bool" where - "info_flow_shm \ from to \ (from = to) \ (\ h \ current_shms \. \ toflag. + "info_flow_shm \ from to \ (from = to \ from \ current_procs s) \ (\ h \ current_shms \. \ toflag. (((from, SHM_RDWR) \ procs_of_shm \ h) \ ((to, toflag) \ procs_of_shm \ h)))" fun current_msgqs :: "t_state \ t_msg set" @@ -1428,14 +1428,14 @@ \ O_proc p' \ tainted (Clone p p' fds shms # s)" | t_execve: "\O_file f \ tainted s; valid (Execve p f fds # s)\ \ O_proc p \ tainted (Execve p f fds # s)" -| t_ptrace: "\O_proc p \ tainted s; valid (Ptrace p p' # s); info_flow_shm s p' p''; p'' \ current_procs s\ +| t_ptrace: "\O_proc p \ tainted s; valid (Ptrace p p' # s); info_flow_shm s p' p''\ \ O_proc p'' \ tainted (Ptrace p p' # s)" -| t_ptrace':"\O_proc p' \ tainted s; valid (Ptrace p p' # s); info_flow_shm s p p''; p'' \ current_procs s\ +| t_ptrace':"\O_proc p' \ tainted s; valid (Ptrace p p' # s); info_flow_shm s p p''\ \ O_proc p'' \ tainted (Ptrace p p' # s)" | t_cfile: "\O_proc p \ tainted s; valid (Open p f flags fd (Some inum) # s)\ \ O_file f \ tainted (Open p f flags fd (Some inum) # s)" | t_read: "\O_file f \ tainted s; valid (ReadFile p fd # s); - file_of_proc_fd s p fd = Some f; info_flow_shm s p p'; p' \ current_procs s\ + file_of_proc_fd s p fd = Some f; info_flow_shm s p p'\ \ O_proc p' \ tainted (ReadFile p fd # s)" | t_write: "\O_proc p \ tainted s; valid (WriteFile p fd # s); file_of_proc_fd s p fd = Some f; has_same_inode s f f'\ @@ -1456,7 +1456,7 @@ *) | t_sendmsg:"\O_proc p \ tainted s; valid (SendMsg p q m # s)\ \ O_msg q m \ tainted (SendMsg p q m # s)" -| t_recvmsg:"\O_msg q m \ tainted s; valid (RecvMsg p q m # s); info_flow_shm s p p'; p' \ current_procs s\ +| t_recvmsg:"\O_msg q m \ tainted s; valid (RecvMsg p q m # s); info_flow_shm s p p'\ \ O_proc p' \ tainted (RecvMsg p q m # s)" | t_remain: "\obj \ tainted s; valid (e # s); alive (e # s) obj\ \ obj \ tainted (e # s)"