1181 |
ee->previous_domain = task->ccs_domain_info; |
ee->previous_domain = task->ccs_domain_info; |
1182 |
/* Clear manager flag. */ |
/* Clear manager flag. */ |
1183 |
task->ccs_flags &= ~CCS_TASK_IS_POLICY_MANAGER; |
task->ccs_flags &= ~CCS_TASK_IS_POLICY_MANAGER; |
|
/* Tell GC that I started execve(). */ |
|
|
task->ccs_flags |= CCS_TASK_IS_IN_EXECVE; |
|
|
/* |
|
|
* Make task->ccs_flags visible to GC before changing |
|
|
* task->ccs_domain_info . |
|
|
*/ |
|
|
smp_mb(); |
|
1184 |
*eep = ee; |
*eep = ee; |
1185 |
ccs_init_request_info(&ee->r, NULL, CCS_MAC_FILE_EXECUTE); |
ccs_init_request_info(&ee->r, NULL, CCS_MAC_FILE_EXECUTE); |
1186 |
ee->r.ee = ee; |
ee->r.ee = ee; |
1206 |
if (retval < 0) |
if (retval < 0) |
1207 |
goto out; |
goto out; |
1208 |
/* |
/* |
1209 |
|
* Tell GC that I started execve(). |
1210 |
|
* Also, tell open_exec() to check read permission. |
1211 |
|
*/ |
1212 |
|
task->ccs_flags |= CCS_TASK_IS_IN_EXECVE; |
1213 |
|
/* |
1214 |
|
* Make task->ccs_flags visible to GC before changing |
1215 |
|
* task->ccs_domain_info . |
1216 |
|
*/ |
1217 |
|
smp_mb(); |
1218 |
|
/* |
1219 |
* Proceed to the next domain in order to allow reaching via PID. |
* Proceed to the next domain in order to allow reaching via PID. |
1220 |
* It will be reverted if execve() failed. Reverting is not good. |
* It will be reverted if execve() failed. Reverting is not good. |
1221 |
* But it is better than being unable to reach via PID in interactive |
* But it is better than being unable to reach via PID in interactive |