summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Longeau <chl@cvs.openbsd.org>2010-01-17 20:45:00 +0000
committerCharles Longeau <chl@cvs.openbsd.org>2010-01-17 20:45:00 +0000
commitd4a6fa80535c3a5c61c9a1e2224abd24b9985a9f (patch)
tree401f3fc0733ce9621909a83e4ebd22394fe1b0f1
parent233f8a77d6f586d24e1bb0d0caa895631000c112 (diff)
strcpy/strncat/sprintf --> strlcpy/strlcat/snprintf
ok jakob@
-rw-r--r--usr.sbin/nsd/axfr.c2
-rw-r--r--usr.sbin/nsd/dname.c2
-rw-r--r--usr.sbin/nsd/dns.c2
-rw-r--r--usr.sbin/nsd/nsd.c2
-rw-r--r--usr.sbin/nsd/region-allocator.c7
-rw-r--r--usr.sbin/nsd/util.c2
6 files changed, 10 insertions, 7 deletions
diff --git a/usr.sbin/nsd/axfr.c b/usr.sbin/nsd/axfr.c
index 0bec4877f97..ae17388575e 100644
--- a/usr.sbin/nsd/axfr.c
+++ b/usr.sbin/nsd/axfr.c
@@ -179,7 +179,7 @@ answer_axfr_ixfr(struct nsd *nsd, struct query *q)
if (addr2ip(q->addr, address, 128)) {
DEBUG(DEBUG_XFRD,1, (LOG_INFO,
"addr2ip failed"));
- strcpy(address, "[unknown]");
+ strlcpy(address, "[unknown]", sizeof(address));
}
VERBOSITY(1, (LOG_INFO, "axfr for zone %s from client %s refused, %s", dname_to_string(q->qname, NULL), address, acl?"blocked":"no acl matches"));
diff --git a/usr.sbin/nsd/dname.c b/usr.sbin/nsd/dname.c
index d264d202f7e..5640899c1a1 100644
--- a/usr.sbin/nsd/dname.c
+++ b/usr.sbin/nsd/dname.c
@@ -389,7 +389,7 @@ dname_to_string(const dname_type *dname, const dname_type *origin)
const uint8_t *src;
if (dname->label_count == 1) {
- strcpy(buf, ".");
+ strlcpy(buf, ".", sizeof(buf));
return buf;
}
diff --git a/usr.sbin/nsd/dns.c b/usr.sbin/nsd/dns.c
index 2299f66a8a6..ec227f9f5d9 100644
--- a/usr.sbin/nsd/dns.c
+++ b/usr.sbin/nsd/dns.c
@@ -522,7 +522,7 @@ rrclass_to_string(uint16_t rrclass)
lookup_table_type *entry = lookup_by_id(dns_rrclasses, rrclass);
if (entry) {
assert(strlen(entry->name) < sizeof(buf));
- strcpy(buf, entry->name);
+ strlcpy(buf, entry->name, sizeof(buf));
} else {
snprintf(buf, sizeof(buf), "CLASS%d", (int) rrclass);
}
diff --git a/usr.sbin/nsd/nsd.c b/usr.sbin/nsd/nsd.c
index b223a1f28b8..8dac3bf0f79 100644
--- a/usr.sbin/nsd/nsd.c
+++ b/usr.sbin/nsd/nsd.c
@@ -822,7 +822,7 @@ main(int argc, char *argv[])
if (l>0 && strncmp(nsd.chrootdir + (l-1), "/", 1) != 0) {
char *chroot_slash = region_alloc(nsd.region, sizeof(char)*(l+2));
memcpy(chroot_slash, nsd.chrootdir, sizeof(char)*(l+1));
- strncat(chroot_slash, "/", 1);
+ strlcat(chroot_slash, "/", sizeof(char)*(l+2));
nsd.chrootdir = chroot_slash;
++l;
}
diff --git a/usr.sbin/nsd/region-allocator.c b/usr.sbin/nsd/region-allocator.c
index c2ad8215264..fd9ef537a4a 100644
--- a/usr.sbin/nsd/region-allocator.c
+++ b/usr.sbin/nsd/region-allocator.c
@@ -426,8 +426,9 @@ void
region_log_stats(region_type *region)
{
char buf[10240], *str=buf;
+ int strl = sizeof(buf);
int len=0;
- sprintf(str, "%lu objects (%lu small/%lu large), %lu bytes allocated (%lu wasted) in %lu chunks, %lu cleanups, %lu in recyclebin%n",
+ snprintf(str, strl, "%lu objects (%lu small/%lu large), %lu bytes allocated (%lu wasted) in %lu chunks, %lu cleanups, %lu in recyclebin%n",
(unsigned long) (region->small_objects + region->large_objects),
(unsigned long) region->small_objects,
(unsigned long) region->large_objects,
@@ -438,6 +439,7 @@ region_log_stats(region_type *region)
(unsigned long) region->recycle_size,
&len);
str+=len;
+ strl-=len;
if(1 && region->recycle_bin) {
/* print details of the recycle bin */
size_t i;
@@ -449,9 +451,10 @@ region_log_stats(region_type *region)
el = el->next;
}
if(i%ALIGNMENT == 0 && i!=0) {
- sprintf(str, " %lu%n", (unsigned long)count,
+ snprintf(str, strl, " %lu%n", (unsigned long)count,
&len);
str+=len;
+ strl-=len;
}
}
}
diff --git a/usr.sbin/nsd/util.c b/usr.sbin/nsd/util.c
index dbdf64308e7..e19a23a8ac1 100644
--- a/usr.sbin/nsd/util.c
+++ b/usr.sbin/nsd/util.c
@@ -534,7 +534,7 @@ b32_ntop(uint8_t const *src, size_t srclength, char *target, size_t targsize)
{
if(targsize < strlen(buf)+1)
return -1;
- strcpy(target, buf);
+ strlcpy(target, buf, targsize);
len += strlen(buf);
}
else if(targsize < 1)