Obviously, the error variable detection of the if statement is
for the mprotect callback function, so it is also put into the
scope of calling callbck.

Reported-by: Jia Zhang <zhang....@linux.alibaba.com>
Signed-off-by: Tianjia Zhang <tianjia.zh...@linux.alibaba.com>
---
 mm/mprotect.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/mm/mprotect.c b/mm/mprotect.c
index ab709023e9aa..94188df1ee55 100644
--- a/mm/mprotect.c
+++ b/mm/mprotect.c
@@ -617,10 +617,11 @@ static int do_mprotect_pkey(unsigned long start, size_t 
len,
                if (tmp > end)
                        tmp = end;
 
-               if (vma->vm_ops && vma->vm_ops->mprotect)
+               if (vma->vm_ops && vma->vm_ops->mprotect) {
                        error = vma->vm_ops->mprotect(vma, nstart, tmp, 
newflags);
-               if (error)
-                       goto out;
+                       if (error)
+                               goto out;
+               }
 
                error = mprotect_fixup(vma, &prev, nstart, tmp, newflags);
                if (error)
-- 
2.19.1.3.ge56e4f7

Reply via email to