diff options
author | 1999-01-05 08:51:57 +0000 | |
---|---|---|
committer | 1999-01-05 08:51:57 +0000 | |
commit | 16c2a708e71b96a391105381ddf746f9abe0df3a (patch) | |
tree | 3b46085f32b1a843dfbe604e09e105e01c333026 | |
parent | sync (diff) | |
download | wireguard-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.c | 10 |
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: |