Skip to content
Snippets Groups Projects
Commit fffc57b6 authored by Brian Swetland's avatar Brian Swetland Committed by Nick Kralevich
Browse files

DO NOT MERGE: init: use tmpfs/ftruncate for properties backing store instead of ashmem


This removes the need for ashmem for early bringup and avoids an issue
with permissions enforcement.

Change-Id: I4c01b2a86aa2adbbdffb104188af9ab594c097ba
Signed-off-by: default avatarBrian Swetland <swetland@google.com>
parent 2ad6067c
No related branches found
No related tags found
No related merge requests found
......@@ -27,7 +27,6 @@
#include <cutils/misc.h>
#include <cutils/sockets.h>
#include <cutils/ashmem.h>
#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
#include <sys/_system_properties.h>
......@@ -105,21 +104,31 @@ static int init_workspace(workspace *w, size_t size)
void *data;
int fd;
fd = ashmem_create_region("system_properties", size);
/* dev is a tmpfs that we can use to carve a shared workspace
* out of, so let's do that...
*/
fd = open("/dev/__properties__", O_RDWR | O_CREAT, 0600);
if (fd < 0)
return -1;
if (ftruncate(fd, size) < 0)
goto out;
data = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
if(data == MAP_FAILED)
goto out;
/* allow the wolves we share with to do nothing but read */
ashmem_set_prot_region(fd, PROT_READ);
close(fd);
fd = open("/dev/__properties__", O_RDONLY);
if (fd < 0)
return -1;
unlink("/dev/__properties__");
w->data = data;
w->size = size;
w->fd = fd;
return 0;
out:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment