Go to main content

man pages section 2: System Calls

Exit Print View

Updated: Thursday, June 13, 2019
 
 

msgsetlabel (2)

Name

msggetlabel, msgsetlabel - labeling interfaces for IPC messages

Synopsis

#include <sys/msg.h>
int msggetlabel(int msgid, m_label_t *label);
int msgsetlabel(int msgid, m_label_t *label);

Description

The msggetlabel() and msgsetlabel() functions get and set the labels of IPC messages. Labels provide another access control mechanism in addition to the permission bits that are managed via msgctl(2). In order to access the message the current process clearance must dominate the label associated with msgid.

The default label for all messages is ADMIN_LOW, which is dominated by every process clearance. The access policy only becomes effective when a new label is assigned using the msgsetlabel(2).

To set a label the current process clearance must dominate both the new label and the current label of msgid. In addition, the effective user ID must be equal to the value of msg_perm.cuid or msg_perm.uid in the data structure associated with msgid.

The msggetlabel() and msgsetlabel() functions are not supported when Trusted Extensions is enabled.

Return Values

Upon successful completion, 0 is returned. Otherwise, -1 is returned and errno is set to indicate the error.

Errors

The msggetlabel() and msgsetlabel() functions will fail if:

EACCES

The existing msgid label is not dominated by the process clearance.

EFAULT

The label argument points to an illegal address.

EINVAL

The msgid argument is not a IPC message. identifier or the specified label is not dominated by the process clearance.

ENOTSUP

The msggetlabel() and msgsetlabel() functions cannot be used when Trusted Extensions is enabled.

EPERM

The function is msggetlabel() and the effective user ID of the calling process is not equal to the value of msg_perm.cuid or msg_perm.uid in the data structure associated with msgid, and {PRIV_IPC_OWNER} is not asserted in the effective set of the calling process.

Attributes

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Committed
MT-Level
MT-Safe

See Also

ipcs(1), msgctl(2), msgget(2), attributes(7), clearance(7). labels(7), privileges(7)