aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/scm.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/core/scm.c')
-rw-r--r--net/core/scm.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/net/core/scm.c b/net/core/scm.c
index 44c4ec2c8769..530bee8d9ed9 100644
--- a/net/core/scm.c
+++ b/net/core/scm.c
@@ -167,7 +167,8 @@ error:
167 167
168int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data) 168int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data)
169{ 169{
170 struct cmsghdr __user *cm = (struct cmsghdr __user *)msg->msg_control; 170 struct cmsghdr __user *cm
171 = (__force struct cmsghdr __user *)msg->msg_control;
171 struct cmsghdr cmhdr; 172 struct cmsghdr cmhdr;
172 int cmlen = CMSG_LEN(len); 173 int cmlen = CMSG_LEN(len);
173 int err; 174 int err;
@@ -202,7 +203,8 @@ out:
202 203
203void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm) 204void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
204{ 205{
205 struct cmsghdr __user *cm = (struct cmsghdr __user*)msg->msg_control; 206 struct cmsghdr __user *cm
207 = (__force struct cmsghdr __user*)msg->msg_control;
206 208
207 int fdmax = 0; 209 int fdmax = 0;
208 int fdnum = scm->fp->count; 210 int fdnum = scm->fp->count;
@@ -222,7 +224,8 @@ void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
222 if (fdnum < fdmax) 224 if (fdnum < fdmax)
223 fdmax = fdnum; 225 fdmax = fdnum;
224 226
225 for (i=0, cmfptr=(int __user *)CMSG_DATA(cm); i<fdmax; i++, cmfptr++) 227 for (i=0, cmfptr=(__force int __user *)CMSG_DATA(cm); i<fdmax;
228 i++, cmfptr++)
226 { 229 {
227 int new_fd; 230 int new_fd;
228 err = security_file_receive(fp[i]); 231 err = security_file_receive(fp[i]);