$OpenBSD: patch-dns_resolv_c,v 1.4 2008/01/30 20:06:48 mbalmer Exp $ --- dns_resolv.c.orig Mon Aug 6 18:29:25 2007 +++ dns_resolv.c Wed Jan 30 13:24:39 2008 @@ -158,7 +158,7 @@ void resolve_dns(struct log_struct *log_rec) case 0: { memcpy(&alignedRecord, response.data, sizeof(struct dnsRecord)); - strncpy (log_rec->hostname, + strlcpy (log_rec->hostname, ((struct dnsRecord *)response.data)->hostName, MAXHOST); log_rec->hostname[MAXHOST-1]=0; @@ -269,7 +269,7 @@ int dns_resolver(void *log_fp) } memset(tmp_buf, 0, sizeof(tmp_buf)); - strncpy(tmp_buf, buffer, sizeof(tmp_buf)-1); /* save buffer in case of error */ + strlcpy(tmp_buf, buffer, sizeof(tmp_buf)); /* save buffer in case of error */ if(parse_record(buffer)) /* parse the record */ { struct addrinfo hints, *ares; @@ -460,8 +460,8 @@ static void process_list(DNODEPTR l_list) /* If long hostname, take max domain name part */ if ((size = strlen(hbuf)) > MAXHOST-2) - strcpy(child_buf,(hbuf+(size-MAXHOST+1))); - else strcpy(child_buf, hbuf); + strlcpy(child_buf,(hbuf+(size-MAXHOST+1)),sizeof(child_buf)); + else strlcpy(child_buf, hbuf,sizeof(child_buf)); size = strlen(child_buf); } else