p = strpbrk (allowed, " :\n");
if (!*p || p == allowed)
p = strpbrk (allowed, " :\n");
if (!*p || p == allowed)
If you check the do-while above you will notice that after the loop LINE is
guaranteed to always end with a LF. Thus strpbrk will always succeed.