Date: Wed, 20 Feb 2013 20:19:17 +0300 From: Sergey Kandaurov <pluknet@gmail.com> To: FreeBSD Current <freebsd-current@freebsd.org> Subject: [patch] remove negative socklen_t checks Message-ID: <CAE-mSOKJHqov7kHKpKFRw%2Bcq5W%2B6du88GVNa2xvfLaoeO%2BE%2BuA@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
Hi. These checks are useless after the address length argument is converted to socklen_t (up to SUSv2). Any objections? Index: lib/libc/sys/accept.2 =================================================================== --- lib/libc/sys/accept.2 (revision 245745) +++ lib/libc/sys/accept.2 (working copy) @@ -28,7 +28,7 @@ .\" @(#)accept.2 8.2 (Berkeley) 12/11/93 .\" $FreeBSD$ .\" -.Dd December 11, 1993 +.Dd February 20, 2013 .Dt ACCEPT 2 .Os .Sh NAME @@ -154,10 +154,6 @@ The descriptor references a file, not a socket. .It Bq Er EINVAL .Xr listen 2 has not been called on the socket descriptor. -.It Bq Er EINVAL -The -.Fa addrlen -argument is negative. .It Bq Er EFAULT The .Fa addr Index: sys/kern/uipc_syscalls.c =================================================================== --- sys/kern/uipc_syscalls.c (revision 246354) +++ sys/kern/uipc_syscalls.c (working copy) @@ -353,8 +353,6 @@ kern_accept(struct thread *td, int s, struct socka if (name) { *name = NULL; - if (*namelen < 0) - return (EINVAL); } AUDIT_ARG_FD(s); @@ -1327,8 +1325,6 @@ kern_setsockopt(td, s, level, name, val, valseg, v if (val == NULL && valsize != 0) return (EFAULT); - if ((int)valsize < 0) - return (EINVAL); sopt.sopt_dir = SOPT_SET; sopt.sopt_level = level; @@ -1406,8 +1402,6 @@ kern_getsockopt(td, s, level, name, val, valseg, v if (val == NULL) *valsize = 0; - if ((int)*valsize < 0) - return (EINVAL); sopt.sopt_dir = SOPT_GET; sopt.sopt_level = level; @@ -1484,9 +1478,6 @@ kern_getsockname(struct thread *td, int fd, struct socklen_t len; int error; - if (*alen < 0) - return (EINVAL); - AUDIT_ARG_FD(fd); error = getsock_cap(td->td_proc->p_fd, fd, CAP_GETSOCKNAME, &fp, NULL); if (error) @@ -1584,9 +1575,6 @@ kern_getpeername(struct thread *td, int fd, struct socklen_t len; int error; - if (*alen < 0) - return (EINVAL); - AUDIT_ARG_FD(fd); error = getsock_cap(td->td_proc->p_fd, fd, CAP_GETPEERNAME, &fp, NULL); if (error) -- wbr, pluknet
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAE-mSOKJHqov7kHKpKFRw%2Bcq5W%2B6du88GVNa2xvfLaoeO%2BE%2BuA>