名前 | 形式 | 機能説明 | 戻り値 | エラー | 関連項目
#include <tsol/label.h>int setcmwplabel(bclabel_t *label_p, setting_flag_t flag);
setcmwplabel() は、呼び出しを行っているプロセスの情報ラベル、機密ラベル、または CMW ラベルを設定します。flag 引数は、設定するラベルを表します。
プロセスの CMW ラベル全体を設定します。
機密ラベルだけを設定します。
setcmwplabel() は、label_p が指す CMW ラベルが正しくフォーマットされ、結果のラベルが必要な要件を満たすかどうかを検査します。この要件を満たすには、認可上限がプロセスの機密ラベルより優位になければなりません。
flag により設定が CMW ラベルの単一部分だけに限られる場合、setcmwplabel() は label_p 内の他の値を無視します。機密ラベルとして指定された値がプロセスの現在の値と合致しない場合は、呼び出し元プロセスの有効な特権セットに PRIV_PROC_SETSL
が含まれていなければなりません。
次の条件のどれかが該当する場合、setcmwplabel() は異常終了します。プロセスの CMW ラベルは設定されません。
プロセスが /proc ファイルシステムからアクセスされているが (プロセスが追跡かデバッグされている場合にこのような状況になることがある)、 setcmwplabel() の呼び出し元に PRIV_PROC_TRANQUIL
特権がありません。
label_p 引数が無効なアドレスを指しています。
label_p 引数が無効なアドレスを指しています。
label_p 引数が指すラベルの形式が正しくありません。
この label_p 引数と flag 引数では、おそらく、認可上限がプロセスの機密ラベルより優位になることはありません。
呼び出し元プロセスには、flag で指定された機密ラベルを設定するのに必要な PRIV_PROC_SETSL
特権がありません。