The open() system calls returns succesfully when the path points to a REGULAR file from an HFS mount point, and the open flags include O_DIRECTORY. Then, glibc is lrued into returning success on opendir(), instead of failing with errno = EISDIR, as required by POSIX. And then, VLC thinks the REGULAR file is a directory, even though it's not.
The kernel bug is clear and well understood:
The open() system calls returns succesfully when the path points to a REGULAR file from an HFS mount point, and the open flags include O_DIRECTORY. Then, glibc is lrued into returning success on opendir(), instead of failing with errno = EISDIR, as required by POSIX. And then, VLC thinks the REGULAR file is a directory, even though it's not.