lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <20230128063229.989058-5-mawupeng1@huawei.com> Date: Sat, 28 Jan 2023 14:32:29 +0800 From: Wupeng Ma <mawupeng1@...wei.com> To: <akpm@...ux-foundation.org> CC: <linux-mm@...ck.org>, <linux-kernel@...r.kernel.org>, <mawupeng1@...wei.com>, <kuleshovmail@...il.com>, <aneesh.kumar@...ux.ibm.com> Subject: [PATCH v3 4/4] mm/msync: return ENOMEM if len overflows for msync From: Ma Wupeng <mawupeng1@...wei.com> Check and return 0 if len == 0 at the beginning of the function. Return -ENOMEM if len overflows for msync. Signed-off-by: Ma Wupeng <mawupeng1@...wei.com> --- mm/msync.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mm/msync.c b/mm/msync.c index ac4c9bfea2e7..3104c97d70d3 100644 --- a/mm/msync.c +++ b/mm/msync.c @@ -46,13 +46,16 @@ SYSCALL_DEFINE3(msync, unsigned long, start, size_t, len, int, flags) if ((flags & MS_ASYNC) && (flags & MS_SYNC)) goto out; error = -ENOMEM; + if (!len) + return 0; + len = (len + ~PAGE_MASK) & PAGE_MASK; + if (!len) + goto out; + end = start + len; if (end < start) goto out; - error = 0; - if (end == start) - goto out; /* * If the interval [start,end) covers some unmapped address ranges, * just ignore them, but return -ENOMEM at the end. Besides, if the -- 2.25.1
Powered by blists - more mailing lists