the condition was probably intended to be !*p rather than !p, but
neither is needed here. the subsequent code naturally handles the case
where it's already at end of string.
/* Skip past canonical name at beginning of line */
for (p=line; *p && !isspace(*p); p++);
/* Skip past canonical name at beginning of line */
for (p=line; *p && !isspace(*p); p++);
port = strtoul(p, &z, 10);
if (port > 65535 || z==p) continue;
port = strtoul(p, &z, 10);
if (port > 65535 || z==p) continue;