有効なラベルとは、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