Skip to content
BSD syscall#389

svc · unix #389

__mac_set_fd

Writes a MAC label to the object referenced by an open file descriptor.

Prototype

int __mac_set_fd(int fd, struct mac *mac_p);

Returns: int

Arguments

NameTypeDirDescription
fdint-
mac_pstruct mac-

Version history

XNU tagmacOS#
xnu-1456.1.26macOS 10.6 Snow Leopard389
xnu-1699.24.8macOS 10.7 Lion389
xnu-2050.18.24macOS 10.8 Mountain Lion389
xnu-2422.115.4macOS 10.9 Mavericks389
xnu-2782.40.9macOS 10.10 Yosemite389
xnu-3247.1.106macOS 10.11 El Capitan389
xnu-3789.1.32macOS 10.12 Sierra389
xnu-4570.1.46macOS 10.13 High Sierra389
xnu-4903.221.2macOS 10.14 Mojave389
xnu-6153.11.26macOS 10.15 Catalina389
xnu-7195.50.7.100.1macOS 11.0 Big Sur389
xnu-8019.41.5macOS 12.0 Monterey389
xnu-8792.41.9macOS 13.0 Ventura389
xnu-10002.1.13macOS 14.0 Sonoma389
xnu-11215.1.10macOS 15.0 Sequoia389
xnu-11417.101.15macOS 15.4 Sequoia389
xnu-12377.1.9macOS 26.0 Tahoe389
xnu-10002.41.9389
xnu-10002.61.3389
xnu-10002.81.5389
xnu-10063.101.15389
xnu-10063.121.3389
xnu-10063.141.1389
xnu-11215.41.3389
xnu-11215.61.5389
xnu-11215.81.4389
xnu-11417.121.6389
xnu-11417.140.69389
xnu-12377.101.15389
xnu-12377.41.6389
xnu-12377.61.12389
xnu-12377.81.4389
xnu-1486.2.11389
xnu-1504.15.3389
xnu-1504.3.12389
xnu-1504.7.4389
xnu-1504.9.17389
xnu-1504.9.26389
xnu-1504.9.37389
xnu-1699.22.73389
xnu-1699.22.81389
xnu-1699.24.23389
xnu-1699.26.8389
xnu-1699.32.7389
xnu-2050.22.13389
xnu-2050.24.15389
xnu-2050.48.11389
xnu-2050.7.9389
xnu-2050.9.2389
xnu-2422.1.72389
xnu-2422.100.13389
xnu-2422.110.17389
xnu-2422.90.20389
xnu-2782.1.97389
xnu-2782.10.72389
xnu-2782.20.48389
xnu-2782.30.5389
xnu-3247.10.11389
xnu-3248.20.55389
xnu-3248.30.4389
xnu-3248.40.184389
xnu-3248.50.21389
xnu-3248.60.10389
xnu-3789.21.4389
xnu-3789.31.2389
xnu-3789.41.3389
xnu-3789.51.2389
xnu-3789.60.24389
xnu-3789.70.16389
xnu-4570.20.62389
xnu-4570.31.3389
xnu-4570.41.2389
xnu-4570.51.1389
xnu-4570.61.1389
xnu-4570.71.2389
xnu-4903.231.4389
xnu-4903.241.1389
xnu-4903.270.47389
xnu-6153.101.6389
xnu-6153.121.1389
xnu-6153.141.1389
xnu-6153.41.3389
xnu-6153.61.1389
xnu-6153.81.5389
xnu-7195.101.1389
xnu-7195.121.3389
xnu-7195.141.2389
xnu-7195.60.75389
xnu-7195.81.3389
xnu-8019.61.5389
xnu-8019.80.24389
xnu-8020.101.4389
xnu-8020.121.3389
xnu-8020.140.41389
xnu-8792.61.2389
xnu-8792.81.2389
xnu-8796.101.5389
xnu-8796.121.2389
xnu-8796.141.3389

Notes

Counterpart of __mac_get_fd. The kernel resolves the descriptor, looks up each registered policy that owns one of the label elements, and dispatches to its label setter. Policies typically refuse the update unless the caller has the corresponding capability (root, entitlement, or sandbox permission).

Detection

Triggers mpo_vnode_check_label_update before commit and mpo_vnode_label_update_extattr after. Label writes on system-owned files are a strong tampering signal.

Related APIs

__mac_get_fd__mac_set_file__mac_set_linkmac_set_fd