strange one this: for ages this code if(strchr((char *)rp->host, '\n') != nil) { has been doing a strchr on an rp->host, which is a DN*, not by any means a string. without the cast, the compiler dutifully warns about it too. perhaps casting uchar* to char* was force of habit? i've replaced it by rp->host->name, which at least should be technically correct, but the test itself seems curious to me. Reference: /n/sources/patch/ndb-remove-cast Date: Thu Jun 29 12:24:21 CES 2017 Signed-off-by: charles.forsyth@gmail.com --- /sys/src/cmd/ndb/convM2DNS.c Thu Jun 29 12:17:56 2017 +++ /sys/src/cmd/ndb/convM2DNS.c Thu Jun 29 12:17:53 2017 @@ -405,7 +405,7 @@ USHORT(rp->pref); dn = NAME(dname); rp->host = dnlookup(dn, Cin, 1); - if(strchr((char *)rp->host, '\n') != nil) { + if(strchr(rp->host->name, '\n') != nil) { dnslog("newline in mx text for %s", dn); sp->trunc = 1; /* try again via tcp */ }