diff options
author | 2019-02-21 16:37:13 +0000 | |
---|---|---|
committer | 2019-02-21 16:37:13 +0000 | |
commit | fd08f7a529bf86ec48ee2f0c62f496a7614bb024 (patch) | |
tree | 88ec177be7153db8e46dac5092184785ad502878 | |
parent | Link msun regress to build. (diff) | |
download | wireguard-openbsd-fd08f7a529bf86ec48ee2f0c62f496a7614bb024.tar.xz wireguard-openbsd-fd08f7a529bf86ec48ee2f0c62f496a7614bb024.zip |
If sysctl(8) was compiled with an obsolete struct sensordev size,
it could get stuck in an endless loop. After sensors sysctl(2)
fails, do not continue using uninitialized memory. Catch the error,
print a warning, and skip the sensors.
OK benno@ visa@ deraadt@
-rw-r--r-- | sbin/sysctl/sysctl.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sbin/sysctl/sysctl.c b/sbin/sysctl/sysctl.c index cd2be30f80e..71e06f0064e 100644 --- a/sbin/sysctl/sysctl.c +++ b/sbin/sysctl/sysctl.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sysctl.c,v 1.240 2019/01/29 14:07:15 visa Exp $ */ +/* $OpenBSD: sysctl.c,v 1.241 2019/02/21 16:37:13 bluhm Exp $ */ /* $NetBSD: sysctl.c,v 1.9 1995/09/30 07:12:50 thorpej Exp $ */ /* @@ -2418,6 +2418,8 @@ sysctl_sensors(char *string, char **bufpp, int mib[], int flags, int *typep) continue; if (errno == ENOENT) break; + warn("sensors dev %d", dev); + return (-1); } snprintf(buf, sizeof(buf), "%s.%s", string, snsrdev.xname); @@ -2443,6 +2445,8 @@ sysctl_sensors(char *string, char **bufpp, int mib[], int flags, int *typep) continue; if (errno == ENOENT) break; + warn("sensors dev %d", dev); + return (-1); } if (strcmp(devname, snsrdev.xname) == 0) break; |