Re: [PATCH] mm/mprotect: Fix do_mprotect_pkey() return on error

From: Liam R. Howlett
Date: Thu Apr 06 2023 - 18:05:15 EST


* Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> [230406 17:53]:
> On Thu, 6 Apr 2023 15:30:50 -0400 "Liam R. Howlett" <Liam.Howlett@xxxxxxxxxx> wrote:
>
> > When the loop over the VMA is terminated early due to an error, the
> > return code could be overwritten with ENOMEM. Fix the return code by
> > only setting the error on early loop termination when the error is not
> > set.
> >
> > Fixes: 2286a6914c77 ("mm: change mprotect_fixup to vma iterator")
> > Cc: <stable@xxxxxxxxxxxxxxx>
>
> I do think we should always describe the user-visible effects when
> proposing a backport.
>
> a) so the -stable maintainers understand why we're recommending the
> backport and
>
> b) to help some poor soul who is looking at the patch wondering if
> it will fix his customer's bug report.

Thanks, I'll keep this in mind.

>
> How's this?
>
> : User-visible effects include: attempts to run mprotect() against a special
> : mapping or with a poorly-aligned hugetlb address should return -EINVAL,
> : but they presently return -ENOMEM.

That sounds reasonable, although this isn't an exhaustive list. It could
be an -EACCESS for multiple reasons, or anything the vm_ops returns.