Date: Thu, 7 Jul 2005 18:15:58 GMT From: Andrew Reisse <areisse@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 79715 for review Message-ID: <200507071815.j67IFwMQ081714@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=79715 Change 79715 by areisse@areisse_ibook on 2005/07/07 18:15:52 Fix a mis-merge. Remove binary package steps from the makefile as it is not supported yet. Add the new entry points (and documentation) to mac_policy.h. Affected files ... .. //depot/projects/trustedbsd/sedarwin7/src/Makefile#3 edit .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/sys/mac_policy.h#9 edit .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/osfmk/ipc/ipc_kmsg.c#4 edit Differences ... ==== //depot/projects/trustedbsd/sedarwin7/src/Makefile#3 (text+ko) ==== @@ -19,8 +19,7 @@ cd release && make dmg clean: - rm *.dmg - cd release && make packageclean + rm -f *.dmg cd release && make distclean cd darwin && make clean for i in $(BUILD_MODULES); do cd $$i && make clean && cd ..; done ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/sys/mac_policy.h#9 (text+ko) ==== @@ -150,6 +150,7 @@ @param p Calling process @param call Policy-specific syscall number @param arg Pointer to syscall arguments + @param retval Pointer to store actual return value in This entry point provides a policy-multiplexed system call so that policies may provide additional services to user processes without @@ -175,7 +176,8 @@ typedef int mpo_syscall_t( struct proc *p, int call, - void *arg + void *arg, + int *retval ); /*@}*/ @@ -1703,6 +1705,30 @@ struct ucred *cred, struct label *newlabel ); + +/** + @brief Request label for new (userspace) object + @param subj Subject label + @param obj Parent or existing object label + @param serv Name of service + @param out Computed label + + Ask the loaded policies to compute a label based on the two input labels + and the service name. There is currently no standard for the service name, + or even what the input labels represent (Subject and parent object are only + a suggestion). If successful, the computed label is stored in out. All labels + must be port (or task) labels. The userspace interfaces to this entry point + allow label handles (ports) to be provided. + + @return 0 on success, or an errno value for failure. +*/ + +typedef int mpo_request_object_label_t( + struct label *subj, + struct label *obj, + const char *serv, + struct label *out +); /*@}*/ /** @@ -1994,6 +2020,30 @@ ); /** + @brief Compute access control check for a Mach message-based service + @param task Sender's task label + @param port Destination port label + @param msgid Message id + + Access control computation for message-based services. This entry point + computes permission to the service requested by the specified port and message + id, for example a single MiG server routine, and is unrelated to the access + check for sending messages to ports (but that check must succeed for the + message to be sent to the destination). The result of this access computation + is stored in the message trailer field msgh_ad (only if requested by the + recipient); it does not actually inhibit the message from being sent or + received. + + @return 0 for access granted, nonzero for access denied. +*/ + +typedef int mpo_check_ipc_method_t( + struct label *task, + struct label *port, + int msgid +); + +/** @brief Access control check for POSIX semaphore create @param cred Subject credential @param name String name of the semaphore @@ -3934,6 +3984,8 @@ mpo_create_proc1_t *mpo_create_proc1; mpo_relabel_cred_t *mpo_relabel_cred; + mpo_request_object_label_t *mpo_request_object_label; + /* * Access control checks. */ @@ -3950,6 +4002,7 @@ mpo_check_fcntl_t *mpo_check_fcntl; mpo_check_get_fd_t *mpo_check_get_fd; mpo_check_ioctl_t *mpo_check_ioctl; + mpo_check_ipc_method_t *mpo_check_ipc_method; mpo_check_posix_sem_create_t *mpo_check_posix_sem_create; mpo_check_posix_sem_open_t *mpo_check_posix_sem_open; mpo_check_posix_sem_post_t *mpo_check_posix_sem_post; ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/osfmk/ipc/ipc_kmsg.c#4 (text+ko) ==== @@ -726,6 +726,7 @@ kmsg->ikm_sender = cur->label; } else + trailer->msgh_labels.sender = 0; #else trailer->msgh_labels.sender = 0; #endif
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200507071815.j67IFwMQ081714>