logd: test: logd.sepolicy* errors
If setcon fails, try alternate setcon, and then if it still fails call getcon to confirm if it is an OK sepolicy context anyways. Test: gTest logd-unit-tests --gtest_filter=logd.sepolicy* Change-Id: Iaf20b8a1a4a7312247288e1879884a54893c15ae
This commit is contained in:
parent
3d5cd59d73
commit
bc1d2aeff9
1 changed files with 9 additions and 7 deletions
|
@ -999,16 +999,18 @@ static pid_t sepolicy_rate(unsigned rate, unsigned num) {
|
|||
}
|
||||
|
||||
// We may have DAC, but let's not have MAC
|
||||
if (setcon("u:object_r:shell:s0") < 0) {
|
||||
if ((setcon("u:object_r:shell:s0") < 0) && (setcon("u:r:shell:s0") < 0)) {
|
||||
int save_errno = errno;
|
||||
security_context_t context;
|
||||
getcon(&context);
|
||||
fprintf(stderr, "setcon(\"u:r:shell:s0\") failed @\"%s\" %s\n", context,
|
||||
strerror(save_errno));
|
||||
freecon(context);
|
||||
_exit(-1);
|
||||
// NOTREACHED
|
||||
return 0;
|
||||
if (strcmp(context, "u:r:shell:s0")) {
|
||||
fprintf(stderr, "setcon(\"u:r:shell:s0\") failed @\"%s\" %s\n",
|
||||
context, strerror(save_errno));
|
||||
freecon(context);
|
||||
_exit(-1);
|
||||
// NOTREACHED
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// The key here is we are root, but we are in u:r:shell:s0,
|
||||
|
|
Loading…
Reference in a new issue