Merge "Check setegid() return values" am: 0d24c8f852
am: fb13dab611
Change-Id: I67b0dfc4049f337631e12ab29330984db9edd04c
This commit is contained in:
commit
5de0f0ea41
1 changed files with 7 additions and 2 deletions
|
|
@ -251,7 +251,10 @@ static void make_device(const char *path,
|
||||||
* some device nodes, so the uid has to be set with chown() and is still
|
* some device nodes, so the uid has to be set with chown() and is still
|
||||||
* racy. Fixing the gid race at least fixed the issue with system_server
|
* racy. Fixing the gid race at least fixed the issue with system_server
|
||||||
* opening dynamic input devices under the AID_INPUT gid. */
|
* opening dynamic input devices under the AID_INPUT gid. */
|
||||||
setegid(gid);
|
if (setegid(gid)) {
|
||||||
|
PLOG(ERROR) << "setegid(" << gid << ") for " << path << " device failed";
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
/* If the node already exists update its SELinux label to handle cases when
|
/* If the node already exists update its SELinux label to handle cases when
|
||||||
* it was created with the wrong context during coldboot procedure. */
|
* it was created with the wrong context during coldboot procedure. */
|
||||||
if (mknod(path, mode, dev) && (errno == EEXIST) && secontext) {
|
if (mknod(path, mode, dev) && (errno == EEXIST) && secontext) {
|
||||||
|
|
@ -273,7 +276,9 @@ static void make_device(const char *path,
|
||||||
|
|
||||||
out:
|
out:
|
||||||
chown(path, uid, -1);
|
chown(path, uid, -1);
|
||||||
setegid(AID_ROOT);
|
if (setegid(AID_ROOT)) {
|
||||||
|
PLOG(FATAL) << "setegid(AID_ROOT) failed";
|
||||||
|
}
|
||||||
|
|
||||||
if (secontext) {
|
if (secontext) {
|
||||||
freecon(secontext);
|
freecon(secontext);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue