mirror of
https://github.com/systemd/systemd.git
synced 2024-11-02 19:21:53 +03:00
bus: map sealed memfds as MAP_PRIVATE
Mapping files as MAP_SHARED is handled by the kernel as 'writable' mapping. Always! Even with PROT_READ. Reason for that is, mprotect(PROT_WRITE) could change the mapping underneath and currently there is no kernel infrastructure to add protection there. This might change in the future, but until then, map sealed files as MAP_PRIVATE so we don't get EPERM.
This commit is contained in:
parent
9da465df2a
commit
1ac36c67dd
@ -2840,7 +2840,7 @@ int bus_body_part_map(struct bus_body_part *part) {
|
||||
psz = PAGE_ALIGN(part->size);
|
||||
|
||||
if (part->memfd >= 0)
|
||||
p = mmap(NULL, psz, PROT_READ, MAP_SHARED, part->memfd, 0);
|
||||
p = mmap(NULL, psz, PROT_READ, MAP_PRIVATE, part->memfd, 0);
|
||||
else if (part->is_zero)
|
||||
p = mmap(NULL, psz, PROT_READ, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user