| 函数逻辑报告 | 
| 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 插件可实现:逻辑报告 代码生成和批量转换代码 |