有効なラベルとは、label_encodings ファイルに定義されたラベルのことです。bslvalid(3) ルーチンを使用して、機密ラベルが有効であるかを検査できます。呼び出し元プロセスの機密ラベルは、検査される機密ラベルよりも優位でなければなりません。そうでない場合にこの処理を実行するには、呼び出し元プロセスの有効セットに sys_trans_label 特権を必要とします。
#include <tsol/label.h>
main()
{
int retval, error;
bslabel_t senslabel;
char *string = "CONFIDENTIAL", *string1 = "UNCLASSIFIED";
retval = stobsl(string, &senslabel, NEW_LABEL, &error);
retval = bslvalid(&senslabel);
printf("Valid Sensitivity Label? = %d¥n", retval);
}
printf 文によって、次のように出力されます。1 は、ラベルが有効であることを示します。-1 は、label_encodings ファイルがアクセス可能でないことを示します。0 は、ラベルが有効でないか、プロセスの機密ラベルが認可上限より優位でなく、プロセスの有効セット内に sys_trans_label 特権がないことを示します。
Valid Sensitivity Label? = 1