summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordjm <djm@openbsd.org>2004-08-13 02:51:48 +0000
committerdjm <djm@openbsd.org>2004-08-13 02:51:48 +0000
commitee42e03c4b8d4d9dbe0879553fb74884f19c4894 (patch)
treeea1640b125386be7d6aeb883479b6388ccf4bc6f
parentAdd cvs_datesec() to calculate the time_t value corresponding to a (diff)
downloadwireguard-openbsd-ee42e03c4b8d4d9dbe0879553fb74884f19c4894.tar.xz
wireguard-openbsd-ee42e03c4b8d4d9dbe0879553fb74884f19c4894.zip
extra check for no message case; ok markus, deraadt, hshoexer, henning
-rw-r--r--sbin/isakmpd/monitor_fdpass.c4
-rw-r--r--sbin/pflogd/privsep_fdpass.c6
-rw-r--r--usr.bin/ssh/monitor_fdpass.c4
-rw-r--r--usr.sbin/bind/lib/isc/unix/privsep_fdpass.c6
-rw-r--r--usr.sbin/syslogd/privsep_fdpass.c6
-rw-r--r--usr.sbin/tcpdump/privsep_fdpass.c6
6 files changed, 27 insertions, 5 deletions
diff --git a/sbin/isakmpd/monitor_fdpass.c b/sbin/isakmpd/monitor_fdpass.c
index 8031416e7e4..8f3d1a44320 100644
--- a/sbin/isakmpd/monitor_fdpass.c
+++ b/sbin/isakmpd/monitor_fdpass.c
@@ -94,6 +94,10 @@ mm_receive_fd(int socket)
return -1;
}
cmsg = CMSG_FIRSTHDR(&msg);
+ if (cmsg == NULL) {
+ log_error("%s: no message header", __func__);
+ return -1;
+ }
if (cmsg->cmsg_type != SCM_RIGHTS) {
log_error("%s: expected type %d got %d", __func__, SCM_RIGHTS,
cmsg->cmsg_type);
diff --git a/sbin/pflogd/privsep_fdpass.c b/sbin/pflogd/privsep_fdpass.c
index 166b6930b3b..50afdfc2859 100644
--- a/sbin/pflogd/privsep_fdpass.c
+++ b/sbin/pflogd/privsep_fdpass.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: privsep_fdpass.c,v 1.1 2003/10/22 18:51:55 canacar Exp $ */
+/* $OpenBSD: privsep_fdpass.c,v 1.2 2004/08/13 02:51:48 djm Exp $ */
/*
* Copyright 2001 Niels Provos <provos@citi.umich.edu>
@@ -108,6 +108,10 @@ receive_fd(int sock)
__func__, (long)n);
if (result == 0) {
cmsg = CMSG_FIRSTHDR(&msg);
+ if (cmsg == NULL) {
+ warnx("%s: no message header", __func__);
+ return -1;
+ }
if (cmsg->cmsg_type != SCM_RIGHTS)
warnx("%s: expected type %d got %d", __func__,
SCM_RIGHTS, cmsg->cmsg_type);
diff --git a/usr.bin/ssh/monitor_fdpass.c b/usr.bin/ssh/monitor_fdpass.c
index 540ff793de9..609b6253b45 100644
--- a/usr.bin/ssh/monitor_fdpass.c
+++ b/usr.bin/ssh/monitor_fdpass.c
@@ -24,7 +24,7 @@
*/
#include "includes.h"
-RCSID("$OpenBSD: monitor_fdpass.c,v 1.5 2004/06/21 17:36:31 avsm Exp $");
+RCSID("$OpenBSD: monitor_fdpass.c,v 1.6 2004/08/13 02:51:48 djm Exp $");
#include <sys/uio.h>
@@ -89,6 +89,8 @@ mm_receive_fd(int sock)
__func__, (long)n);
cmsg = CMSG_FIRSTHDR(&msg);
+ if (cmsg == NULL)
+ fatal("%s: no message header", __func__);
if (cmsg->cmsg_type != SCM_RIGHTS)
fatal("%s: expected type %d got %d", __func__,
SCM_RIGHTS, cmsg->cmsg_type);
diff --git a/usr.sbin/bind/lib/isc/unix/privsep_fdpass.c b/usr.sbin/bind/lib/isc/unix/privsep_fdpass.c
index d0d91011268..f52bee57179 100644
--- a/usr.sbin/bind/lib/isc/unix/privsep_fdpass.c
+++ b/usr.sbin/bind/lib/isc/unix/privsep_fdpass.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: privsep_fdpass.c,v 1.2 2004/04/19 23:33:46 avsm Exp $ */
+/* $OpenBSD: privsep_fdpass.c,v 1.3 2004/08/13 02:51:48 djm Exp $ */
/*
* Copyright 2001 Niels Provos <provos@citi.umich.edu>
@@ -105,6 +105,10 @@ receive_fd(int sock)
__func__, (long)n);
if (result == 0) {
cmsg = CMSG_FIRSTHDR(&msg);
+ if (cmsg == NULL) {
+ warnx("%s: no message header", __func__);
+ return (-1);
+ }
if (cmsg->cmsg_type != SCM_RIGHTS)
warnx("%s: expected type %d got %d", __func__,
SCM_RIGHTS, cmsg->cmsg_type);
diff --git a/usr.sbin/syslogd/privsep_fdpass.c b/usr.sbin/syslogd/privsep_fdpass.c
index 6638055c37c..630cc4ce268 100644
--- a/usr.sbin/syslogd/privsep_fdpass.c
+++ b/usr.sbin/syslogd/privsep_fdpass.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: privsep_fdpass.c,v 1.2 2004/07/03 23:40:44 djm Exp $ */
+/* $OpenBSD: privsep_fdpass.c,v 1.3 2004/08/13 02:51:48 djm Exp $ */
/*
* Copyright 2001 Niels Provos <provos@citi.umich.edu>
@@ -108,6 +108,10 @@ receive_fd(int sock)
__func__, (long)n);
if (result == 0) {
cmsg = CMSG_FIRSTHDR(&msg);
+ if (cmsg == NULL) {
+ warnx("%s: no message header", __func__);
+ return (-1);
+ }
if (cmsg->cmsg_type != SCM_RIGHTS)
warnx("%s: expected type %d got %d", __func__,
SCM_RIGHTS, cmsg->cmsg_type);
diff --git a/usr.sbin/tcpdump/privsep_fdpass.c b/usr.sbin/tcpdump/privsep_fdpass.c
index 22323275abb..bfb3d46e671 100644
--- a/usr.sbin/tcpdump/privsep_fdpass.c
+++ b/usr.sbin/tcpdump/privsep_fdpass.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: privsep_fdpass.c,v 1.3 2004/06/18 19:34:58 henning Exp $ */
+/* $OpenBSD: privsep_fdpass.c,v 1.4 2004/08/13 02:51:48 djm Exp $ */
/*
* Copyright (c) 2002 Matthieu Herrb
@@ -90,6 +90,10 @@ receive_fd(int sock)
__func__, (long)n);
if (result == 0) {
cmsg = CMSG_FIRSTHDR(&msg);
+ if (cmsg == NULL) {
+ warnx("%s: no message header", __func__);
+ return (-1);
+ }
if (cmsg->cmsg_type != SCM_RIGHTS)
warnx("%s: expected type %d got %d", __func__,
SCM_RIGHTS, cmsg->cmsg_type);