diff -r 570f90f175ee -r 9b42765ce554 Flask.thy --- a/Flask.thy Tue Jun 04 15:37:49 2013 +0800 +++ b/Flask.thy Tue Jun 04 15:51:02 2013 +0800 @@ -476,7 +476,7 @@ definition info_flow_shm :: "t_state \ t_process \ t_process \ bool" where "info_flow_shm \ from to \ (from = to) \ (\ h \ current_shms \. \ toflag. - (((from, SHM_RDWR) \ procs_of_shm \ h) \ ((to, toflag) \ procs_of_shm \ h)))" + (((from, SHM_RDWR) \ procs_of_shm \ h) \ ((to, toflag) \ procs_of_shm \ h)))" fun current_msgqs :: "t_state \ t_msg set" where @@ -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''\ +| t_ptrace: "\O_proc p \ tainted s; valid (Ptrace p p' # s); info_flow_shm s p' p''; p'' \ current_procs s\ \ 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''\ +| t_ptrace':"\O_proc p' \ tainted s; valid (Ptrace p p' # s); info_flow_shm s p p''; p'' \ current_procs s\ \ 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'\ + file_of_proc_fd s p fd = Some f; info_flow_shm s p p'; p' \ current_procs s\ \ 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'\ +| t_recvmsg:"\O_msg q m \ tainted s; valid (RecvMsg p q m # s); info_flow_shm s p p'; p' \ current_procs s\ \ 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)"