Merged to master at 92fe9a3689de..82a6c5af0db0 (from, to]

You can see the entire diff with 'git diff' or at
https://github.com/brho/akaros/compare/92fe9a3689de...82a6c5af0db0



On 2017-08-23 at 17:53 Barret Rhoden <[email protected]> wrote:
> When erroring out, we were not unlocking first.
> 
> As a side note, if you give the kernel a virtual address and tell it to use
> it for an operation (e.g. read(fd, VIRT_ADDR, amt), that memory should be
> anonymous memory.  At the very least, it must be soft-faultable (i.e.  not
> a file that isn't in the page cache).  Considering there's limited control
> over that, I currently don't allow that either.  So something like this
> will fail:
> 
>       va = mmap(..., fd, 0)
>       read(another_fd, va, amt);
> 
> This restriction is stricter than Linux, and is because of userspace's role
> in managing its own memory - it's up to the user to know what is or isn't
> resident.
> 
> Signed-off-by: Barret Rhoden <[email protected]>
> ---
>  kern/src/mm.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/kern/src/mm.c b/kern/src/mm.c
> index 91b3d768feae..906d297f8d4c 100644
> --- a/kern/src/mm.c
> +++ b/kern/src/mm.c
> @@ -1053,8 +1053,10 @@ refault:
>                       goto out;
>               }
>       } else {
> -             if (!file_ok)
> -                     return -EACCES;
> +             if (!file_ok) {
> +                     ret = -EACCES;
> +                     goto out;
> +             }
>               /* If this fails, either something got screwed up with the VMR, 
> or the
>                * permissions changed after mmap/mprotect.  Either way, I want 
> to know
>                * (though it's not critical). */

-- 
You received this message because you are subscribed to the Google Groups 
"Akaros" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to