An FNH message indicates that your program is calling free with a memory address that is not in the heap (memory in stack, data or bss).
An FNH error often occurs due to confusion about pointer ownership. Look for pointers to strings or objects that are normally allocated on the heap being initialized with pointers to constants in the program data or text segments, or on the stack. This FNH error is caused by attempts to free such addresses.