函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\auditfilter.c Create Date:2022-07-27 12:27:57
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:Translate struct audit_rule_data to kernel's rule representation.

函数原型:static struct audit_entry *audit_data_to_entry(struct audit_rule_data *data, size_t datasz)

返回类型:struct audit_entry

参数:

类型参数名称
struct audit_rule_data *data
size_tdatasz
444  err等于0
447  remain等于dataszsizeof(structaudit_rule_data)
452  entry等于Common user-space to kernel rule translation.
453  如果是错误则转到:exit_nofree
456  bufp等于string fields buffer
457 i小于field_count循环
458  f等于fields[i]
461  err等于负EINVAL
463  op等于audit_to_op(fieldflags[i])
464  如果op恒等于Audit_bad则转到:exit_free
467  type等于fields[i]
468  f_val等于values[i]
471  如果type恒等于AUDIT_LOGINUIDf_val恒等于AUDIT_UID_UNSET
473  f_val等于0
477  err等于heck if an audit field is valid
478  如果err则转到:exit_free
481  err等于负EINVAL
483  :type恒等于AUDIT_LOGINUID
484  :type恒等于AUDIT_UID
485  :type恒等于AUDIT_EUID
486  :type恒等于AUDIT_SUID
487  :type恒等于AUDIT_FSUID
488  :type恒等于AUDIT_OBJ_UID
490  如果非uid_valid(uid)则转到:exit_free
492  退出
493  :type恒等于AUDIT_GID
494  :type恒等于AUDIT_EGID
495  :type恒等于AUDIT_SGID
496  :type恒等于AUDIT_FSGID
497  :type恒等于AUDIT_OBJ_GID
499  如果非gid_valid(gid)则转到:exit_free
501  退出
502  :type恒等于AUDIT_ARCH
503  val等于f_val
505  退出
506  :type恒等于security label user
507  :type恒等于security label role
508  :type恒等于security label type
509  :type恒等于security label sensitivity label
510  :type恒等于security label clearance label
511  :type恒等于AUDIT_OBJ_USER
512  :type恒等于AUDIT_OBJ_ROLE
513  :type恒等于AUDIT_OBJ_TYPE
514  :type恒等于AUDIT_OBJ_LEV_LOW
515  :type恒等于AUDIT_OBJ_LEV_HIGH
517  如果是错误
518  err等于错误
519  转到:exit_free
522  lsm_str等于str
523  err等于security_audit_rule_init(type, op, str, (void * * ) & lsm_rule)
527  如果err恒等于负EINVAL
528  打印警告信息("audit rule for LSM \'%s\' is invalid\n", str)
530  err等于0
531  否则如果err则转到:exit_free
533  退出
534  :type恒等于AUDIT_WATCH
536  如果是错误
537  err等于错误
538  转到:exit_free
540  err等于audit_to_watch( & rule, str, f_val, op)
541  如果err
542  kfree(str)
543  转到:exit_free
546  退出
547  :type恒等于AUDIT_DIR
549  如果是错误
550  err等于错误
551  转到:exit_free
553  err等于audit_make_tree( & rule, str, op)
554  kfree(str)
555  如果err则转到:exit_free
558  退出
559  :type恒等于AUDIT_INODE
560  val等于f_val
562  如果err则转到:exit_free
564  退出
565  :type恒等于AUDIT_FILTERKEY
569  如果是错误
570  err等于错误
571  转到:exit_free
575  退出
576  :type恒等于AUDIT_EXE
580  如果是错误
581  err等于错误
582  转到:exit_free
585  如果是错误
586  kfree(str)
587  err等于错误
588  转到:exit_free
591  exe等于audit_mark
592  退出
593  默认
594  val等于f_val
595  退出
599  如果 quick access to an inode field op恒等于Audit_not_equal quick access to an inode field = NULL
602  exit_nofree :
603  返回:entry
605  exit_free :
606  如果 associated watched tree audit_put_tree( associated watched tree )
608  如果exe
610  audit_free_rule(entry)
611  返回:错误号
调用者
名称描述
audit_rule_changeaudit_rule_change - apply all rules to the specified message type*@type: audit message type*@seq: netlink audit message sequence (serial) number*@data: payload data*@datasz: size of payload data