Obtaining a Process Label
This code example shows how to obtain and print the sensitivity label
of the zone in which this program is run.
#include <tsol/label.h>
main()
{
m_label_t* pl;
char *plabel = NULL;
int retval;
/* allocate an m_label_t for the process sensitivity label */
pl = m_label_alloc(MAC_LABEL);
/* get the process sensitivity label */
if ((retval = getplabel(pl)) != 0) {
perror("getplabel(pl) failed");
exit(1);
}
/* Translate the process sensitivity label to text and print */
if ((retval = label_to_str(pl, &plabel, M_LABEL, LONG_NAMES)) != 0) {
perror("label_to_str(M_LABEL, LONG_NAMES) failed");
exit(1);
}
printf("Process label = %s\n", plabel);
/* free allocated memory */
m_label_free(pl);
free(plabel);
}
The printf() statement prints the sensitivity label. The sensitivity label is inherited
from the zone in which the program is run. The following shows
the text output of this example program:
Process label = ADMIN_LOW
The text output depends on the specifications in the label_encodings file.