diff options
author | 2005-04-17 01:57:54 +0000 | |
---|---|---|
committer | 2005-04-17 01:57:54 +0000 | |
commit | 84da23c517e67594c5241cea981c7731c3080979 (patch) | |
tree | 090b49c98741547b43f33c08ba70581fefa01bcc | |
parent | Remove regs and fpregs pseudo-files from procfs. (diff) | |
download | wireguard-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.c | 8 |
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); |