From 4f9cbfeaf4421ccb0dd0867664f6d689794ef9f3 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 3 Jan 2016 04:42:04 +0100 Subject: pflocal: Do not abort on too small getopt parameter * pflocal/socket.c (S_socket_getopt): When *value_len is too small, return EINVAL instead of aborting. --- pflocal/socket.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pflocal/socket.c b/pflocal/socket.c index b1f9d770..f2b75a70 100644 --- a/pflocal/socket.c +++ b/pflocal/socket.c @@ -441,7 +441,11 @@ S_socket_getopt (struct sock_user *user, switch (opt) { case SO_TYPE: - assert (*value_len >= sizeof (int)); + if (*value_len < sizeof (int)) + { + ret = EINVAL; + break; + } *(int *)*value = user->sock->pipe_class->sock_type; *value_len = sizeof (int); break; -- cgit v1.2.3