Has anyone answered andreas' question from the "future" article?
If this function is accepting a pascal-syle string:
void func (char *domain) { int len = domain[0]; ...
then there is a problem when the high bit of domain[0] is set (lengths greater than 127), it will be sign-extended to fill len., causing a very big buffer overrun later on.