diff options
author | wollman <wollman@FreeBSD.org> | 1998-08-31 15:34:55 +0000 |
---|---|---|
committer | wollman <wollman@FreeBSD.org> | 1998-08-31 15:34:55 +0000 |
commit | 639269dc951f914089f529a5d2d112128b8c35fc (patch) | |
tree | 4934195227222e47630e19e3c926d70e6f8f58d7 /sys/kern/uipc_socket.c | |
parent | 1d273f83401112b34167b08b1a4739ab21e9dde4 (diff) | |
download | FreeBSD-src-639269dc951f914089f529a5d2d112128b8c35fc.zip FreeBSD-src-639269dc951f914089f529a5d2d112128b8c35fc.tar.gz |
Correctly set the return length regardless of the relative size of the
user's buffer. Simplify the logic a bit. (Can we have a version of
min() for size_t?)
Diffstat (limited to 'sys/kern/uipc_socket.c')
-rw-r--r-- | sys/kern/uipc_socket.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index f429434..defd2a8 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)uipc_socket.c 8.3 (Berkeley) 4/15/94 - * $Id: uipc_socket.c,v 1.42 1998/07/18 18:48:45 fenner Exp $ + * $Id: uipc_socket.c,v 1.43 1998/08/23 03:06:59 wollman Exp $ */ #include <sys/param.h> @@ -1083,11 +1083,8 @@ sooptcopyout(sopt, buf, len) * interface is not idempotent; the entire answer must * generated ahead of time. */ - valsize = len; - if (sopt->sopt_valsize < valsize) { - valsize = sopt->sopt_valsize; - sopt->sopt_valsize = len; - } + valsize = min(len, sopt->sopt_valsize); + sopt->sopt_valsize = len; if (sopt->sopt_val != 0) { if (sopt->sopt_p != 0) error = copyout(buf, sopt->sopt_val, valsize); |