...
- Lock any non-NULL argument. The caller must make sure that if he is passing
- in two directories, one is not ancestor of the other
Not directly relevant to this change but is the 'not an ancestor' check actually robust?
I found a condition in which the kernel 'pwd' code (which follows the inode chain) failed to stop at the base of a chroot.
I suspect that the ancestor check would fail the same way.
IIRC the problematic code used unshare() to 'escape' from a network natespace. If it was inside a chroot (that wasn't on a mount point) there ware two copies of the 'chroot /' inode and the match failed.
I might be able to find the test case.
David
- Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)