OpenBSD 6.5 Still allows readlink() on INSPECT OpenBSD's realpath() is implemented in userland -traverses the path and calls readlink() on every path component. A problem with unveil. If a program wants to: resolved = realpath("a/b/c/d/e/f/g/h", NULL); That program needs to readlink() on every path component and possibly others if any of those are symbolic links. In order to not break realpath() OpenBSD 6.5 unveil() allows readlink() on all components of an unveil'ed path. We consider this a bug.