1.1 --- a/generic/pager.cc Tue Apr 06 00:14:00 2021 +0200
1.2 +++ b/generic/pager.cc Tue Apr 06 23:20:03 2021 +0200
1.3 @@ -65,6 +65,12 @@
1.4 {
1.5 offset_t file_offset = _start + offset;
1.6 offset_t max_offset = _start + _size;
1.7 +
1.8 + /* Prevent access beyond that defined by the pager. */
1.9 +
1.10 + if (flags & ~_flags)
1.11 + return -L4_EACCESS;
1.12 +
1.13 Flexpage *flexpage = _mapper->get(file_offset, flags);
1.14
1.15 /* Issue the flexpage via the IPC system. */
1.16 @@ -73,14 +79,14 @@
1.17 flags, region);
1.18
1.19 if (!err)
1.20 - err = complete_Dataspace_map(*region);
1.21 + err = complete_Dataspace_map(*region);
1.22
1.23 /* After the flexpage is issued, it is queued for future reuse. */
1.24
1.25 _mapper->queue(flexpage);
1.26
1.27 if (err)
1.28 - return err;
1.29 + return err;
1.30
1.31 return IPC_MESSAGE_SENT;
1.32 }