|
@@ -2127,6 +2127,9 @@ static abi_long do_setsockopt(int sockfd, int level, int optname,
|
|
return -TARGET_EINVAL;
|
|
return -TARGET_EINVAL;
|
|
|
|
|
|
ip_mreq_source = lock_user(VERIFY_READ, optval_addr, optlen, 1);
|
|
ip_mreq_source = lock_user(VERIFY_READ, optval_addr, optlen, 1);
|
|
|
|
+ if (!ip_mreq_source) {
|
|
|
|
+ return -TARGET_EFAULT;
|
|
|
|
+ }
|
|
ret = get_errno(setsockopt(sockfd, level, optname, ip_mreq_source, optlen));
|
|
ret = get_errno(setsockopt(sockfd, level, optname, ip_mreq_source, optlen));
|
|
unlock_user (ip_mreq_source, optval_addr, 0);
|
|
unlock_user (ip_mreq_source, optval_addr, 0);
|
|
break;
|
|
break;
|