Lines Matching full:mac

56 #include <sys/mac.h>
69 #include <security/mac/mac_framework.h>
70 #include <security/mac/mac_internal.h>
71 #include <security/mac/mac_policy.h>
72 #include <security/mac/mac_syscalls.h>
74 #ifdef MAC
79 struct mac *mac_p, int follow);
81 struct mac *mac_p, int follow);
91 * Copyin a 'struct mac', including the string pointed to by 'm_string'.
93 * On success (0 returned), fills '*mac', whose associated storage must be freed
98 mac_label_copyin_impl(const void *const u_mac, struct mac *const mac,
112 CP(mac32, *mac, m_buflen);
113 PTRIN_CP(mac32, *mac, m_string);
117 error = copyin(u_mac, mac, sizeof(*mac));
122 error = mac_check_structmac_consistent(mac);
127 buffer = malloc(mac->m_buflen, M_MACTEMP, M_WAITOK);
128 error = copyinstr(mac->m_string, buffer, mac->m_buflen, NULL);
136 *u_string = mac->m_string;
137 mac->m_string = buffer;
142 mac_label_copyin(const struct mac *const u_mac, struct mac *const mac,
145 return (mac_label_copyin_impl(u_mac, mac, u_string, false));
149 free_copied_label(const struct mac *const mac)
151 free(mac->m_string, M_MACTEMP);
157 struct mac *const mac, char **const u_string)
159 return (mac_label_copyin_impl(u_mac, mac, u_string, true));
167 struct mac mac;
172 error = mac_label_copyin(uap->mac_p, &mac, &u_buffer);
190 buffer = malloc(mac.m_buflen, M_MACTEMP, M_WAITOK | M_ZERO);
191 error = mac_cred_externalize_label(tcred->cr_label, mac.m_string,
192 buffer, mac.m_buflen);
199 free_copied_label(&mac);
207 struct mac mac;
210 error = mac_label_copyin(uap->mac_p, &mac, &u_buffer);
214 buffer = malloc(mac.m_buflen, M_MACTEMP, M_WAITOK | M_ZERO);
216 mac.m_string, buffer, mac.m_buflen);
221 free_copied_label(&mac);
234 mac_set_proc_prepare(struct thread *const td, const struct mac *const mac,
246 error = mac_cred_internalize_label(intlabel, mac->m_string);
257 * Actually sets the MAC label on 'newcred'.
265 * error occured under the process lock that obsoletes setting the MAC label).
312 struct mac mac;
315 error = mac_label_copyin(uap->mac_p, &mac, NULL);
319 error = mac_set_proc_prepare(td, &mac, &intlabel);
344 free_copied_label(&mac);
354 struct mac mac;
361 error = mac_label_copyin(uap->mac_p, &mac, &u_buffer);
365 buffer = malloc(mac.m_buflen, M_MACTEMP, M_WAITOK | M_ZERO);
383 error = mac_vnode_externalize_label(intlabel, mac.m_string,
384 buffer, mac.m_buflen);
398 error = mac_pipe_externalize_label(intlabel, mac.m_string,
399 buffer, mac.m_buflen);
413 error = mac_socket_externalize_label(intlabel, mac.m_string,
414 buffer, mac.m_buflen);
427 free_copied_label(&mac);
446 kern___mac_get_path(struct thread *td, const char *path_p, struct mac *mac_p,
452 struct mac mac;
458 error = mac_label_copyin(mac_p, &mac, &u_buffer);
462 buffer = malloc(mac.m_buflen, M_MACTEMP, M_WAITOK | M_ZERO);
470 error = mac_vnode_externalize_label(intlabel, mac.m_string, buffer,
471 mac.m_buflen);
481 free_copied_label(&mac);
495 struct mac mac;
499 error = mac_label_copyin(uap->mac_p, &mac, NULL);
516 error = mac_vnode_internalize_label(intlabel, mac.m_string);
540 error = mac_pipe_internalize_label(intlabel, mac.m_string);
557 error = mac_socket_internalize_label(intlabel, mac.m_string);
572 free_copied_label(&mac);
591 kern___mac_set_path(struct thread *td, const char *path_p, struct mac *mac_p,
597 struct mac mac;
603 error = mac_label_copyin(mac_p, &mac, NULL);
608 error = mac_vnode_internalize_label(intlabel, mac.m_string);
609 free_copied_label(&mac);
667 #else /* !MAC */
739 #endif /* !MAC */