In one created a MyISAM table with DATA_DIRECTORY or INDEX_DIRECTORY attributes (that is, with symlinks) mi_open() and mi_delete() used the pattern of
- expand all symlinks with realpath()
- verify that the true path isn't leading into a datadir
- open (or, accordingly, delete) the file
This is race condition prone, one can change the symlink after it was expanded by realpath() but before the file is opened.