diff options
Diffstat (limited to 'net/core/scm.c')
-rw-r--r-- | net/core/scm.c | 9 |
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 | ||
168 | int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data) | 168 | int 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 | ||
203 | void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm) | 204 | void 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]); |