summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>1999-01-05 08:51:57 +0000
committerderaadt <deraadt@openbsd.org>1999-01-05 08:51:57 +0000
commit16c2a708e71b96a391105381ddf746f9abe0df3a (patch)
tree3b46085f32b1a843dfbe604e09e105e01c333026
parentsync (diff)
downloadwireguard-openbsd-16c2a708e71b96a391105381ddf746f9abe0df3a.tar.xz
wireguard-openbsd-16c2a708e71b96a391105381ddf746f9abe0df3a.zip
careful about sunx.sun_path termination; matter@research.suspicious.org
-rw-r--r--usr.sbin/syslogd/syslogd.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/usr.sbin/syslogd/syslogd.c b/usr.sbin/syslogd/syslogd.c
index 32d30a24562..1068b460b86 100644
--- a/usr.sbin/syslogd/syslogd.c
+++ b/usr.sbin/syslogd/syslogd.c
@@ -238,12 +238,16 @@ main(argc, argv)
SecureMode = 0;
break;
case 'a':
- if (nfunix < MAXFUNIX)
- funixn[nfunix++] = optarg;
- else
+ if (nfunix >= MAXFUNIX)
fprintf(stderr,
"syslogd: out of descriptors, ignoring %s\n",
optarg);
+ else if (strlen(optarg) >= sizeof(sunx.sun_path))
+ fprintf(stderr,
+ "syslogd: path to long, ignoring %s\n",
+ optarg);
+ else
+ funixn[nfunix++] = optarg;
break;
case '?':
default: