git-svn-id: svn+ssh://svn.dolda2000.com/srv/svn/repos/src/icmp-dn@218
959494ce-11ee-0310-bf91-
de5d638817bd
char retaddr[16];
} *retbuf;
char addrbuf[1024];
char retaddr[16];
} *retbuf;
char addrbuf[1024];
char *p, *p2, *p3;
u_int8_t *ap;
pid_t child;
char *p, *p2, *p3;
u_int8_t *ap;
pid_t child;
p3 = buffer + sizeof(*retbuf);
while((p2 = strchr(p, '\n')) != NULL) {
*p2 = 0;
p3 = buffer + sizeof(*retbuf);
while((p2 = strchr(p, '\n')) != NULL) {
*p2 = 0;
- if((p3 - buffer) + (p2 - p) + 1 > buflen) {
+ thislen = p2 - p;
+ if(thislen == 0)
+ continue;
+ if((p3 - buffer) + thislen + 1 > buflen) {
*errnop = ENOMEM;
*h_errnop = NETDB_INTERNAL;
return(NSS_STATUS_UNAVAIL);
}
*errnop = ENOMEM;
*h_errnop = NETDB_INTERNAL;
return(NSS_STATUS_UNAVAIL);
}
- memcpy(p3, p, (p2 - p) + 1);
+ memcpy(p3, p, thislen + 1);
retbuf->aliaslist[an] = p3;
retbuf->aliaslist[an] = p3;
p = p2 + 1;
if(++an == 16) {
*errnop = ENOMEM;
p = p2 + 1;
if(++an == 16) {
*errnop = ENOMEM;
- *h_errnop = TRY_AGAIN; /* Is this correct? */
+ *h_errnop = TRY_AGAIN; /* XXX: Is this correct? */
return(NSS_STATUS_NOTFOUND);
}
retbuf->aliaslist[an] = NULL;
return(NSS_STATUS_NOTFOUND);
}
retbuf->aliaslist[an] = NULL;