Unified · Split
| @@ -1702,6 +1702,8 @@ SYSCALL_DEFINE6(sendto, int, fd, void __user *, buff, size_t, len, · 1701 unmodified lines | ||
| 1702 | 1702 | |
| 1703 | 1703 | if (len > INT_MAX) |
| 1704 | 1704 | len = INT_MAX; |
| 1705 | + if (unlikely(!access_ok(VERIFY_READ, buff, len))) | |
| 1706 | + return -EFAULT; | |
| 1705 | 1707 | sock = sockfd_lookup_light(fd, &err, &fput_needed); |
| 1706 | 1708 | if (!sock) |
| 1707 | 1709 | goto out; |
| @@ -1760,6 +1762,8 @@ SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, ubuf, size_t, size, · 52 unmodified lines | ||
| 1760 | 1762 | |
| 1761 | 1763 | if (size > INT_MAX) |
| 1762 | 1764 | size = INT_MAX; |
| 1765 | + if (unlikely(!access_ok(VERIFY_WRITE, ubuf, size))) | |
| 1766 | + return -EFAULT; | |
| 1763 | 1767 | sock = sockfd_lookup_light(fd, &err, &fput_needed); |
| 1764 | 1768 | if (!sock) |
| 1765 | 1769 | goto out; |