diff options
author | Brad Fitzpatrick <bradfitz@android.com> | 2011-03-30 12:39:56 -0700 |
---|---|---|
committer | Brad Fitzpatrick <bradfitz@android.com> | 2011-03-30 15:27:03 -0700 |
commit | 9f1e0e3ae3108086948b74ce58af32df92ff8331 (patch) | |
tree | eb7fc368335f47cff320f3e9cd380d3476ab2371 /init | |
parent | 97919656803126c6b28ea6070fc86d124ac4ef4b (diff) | |
download | system_core-9f1e0e3ae3108086948b74ce58af32df92ff8331.tar.gz system_core-9f1e0e3ae3108086948b74ce58af32df92ff8331.tar.bz2 system_core-9f1e0e3ae3108086948b74ce58af32df92ff8331.zip |
Close the property socket *after* updating properties.
Also remove some dead code.
Bionic update is in change I3e80cecf
Bug: 4185486
Change-Id: I28e06197ff7a452c70b89b9fc5e2bcf0d9d54bbe
Diffstat (limited to 'init')
-rw-r--r-- | init/property_service.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/init/property_service.c b/init/property_service.c index be56a193..7fc4f655 100644 --- a/init/property_service.c +++ b/init/property_service.c @@ -189,15 +189,6 @@ static void update_prop_info(prop_info *pi, const char *value, unsigned len) __futex_wake(&pi->serial, INT32_MAX); } -static int property_write(prop_info *pi, const char *value) -{ - int valuelen = strlen(value); - if(valuelen >= PROP_VALUE_MAX) return -1; - update_prop_info(pi, value, valuelen); - return 0; -} - - /* * Checks permissions for starting/stoping system services. * AID_SYSTEM and AID_ROOT are always allowed. @@ -384,8 +375,8 @@ void handle_property_set_fd() } r = recv(s, &msg, sizeof(msg), 0); - close(s); if(r != sizeof(prop_msg)) { + close(s); ERROR("sys_prop: mis-match msg size recieved: %d expected: %d\n", r, sizeof(prop_msg)); return; @@ -416,6 +407,11 @@ void handle_property_set_fd() default: break; } + + // Note: bionic's property client code assumes that the property + // server will not close the socket until *AFTER* the property is + // written to memory. + close(s); } void get_property_workspace(int *fd, int *sz) |