Message ID | 20230320024739.224850-4-mawupeng1@huawei.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Add overflow checks for several syscalls | expand |
diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 3a68998adc3a..6b1c45021e48 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -1259,6 +1259,7 @@ static long do_mbind(unsigned long start, unsigned long len, nodemask_t *nmask, unsigned long flags) { struct mm_struct *mm = current->mm; + unsigned long old_len = len; struct mempolicy *new; unsigned long end; int err; @@ -1279,7 +1280,7 @@ static long do_mbind(unsigned long start, unsigned long len, len = PAGE_ALIGN(len); end = start + len; - if (end < start) + if (end < start || (old_len != 0 && len == 0)) return -EINVAL; if (end == start) return 0;