FreeBSD Bugzilla – Attachment 26016 Details for
Bug 44394
restrict qualifiers missing from sys/socket.h
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
socket-restrict.diff
socket-restrict.diff (text/plain; charset=us-ascii), 9.39 KB, created by
Craig Rodrigues
on 2002-12-30 00:42:40 UTC
(
hide
)
Description:
socket-restrict.diff
Filename:
MIME Type:
Creator:
Craig Rodrigues
Created:
2002-12-30 00:42:40 UTC
Size:
9.39 KB
patch
obsolete
>Index: lib/libc/sys/accept.2 >=================================================================== >RCS file: /home/ncvs/src/lib/libc/sys/accept.2,v >retrieving revision 1.26 >diff -u -r1.26 accept.2 >--- lib/libc/sys/accept.2 2002/12/19 09:40:24 1.26 >+++ lib/libc/sys/accept.2 2002/12/29 23:59:40 >@@ -44,7 +44,7 @@ > .In sys/types.h > .In sys/socket.h > .Ft int >-.Fn accept "int s" "struct sockaddr *addr" "socklen_t *addrlen" >+.Fn accept "int s" "struct sockaddr * restrict addr" "socklen_t * restrict addrlen" > .Sh DESCRIPTION > The argument > .Fa s >Index: lib/libc/sys/getpeername.2 >=================================================================== >RCS file: /home/ncvs/src/lib/libc/sys/getpeername.2,v >retrieving revision 1.21 >diff -u -r1.21 getpeername.2 >--- lib/libc/sys/getpeername.2 2002/12/19 09:40:24 1.21 >+++ lib/libc/sys/getpeername.2 2002/12/29 23:59:40 >@@ -44,7 +44,7 @@ > .In sys/types.h > .In sys/socket.h > .Ft int >-.Fn getpeername "int s" "struct sockaddr *name" "socklen_t *namelen" >+.Fn getpeername "int s" "struct sockaddr * restrict name" "socklen_t * restrict namelen" > .Sh DESCRIPTION > The > .Fn getpeername >Index: lib/libc/sys/getsockname.2 >=================================================================== >RCS file: /home/ncvs/src/lib/libc/sys/getsockname.2,v >retrieving revision 1.21 >diff -u -r1.21 getsockname.2 >--- lib/libc/sys/getsockname.2 2002/12/19 09:40:24 1.21 >+++ lib/libc/sys/getsockname.2 2002/12/29 23:59:40 >@@ -44,7 +44,7 @@ > .In sys/types.h > .In sys/socket.h > .Ft int >-.Fn getsockname "int s" "struct sockaddr *name" "socklen_t *namelen" >+.Fn getsockname "int s" "struct sockaddr * restrict name" "socklen_t * restrict namelen" > .Sh DESCRIPTION > The > .Fn getsockname >Index: lib/libc/sys/getsockopt.2 >=================================================================== >RCS file: /home/ncvs/src/lib/libc/sys/getsockopt.2,v >retrieving revision 1.28 >diff -u -r1.28 getsockopt.2 >--- lib/libc/sys/getsockopt.2 2002/12/19 09:40:25 1.28 >+++ lib/libc/sys/getsockopt.2 2002/12/29 23:59:41 >@@ -45,7 +45,7 @@ > .In sys/types.h > .In sys/socket.h > .Ft int >-.Fn getsockopt "int s" "int level" "int optname" "void *optval" "socklen_t *optlen" >+.Fn getsockopt "int s" "int level" "int optname" "void * restrict optval" "socklen_t * restrict optlen" > .Ft int > .Fn setsockopt "int s" "int level" "int optname" "const void *optval" "socklen_t optlen" > .Sh DESCRIPTION >Index: lib/libc/sys/recv.2 >=================================================================== >RCS file: /home/ncvs/src/lib/libc/sys/recv.2,v >retrieving revision 1.18 >diff -u -r1.18 recv.2 >--- lib/libc/sys/recv.2 2002/12/19 09:40:25 1.18 >+++ lib/libc/sys/recv.2 2002/12/29 23:59:41 >@@ -48,7 +48,7 @@ > .Ft ssize_t > .Fn recv "int s" "void *buf" "size_t len" "int flags" > .Ft ssize_t >-.Fn recvfrom "int s" "void *buf" "size_t len" "int flags" "struct sockaddr *from" "socklen_t *fromlen" >+.Fn recvfrom "int s" "void * restrict buf" "size_t len" "int flags" "struct sockaddr * restrict from" "socklen_t * restrict fromlen" > .Ft ssize_t > .Fn recvmsg "int s" "struct msghdr *msg" "int flags" > .Sh DESCRIPTION >Index: sys/kern/syscalls.master >=================================================================== >RCS file: /home/ncvs/src/sys/kern/syscalls.master,v >retrieving revision 1.138 >diff -u -r1.138 syscalls.master >--- sys/kern/syscalls.master 2002/12/15 19:17:56 1.138 >+++ sys/kern/syscalls.master 2002/12/29 23:59:42 >@@ -84,10 +84,11 @@ > 27 MSTD BSD { int recvmsg(int s, struct msghdr *msg, int flags); } > 28 MSTD BSD { int sendmsg(int s, caddr_t msg, int flags); } > 29 MSTD BSD { int recvfrom(int s, caddr_t buf, size_t len, \ >- int flags, caddr_t from, int *fromlenaddr); } >-30 MSTD BSD { int accept(int s, caddr_t name, int *anamelen); } >-31 MSTD BSD { int getpeername(int fdes, caddr_t asa, int *alen); } >-32 MSTD BSD { int getsockname(int fdes, caddr_t asa, int *alen); } >+ int flags, struct sockaddr * __restrict from, \ >+ __socklen_t * __restrict fromlenaddr); } >+30 MSTD BSD { int accept(int s, struct sockaddr * __restrict name, __socklen_t *__restrict anamelen); } >+31 MSTD BSD { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } >+32 MSTD BSD { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } > 33 STD POSIX { int access(char *path, int flags); } > 34 STD BSD { int chflags(char *path, int flags); } > 35 STD BSD { int fchflags(int fd, int flags); } >@@ -197,7 +198,8 @@ > struct timezone *tzp); } > 117 MSTD BSD { int getrusage(int who, struct rusage *rusage); } > 118 MSTD BSD { int getsockopt(int s, int level, int name, \ >- caddr_t val, int *avalsize); } >+ void * __restrict val, \ >+ __socklen_t * __restrict avalsize); } > 119 UNIMPL NOHIDE resuba (BSD/OS 2.x) > 120 MSTD BSD { int readv(int fd, struct iovec *iovp, u_int iovcnt); } > 121 MSTD BSD { int writev(int fd, struct iovec *iovp, \ >Index: sys/kern/uipc_syscalls.c >=================================================================== >RCS file: /home/ncvs/src/sys/kern/uipc_syscalls.c,v >retrieving revision 1.133 >diff -u -r1.133 uipc_syscalls.c >--- sys/kern/uipc_syscalls.c 2002/12/23 22:46:47 1.133 >+++ sys/kern/uipc_syscalls.c 2002/12/29 23:59:44 >@@ -233,15 +235,16 @@ > struct thread *td; > register struct accept_args /* { > int s; >- caddr_t name; >- int *anamelen; >+ struct sockaddr * __restrict name; >+ socklen_t * __restrict anamelen; > } */ *uap; > int compat; > { > struct filedesc *fdp; > struct file *nfp = NULL; > struct sockaddr *sa; >- int namelen, error, s; >+ socklen_t namelen; >+ int error, s; > struct socket *head, *so; > int fd; > u_int fflag; >@@ -876,7 +879,8 @@ > struct uio auio; > register struct iovec *iov; > register int i; >- int len, error; >+ socklen_t len; >+ int error; > struct mbuf *m, *control = 0; > caddr_t ctlbuf; > struct socket *so; >@@ -925,7 +929,7 @@ > (struct mbuf **)0, mp->msg_control ? &control : (struct mbuf **)0, > &mp->msg_flags); > if (error) { >- if (auio.uio_resid != len && (error == ERESTART || >+ if (auio.uio_resid != (int)len && (error == ERESTART || > error == EINTR || error == EWOULDBLOCK)) > error = 0; > } >@@ -933,7 +937,7 @@ > if (ktriov != NULL) { > if (error == 0) { > ktruio.uio_iov = ktriov; >- ktruio.uio_resid = len - auio.uio_resid; >+ ktruio.uio_resid = (int)len - auio.uio_resid; > ktrgenio(s, UIO_READ, &ktruio, error); > } > FREE(ktriov, M_TEMP); >@@ -941,7 +945,7 @@ > #endif > if (error) > goto out; >- td->td_retval[0] = len - auio.uio_resid; >+ td->td_retval[0] = (int)len - auio.uio_resid; > if (mp->msg_name) { > len = mp->msg_namelen; > if (len <= 0 || fromsa == 0) >@@ -963,7 +967,7 @@ > } > mp->msg_namelen = len; > if (namelenp && >- (error = copyout(&len, namelenp, sizeof (int)))) { >+ (error = copyout(&len, namelenp, sizeof (socklen_t)))) { > #ifdef COMPAT_OLDSOCK > if (mp->msg_flags & MSG_COMPAT) > error = 0; /* old recvfrom didn't check */ >@@ -1038,8 +1042,8 @@ > caddr_t buf; > size_t len; > int flags; >- caddr_t from; >- int *fromlenaddr; >+ struct sockaddr * __restrict from; >+ socklen_t * __restrict fromlenaddr; > } */ *uap; > { > struct msghdr msg; >@@ -1301,11 +1305,12 @@ > int s; > int level; > int name; >- caddr_t val; >- int *avalsize; >+ void * __restrict val; >+ socklen_t * __restrict avalsize; > } */ *uap; > { >- int valsize, error; >+ socklen_t valsize; >+ int error; > struct socket *so; > struct sockopt sopt; > >@@ -1354,14 +1359,15 @@ > struct thread *td; > register struct getsockname_args /* { > int fdes; >- caddr_t asa; >- int *alen; >+ struct sockaddr * __restrict asa; >+ socklen_t * __restrict alen; > } */ *uap; > int compat; > { > struct socket *so; > struct sockaddr *sa; >- int len, error; >+ socklen_t len; >+ int error; > > mtx_lock(&Giant); > if ((error = fgetsock(td, uap->fdes, &so, NULL)) != 0) >@@ -1438,14 +1444,15 @@ > struct thread *td; > register struct getpeername_args /* { > int fdes; >- caddr_t asa; >- int *alen; >+ struct sockaddr * __restrict asa; >+ socklen_t * __restrict alen; > } */ *uap; > int compat; > { > struct socket *so; > struct sockaddr *sa; >- int len, error; >+ socklen_t len; >+ int error; > > mtx_lock(&Giant); > if ((error = fgetsock(td, uap->fdes, &so, NULL)) != 0) >Index: sys/sys/socket.h >=================================================================== >RCS file: /home/ncvs/src/sys/sys/socket.h,v >retrieving revision 1.70 >diff -u -r1.70 socket.h >--- sys/sys/socket.h 2002/12/28 22:17:29 1.70 >+++ sys/sys/socket.h 2002/12/29 23:59:44 >@@ -513,18 +513,15 @@ > #include <sys/cdefs.h> > > __BEGIN_DECLS >-/* >- * XXX functions missing restrict type-qualifiers. >- */ >-int accept(int, struct sockaddr *, socklen_t *); >+int accept(int, struct sockaddr * __restrict, socklen_t * __restrict); > int bind(int, const struct sockaddr *, socklen_t); > int connect(int, const struct sockaddr *, socklen_t); >-int getpeername(int, struct sockaddr *, socklen_t *); >-int getsockname(int, struct sockaddr *, socklen_t *); >-int getsockopt(int, int, int, void *, socklen_t *); >+int getpeername(int, struct sockaddr * __restrict, socklen_t * __restrict); >+int getsockname(int, struct sockaddr * __restrict, socklen_t * __restrict); >+int getsockopt(int, int, int, void * __restrict, socklen_t * __restrict); > int listen(int, int); > ssize_t recv(int, void *, size_t, int); >-ssize_t recvfrom(int, void *, size_t, int, struct sockaddr *, socklen_t *); >+ssize_t recvfrom(int, void *, size_t, int, struct sockaddr * __restrict, socklen_t * __restrict); > ssize_t recvmsg(int, struct msghdr *, int); > ssize_t send(int, const void *, size_t, int); > ssize_t sendto(int, const void *,
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 44394
:
26015
| 26016