summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbeck <beck@openbsd.org>2005-04-17 01:57:54 +0000
committerbeck <beck@openbsd.org>2005-04-17 01:57:54 +0000
commit84da23c517e67594c5241cea981c7731c3080979 (patch)
tree090b49c98741547b43f33c08ba70581fefa01bcc
parentRemove regs and fpregs pseudo-files from procfs. (diff)
downloadwireguard-openbsd-84da23c517e67594c5241cea981c7731c3080979.tar.xz
wireguard-openbsd-84da23c517e67594c5241cea981c7731c3080979.zip
fix snprintf abuse, partly from, and ok deraadt@
-rw-r--r--usr.sbin/afs/src/util/log.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/usr.sbin/afs/src/util/log.c b/usr.sbin/afs/src/util/log.c
index 27fe0a9142b..6e8240fc56f 100644
--- a/usr.sbin/afs/src/util/log.c
+++ b/usr.sbin/afs/src/util/log.c
@@ -732,7 +732,11 @@ static size_t
_print_unit (Log_unit *unit, char *buf, size_t sz)
{
size_t ret, orig_sz = sz;
+ if (sz <= 0)
+ return(0);
ret = snprintf (buf, sz, "%s:", unit->name);
+ if (ret == -1 || ret >= sz)
+ ret = sz - 1;
UPDATESZ(buf,sz,ret);
ret = unparse_flags (log_get_mask (unit), unit->unit, buf, sz);
UPDATESZ(buf,sz,ret);
@@ -752,8 +756,10 @@ log_mask2str (Log_method *method, Log_unit *unit, char *buf, size_t sz)
for (i = 0; i < method->num_units; i++) {
if (log_get_mask (method->units[i])) {
- if (printed) {
+ if (printed && sz > 0) {
ret = snprintf (buf, sz, ";");
+ if (ret == -1 || ret >= sz)
+ ret = sz - 1;
UPDATESZ(buf,sz,ret);
}
ret = _print_unit (method->units[i], buf, sz);