Assume task A is the chief of task B, which is the chief of task C, which is the chief of task D. ;-)
* Now, D does an ipc call to A. A successfully receives the message from D via the chiefs (C and B).
* Now when A replies to this, the message first gets intercepted by B.
* B sends a deceiting ipc to D with A as the virtual sender. This gets intercepted by C.
* C sends a deceiting ipc to D with A as the virtual sender. This step fails (?!) due to direction preservation not holding. That is when C checks nchief on A it returns L4_NC_OUTER_CLAN, and nchief on D returns L4_NC_SAME_CLAN, which is not equal, and therefore not direction preserving.
Have I got this scenario correct? Assuming that each cheif can obtain the virtual sender as part of it's ipc api.
Cheers,
Daniel