函数逻辑报告 |
Source Code:security\apparmor\domain.c |
Create Date:2022-07-27 21:32:05 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:aa_change_profile - perform a one-way profile transition*@fqname: name of profile may include namespace (NOT NULL)*@onexec: whether this transition is to take place immediately or at exec*@flags: flags affecting change behavior
函数原型:int aa_change_profile(const char *fqname, int flags)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| const char * | fqname | |
| int | flags |
| 1310 | const char * info = NULL |
| 1312 | stack等于flags按位与AA_CHANGE_STACK |
| 1314 | error等于0 |
| 1327 | 如果task_no_new_privs(当前进程)且非unconfined(label)且非nnp则nnp等于aa_get_label(label) |
| 1335 | 如果flags按位与AA_CHANGE_ONEXEC则 |
| 1337 | 如果stack则op等于OP_STACK_ONEXEC |
| 1339 | 否则op等于OP_CHANGE_ONEXEC |
| 1341 | 否则 |
| 1351 | 如果fqname恒等于'&'则 |
| 1356 | target等于aa_label_parse(label, fqname, GFP_KERNEL, true, false) |
| 1357 | 如果是错误则 |
| 1360 | info等于"label not found" |
| 1362 | target = NULL |
| 1367 | 如果flags按位与AA_CHANGE_TEST或非COMPLAIN_MODE(labels_profile(label))则转到:audit |
| 1373 | 如果非tprofile则 |
| 1379 | 转到:check |
| 1390 | error等于fn_for_each_in_ns(label, profile, change_profile_perms_wrapper(op, auditname, profile, target, stack, request, & perms)) |
| 1400 | check : |
| 1403 | 如果error且非fn_for_each_in_ns(label, profile, COMPLAIN_MODE(profile))则转到:audit |
| 1414 | 如果flags按位与AA_CHANGE_TEST则转到:out |
| 1418 | 如果非stack则 |
| 1419 | new等于fn_label_build_in_ns(label, profile, GFP_KERNEL, aa_get_label(target), aa_get_label( & label)) |
| 1426 | 如果task_no_new_privs(当前进程)且非unconfined(label)且非aa_label_is_subset(new, nnp)则 |
| 1435 | 如果非flags按位与AA_CHANGE_ONEXEC的值则 |
| 1439 | 如果是错误或空则 |
| 1450 | 否则 |
| 1451 | 如果new则 |
| 1452 | aa_put_label(new) |
| 1453 | new = NULL |
| 1460 | audit : |
| 1466 | out : |
| 1467 | aa_put_label(new) |
| 1468 | aa_put_label(target) |
| 1469 | aa_put_label(label) |
| 1471 | 返回:error |
| 名称 | 描述 |
|---|---|
| apparmor_setprocattr |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |