Visual Studio code analysis picked this up, a C6011.
In function pipe_interface, at the line:
i->word = mystrdup(buf+1);
....Hunspell dereferences i, which was malloc'd the line before, as:
struct wordlist* i =
(struct wordlist *) malloc (sizeof(struct wordlist));
....and never checked against NULL. Sure, it's a rare condition, but a valid one nonetheless.
C6011 Dereferencing NULL pointer 'i'.
614 'i' may be NULL
616 'i' is dereferenced, but may still be NULL