Oracle® Solaris 11.2 リンカーとライブラリガイド

印刷ビューの終了

更新: 2014 年 7 月
 
 

監査インタフェースの対話

監査ルーチンには 1 つまたは複数の cookie が設定されます。cookie とは、個々の動的オブジェクトを記述するデータ項目です。最初の cookie が la_objopen() ルーチンに設定されるのは、動的オブジェクトが最初に読み込まれたときです。この cookie は、読み込まれた動的オブジェクトの関連した Link_map に対するポインタです。しかし、la_objopen() ルーチンは自由に別の cookie を割り当てたり、実行時リンカーに返したりできます。このメカニズムにより、監査プログラムは各動的オブジェクトとともに独自のデータを保持し、後続のすべての監査ルーチン呼び出しでこのデータを受け取れます。

「rtld-監査」インタフェースを使用すると、複数の監査ライブラリを指定することができます。この場合、ある監査プログラムからの戻り情報は次の監査プログラムの同じ監査ルーチンに渡されます。同様に、ある監査プログラムが作成した cookie は、次の監査プログラムに渡されます。ほかの監査ライブラリとの共存が想定される監査ライブラリを設計する際には注意が必要です。安全に実行するために、実行時リンカーによって通常返される結合または cookie を変更しないでください。これらのデータを変更すると、後に続く監査ライブラリで予期しない結果が生じる場合があります。変更する場合、結合または cookie の情報を変更しても監査プログラムが安全に連携できるように、監査プログラムを設計する必要があります。