Chameleon is unable to read hard linked file on hfs partitions due
to a bug in the hfs.c, hfs_compare.c, and hfs_format.h files.
Hardlinked files are looked up in the \x0\x0\x0\x0HFS+ Private Data
folder in the root of the drive. Chameleon (and hfs.c) do this by
using the following string:
"\xE2\x90\x80\xE2\x90\x80\xE2\x90\x80\xE2\x90\x80HFS+ Private
Data"
\xE2\x90\x80 is he UTF-8 code of NULL, which is then converted into
UTF-16. The UTF16 value is \x2400 (null symbols) and NOT 0x00 as
required by the file system.
A quick fix for this is to update the string so that it results in
the correct folder name. An updated string is as follows:
"\xE0\x80\x80\xE0\x80\x80\xE0\x80\x80\xE0\x80\x80HFS+ Private
Data"
I've attached a diff with the change required.
Reported by Evan Lojewski, Jan 5, 2014