FYI, Here's a much-reduced test case for the short-needle case:
const char *needle = ".d.";
const char *haystack = "..d.";
const char* p = strstr (haystack, needle);
ASSERT (p && p - haystack == 1);
Interestingly, it doesn't trigger a failure in glibc's
slightly different implementation. Eric mentioned
privately that glibc does not yet have gnulib's commit
fffd5faca, and that affects periodicity detection.
