---
Fuzzer filename: '/src/selinux/libsepol/fuzz/binpolicy-fuzzer.c'
All functions:
  Function list name: All functions
  Elements:
    - functionName:    write_binary_policy
      functionSourceFile: '/src/selinux/libsepol/fuzz/binpolicy-fuzzer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 25
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - policy_file_init
        - policydb_write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:22,2'
          Dst:             policy_file_init
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:25,9'
          Dst:             policydb_write
    - functionName:    LLVMFuzzerTestOneInput
      functionSourceFile: '/src/selinux/libsepol/fuzz/binpolicy-fuzzer.c'
      linkageType:     externalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         47
      ICount:          244
      EdgeCount:       59
      CyclomaticComplexity: 14
      functionsReached:
        - abort
        - check_assertions
        - expand_module
        - fclose
        - fopen64
        - hierarchy_check_constraints
        - link_modules
        - policy_file_init
        - policydb_destroy
        - policydb_init
        - policydb_load_isids
        - policydb_optimize
        - policydb_read
        - policydb_validate
        - sepol_debug
        - sepol_kernel_policydb_to_cil
        - sepol_kernel_policydb_to_conf
        - sepol_sidtab_destroy
        - write_binary_policy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:35,2'
          Dst:             sepol_debug
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:37,2'
          Dst:             policy_file_init
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:42,6'
          Dst:             policydb_init
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:45,6'
          Dst:             policydb_read
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:48,6'
          Dst:             policydb_load_isids
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:52,10'
          Dst:             policydb_optimize
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:54,7'
          Dst:             policydb_validate
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:55,4'
          Dst:             abort
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:59,10'
          Dst:             check_assertions
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:61,9'
          Dst:             hierarchy_check_constraints
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:63,12'
          Dst:             fopen64
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:67,6'
          Dst:             write_binary_policy
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:68,3'
          Dst:             abort
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:71,7'
          Dst:             sepol_kernel_policydb_to_conf
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:72,4'
          Dst:             abort
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:74,7'
          Dst:             sepol_kernel_policydb_to_cil
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:75,4'
          Dst:             abort
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:78,7'
          Dst:             link_modules
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:81,7'
          Dst:             policydb_init
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:84,7'
          Dst:             expand_module
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:87,10'
          Dst:             check_assertions
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:88,10'
          Dst:             hierarchy_check_constraints
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:90,7'
          Dst:             write_binary_policy
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:91,4'
          Dst:             abort
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:93,7'
          Dst:             sepol_kernel_policydb_to_conf
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:94,4'
          Dst:             abort
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:96,7'
          Dst:             sepol_kernel_policydb_to_cil
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:97,4'
          Dst:             abort
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:103,3'
          Dst:             fclose
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:105,2'
          Dst:             policydb_destroy
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:106,2'
          Dst:             policydb_destroy
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:107,2'
          Dst:             sepol_sidtab_destroy
    - functionName:    abort
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fopen64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fclose
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    policy_name
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          20
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    extended_permissions_violated
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          288
      EdgeCount:       54
      CyclomaticComplexity: 14
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    report_failure
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          326
      EdgeCount:       53
      CyclomaticComplexity: 13
      functionsReached:
        - policy_name
        - sepol_av_to_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:48,18'
          Dst:             sepol_av_to_string
        - Src:             'assertion.c:51,3'
          Dst:             policy_name
    - functionName:    report_assertion_extended_permissions
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 328
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         157
      ICount:          1043
      EdgeCount:       209
      CyclomaticComplexity: 54
      functionsReached:
        - avtab_search_node
        - avtab_search_node_next
        - check_extended_permissions
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - extended_permissions_violated
        - match_any_class_permissions
        - match_node_key
        - policy_name
        - sepol_av_to_string
        - sepol_extended_perms_to_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:183,2'
          Dst:             ebitmap_start
        - Src:             'assertion.c:183,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'assertion.c:185,3'
          Dst:             ebitmap_start
        - Src:             'assertion.c:185,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'assertion.c:187,16'
          Dst:             avtab_search_node
        - Src:             'assertion.c:197,9'
          Dst:             check_extended_permissions
        - Src:             'assertion.c:200,6'
          Dst:             extended_permissions_violated
        - Src:             'assertion.c:201,19'
          Dst:             sepol_extended_perms_to_string
        - Src:             'assertion.c:203,6'
          Dst:             policy_name
        - Src:             'assertion.c:189,16'
          Dst:             avtab_search_node_next
        - Src:             'assertion.c:225,11'
          Dst:             match_node_key
        - Src:             'assertion.c:228,10'
          Dst:             match_any_class_permissions
        - Src:             'assertion.c:243,10'
          Dst:             check_extended_permissions
        - Src:             'assertion.c:246,7'
          Dst:             extended_permissions_violated
        - Src:             'assertion.c:247,20'
          Dst:             sepol_extended_perms_to_string
        - Src:             'assertion.c:249,7'
          Dst:             policy_name
        - Src:             'assertion.c:267,11'
          Dst:             match_node_key
        - Src:             'assertion.c:270,10'
          Dst:             match_any_class_permissions
        - Src:             'assertion.c:285,10'
          Dst:             check_extended_permissions
        - Src:             'assertion.c:288,7'
          Dst:             extended_permissions_violated
        - Src:             'assertion.c:289,20'
          Dst:             sepol_extended_perms_to_string
        - Src:             'assertion.c:291,7'
          Dst:             policy_name
        - Src:             'assertion.c:185,3'
          Dst:             ebitmap_next
        - Src:             'assertion.c:183,2'
          Dst:             ebitmap_next
        - Src:             'assertion.c:314,19'
          Dst:             sepol_av_to_string
        - Src:             'assertion.c:316,3'
          Dst:             policy_name
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    check_extended_permissions
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          254
      EdgeCount:       50
      CyclomaticComplexity: 14
      functionsReached:
        - extended_permissions_and
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:100,9'
          Dst:             extended_permissions_and
        - Src:             'assertion.c:109,8'
          Dst:             extended_permissions_and
        - Src:             'assertion.c:113,9'
          Dst:             extended_permissions_and
    - functionName:    match_node_key
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    match_any_class_permissions
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    extended_permissions_and
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    report_assertion_avtab_matches
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 332
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         78
      ICount:          496
      EdgeCount:       105
      CyclomaticComplexity: 29
      functionsReached:
        - ebitmap_and
        - ebitmap_cpy
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - ebitmap_union
        - match_any_class_permissions
        - report_assertion_extended_permissions
        - report_failure
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:349,7'
          Dst:             match_any_class_permissions
        - Src:             'assertion.c:352,2'
          Dst:             ebitmap_init
        - Src:             'assertion.c:353,2'
          Dst:             ebitmap_init
        - Src:             'assertion.c:354,2'
          Dst:             ebitmap_init
        - Src:             'assertion.c:356,7'
          Dst:             ebitmap_and
        - Src:             'assertion.c:367,9'
          Dst:             ebitmap_cpy
        - Src:             'assertion.c:370,9'
          Dst:             ebitmap_and
        - Src:             'assertion.c:375,8'
          Dst:             ebitmap_and
        - Src:             'assertion.c:380,9'
          Dst:             ebitmap_and
        - Src:             'assertion.c:385,10'
          Dst:             ebitmap_union
        - Src:             'assertion.c:402,3'
          Dst:             ebitmap_start
        - Src:             'assertion.c:402,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'assertion.c:403,4'
          Dst:             ebitmap_start
        - Src:             'assertion.c:403,4'
          Dst:             ebitmap_node_get_bit
        - Src:             'assertion.c:409,19'
          Dst:             report_assertion_extended_permissions
        - Src:             'assertion.c:414,6'
          Dst:             report_failure
        - Src:             'assertion.c:403,4'
          Dst:             ebitmap_next
        - Src:             'assertion.c:402,3'
          Dst:             ebitmap_next
        - Src:             'assertion.c:422,2'
          Dst:             ebitmap_destroy
        - Src:             'assertion.c:423,2'
          Dst:             ebitmap_destroy
        - Src:             'assertion.c:424,2'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    check_assertion_extended_permissions_avtab
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 561
      functionDepth:   0
      returnType:      bool
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         114
      ICount:          626
      EdgeCount:       155
      CyclomaticComplexity: 43
      functionsReached:
        - avtab_search_node
        - avtab_search_node_next
        - check_extended_permissions
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - match_any_class_permissions
        - match_node_key
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:476,2'
          Dst:             ebitmap_start
        - Src:             'assertion.c:476,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'assertion.c:478,3'
          Dst:             ebitmap_start
        - Src:             'assertion.c:478,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'assertion.c:480,16'
          Dst:             avtab_search_node
        - Src:             'assertion.c:490,9'
          Dst:             check_extended_permissions
        - Src:             'assertion.c:482,16'
          Dst:             avtab_search_node_next
        - Src:             'assertion.c:503,11'
          Dst:             match_node_key
        - Src:             'assertion.c:506,51'
          Dst:             match_any_class_permissions
        - Src:             'assertion.c:521,10'
          Dst:             check_extended_permissions
        - Src:             'assertion.c:530,11'
          Dst:             match_node_key
        - Src:             'assertion.c:533,51'
          Dst:             match_any_class_permissions
        - Src:             'assertion.c:548,10'
          Dst:             check_extended_permissions
        - Src:             'assertion.c:478,3'
          Dst:             ebitmap_next
        - Src:             'assertion.c:476,2'
          Dst:             ebitmap_next
    - functionName:    check_assertion_extended_permissions
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 582
      functionLinenumberEnd: 657
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         63
      ICount:          370
      EdgeCount:       85
      CyclomaticComplexity: 24
      functionsReached:
        - check_assertion_extended_permissions_avtab
        - ebitmap_and
        - ebitmap_cpy
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - ebitmap_union
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:590,2'
          Dst:             ebitmap_init
        - Src:             'assertion.c:591,2'
          Dst:             ebitmap_init
        - Src:             'assertion.c:592,2'
          Dst:             ebitmap_init
        - Src:             'assertion.c:594,7'
          Dst:             ebitmap_and
        - Src:             'assertion.c:607,9'
          Dst:             ebitmap_cpy
        - Src:             'assertion.c:610,9'
          Dst:             ebitmap_and
        - Src:             'assertion.c:615,8'
          Dst:             ebitmap_and
        - Src:             'assertion.c:620,9'
          Dst:             ebitmap_and
        - Src:             'assertion.c:625,10'
          Dst:             ebitmap_union
        - Src:             'assertion.c:637,2'
          Dst:             ebitmap_start
        - Src:             'assertion.c:637,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'assertion.c:638,3'
          Dst:             ebitmap_start
        - Src:             'assertion.c:638,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'assertion.c:643,8'
          Dst:             check_assertion_extended_permissions_avtab
        - Src:             'assertion.c:638,3'
          Dst:             ebitmap_next
        - Src:             'assertion.c:637,2'
          Dst:             ebitmap_next
        - Src:             'assertion.c:654,2'
          Dst:             ebitmap_destroy
        - Src:             'assertion.c:655,2'
          Dst:             ebitmap_destroy
        - Src:             'assertion.c:656,2'
          Dst:             ebitmap_destroy
    - functionName:    check_assertion_self_match
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 716
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_and
        - ebitmap_destroy
        - ebitmap_match_any
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:724,7'
          Dst:             ebitmap_and
        - Src:             'assertion.c:728,7'
          Dst:             ebitmap_match_any
        - Src:             'assertion.c:737,2'
          Dst:             ebitmap_destroy
    - functionName:    check_assertion_notself_match
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 661
      functionLinenumberEnd: 712
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          170
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - ebitmap_and
        - ebitmap_cardinality
        - ebitmap_cpy
        - ebitmap_destroy
        - ebitmap_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:666,2'
          Dst:             ebitmap_init
        - Src:             'assertion.c:667,2'
          Dst:             ebitmap_init
        - Src:             'assertion.c:669,7'
          Dst:             ebitmap_and
        - Src:             'assertion.c:675,8'
          Dst:             ebitmap_cpy
        - Src:             'assertion.c:678,8'
          Dst:             ebitmap_and
        - Src:             'assertion.c:683,20'
          Dst:             ebitmap_cardinality
        - Src:             'assertion.c:684,20'
          Dst:             ebitmap_cardinality
        - Src:             'assertion.c:692,8'
          Dst:             ebitmap_and
        - Src:             'assertion.c:694,4'
          Dst:             ebitmap_destroy
        - Src:             'assertion.c:697,17'
          Dst:             ebitmap_cardinality
        - Src:             'assertion.c:698,3'
          Dst:             ebitmap_destroy
        - Src:             'assertion.c:710,2'
          Dst:             ebitmap_destroy
        - Src:             'assertion.c:711,2'
          Dst:             ebitmap_destroy
    - functionName:    report_assertion_failures
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 452
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          75
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - avtab_map
        - report_assertion_avtab_matches
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:439,7'
          Dst:             avtab_map
        - Src:             'assertion.c:439,7'
          Dst:             report_assertion_avtab_matches
        - Src:             'assertion.c:444,7'
          Dst:             avtab_map
        - Src:             'assertion.c:444,7'
          Dst:             report_assertion_avtab_matches
    - functionName:    check_assertions
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 817
      functionLinenumberEnd: 844
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          254
      EdgeCount:       56
      CyclomaticComplexity: 14
      functionsReached:
        - check_assertion
        - report_assertion_failures
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:825,8'
          Dst:             check_assertion
        - Src:             'assertion.c:831,9'
          Dst:             report_assertion_failures
    - functionName:    check_assertion
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 795
      functionLinenumberEnd: 812
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - avtab_map
        - check_assertion_avtab_match
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:805,7'
          Dst:             avtab_map
        - Src:             'assertion.c:805,7'
          Dst:             check_assertion_avtab_match
        - Src:             'assertion.c:809,8'
          Dst:             avtab_map
        - Src:             'assertion.c:809,8'
          Dst:             check_assertion_avtab_match
    - functionName:    check_assertion_avtab_match
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 742
      functionLinenumberEnd: 792
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          218
      EdgeCount:       49
      CyclomaticComplexity: 15
      functionsReached:
        - check_assertion_extended_permissions
        - check_assertion_notself_match
        - check_assertion_self_match
        - ebitmap_match_any
        - match_any_class_permissions
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:751,7'
          Dst:             match_any_class_permissions
        - Src:             'assertion.c:754,7'
          Dst:             ebitmap_match_any
        - Src:             'assertion.c:758,8'
          Dst:             check_assertion_notself_match
        - Src:             'assertion.c:765,8'
          Dst:             ebitmap_match_any
        - Src:             'assertion.c:767,10'
          Dst:             check_assertion_self_match
        - Src:             'assertion.c:779,8'
          Dst:             check_assertion_extended_permissions
    - functionName:    avtab_insertf
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 586
      functionLinenumberEnd: 587
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - avtab_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'avtab.c:587,9'
          Dst:             avtab_insert
    - functionName:    avtab_insert
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          285
      EdgeCount:       56
      CyclomaticComplexity: 17
      functionsReached:
        - avtab_hash
        - avtab_insert_node
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'avtab.c:146,11'
          Dst:             avtab_hash
        - Src:             'avtab.c:169,12'
          Dst:             avtab_insert_node
    - functionName:    avtab_hash
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          139
      EdgeCount:       13
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avtab_insert_node
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          147
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'avtab.c:106,12'
          Dst:             calloc
    - functionName:    calloc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    84
      BranchProfiles:  []
      Callsites:       []
    - functionName:    exceeds_available_bytes
      functionSourceFile: '/src/selinux/libsepol/src/./private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avtab_read
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 591
      functionLinenumberEnd: 631
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         76
      ICount:          444
      EdgeCount:       97
      CyclomaticComplexity: 23
      functionsReached:
        - avtab_alloc
        - avtab_destroy
        - avtab_insertf
        - avtab_read_item
        - exceeds_available_bytes
        - next_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'avtab.c:597,7'
          Dst:             next_entry
        - Src:             'avtab.c:603,32'
          Dst:             exceeds_available_bytes
        - Src:             'avtab.c:608,7'
          Dst:             avtab_alloc
        - Src:             'avtab.c:615,8'
          Dst:             avtab_read_item
        - Src:             'avtab.c:615,8'
          Dst:             avtab_insertf
        - Src:             'avtab.c:629,2'
          Dst:             avtab_destroy
    - functionName:    avtab_alloc
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 364
      functionLinenumberEnd: 392
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          115
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'avtab.c:384,14'
          Dst:             calloc
    - functionName:    avtab_read_item
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 437
      functionLinenumberEnd: 582
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         212
      ICount:          1422
      EdgeCount:       275
      CyclomaticComplexity: 65
      functionsReached:
        - next_entry
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'avtab.c:452,8'
          Dst:             next_entry
        - Src:             'avtab.c:464,8'
          Dst:             next_entry
        - Src:             'avtab.c:526,7'
          Dst:             next_entry
        - Src:             'avtab.c:553,8'
          Dst:             next_entry
        - Src:             'avtab.c:559,8'
          Dst:             next_entry
        - Src:             'avtab.c:565,8'
          Dst:             next_entry
        - Src:             'avtab.c:574,8'
          Dst:             next_entry
    - functionName:    avtab_destroy
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          117
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avtab_hash_eval
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          102
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'avtab.c:416,2'
          Dst:             printf
    - functionName:    printf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avtab_init
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avtab_map
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          91
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avtab_search_node_next
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          226
      EdgeCount:       43
      CyclomaticComplexity: 13
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avtab_search_node
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          251
      EdgeCount:       50
      CyclomaticComplexity: 15
      functionsReached:
        - avtab_hash
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'avtab.c:258,11'
          Dst:             avtab_hash
    - functionName:    avtab_search
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          252
      EdgeCount:       50
      CyclomaticComplexity: 15
      functionsReached:
        - avtab_hash
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'avtab.c:223,11'
          Dst:             avtab_hash
    - functionName:    avtab_insert_nonunique
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          264
      EdgeCount:       50
      CyclomaticComplexity: 15
      functionsReached:
        - avtab_hash
        - avtab_insert_node
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'avtab.c:190,11'
          Dst:             avtab_hash
        - Src:             'avtab.c:208,12'
          Dst:             avtab_insert_node
    - functionName:    sepol_msg_set_callback
      functionSourceFile: '/src/selinux/libsepol/src/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_msg_get_fname
      functionSourceFile: '/src/selinux/libsepol/src/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_msg_get_channel
      functionSourceFile: '/src/selinux/libsepol/src/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_msg_get_level
      functionSourceFile: '/src/selinux/libsepol/src/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 23
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_debug
      functionSourceFile: '/src/selinux/libsepol/src/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 17
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_msg_default_handler
      functionSourceFile: '/src/selinux/libsepol/src/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       19
      CyclomaticComplexity: 11
      functionsReached:
        - fprintf
        - sepol_msg_get_channel
        - sepol_msg_get_fname
        - sepol_msg_get_level
        - vfprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'debug.c:49,2'
          Branch Sides:    []
      Callsites:
        - Src:             'debug.c:49,10'
          Dst:             sepol_msg_get_level
        - Src:             'debug.c:62,3'
          Dst:             sepol_msg_get_channel
        - Src:             'debug.c:62,34'
          Dst:             sepol_msg_get_fname
        - Src:             'debug.c:61,2'
          Dst:             fprintf
        - Src:             'debug.c:65,2'
          Dst:             vfprintf
        - Src:             'debug.c:68,2'
          Dst:             fprintf
    - functionName:    fprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vfprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_read
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 632
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         99
      ICount:          682
      EdgeCount:       127
      CyclomaticComplexity: 30
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
        - next_entry
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'ebitmap.c:537,2'
          Dst:             ebitmap_init
        - Src:             'ebitmap.c:539,7'
          Dst:             next_entry
        - Src:             'ebitmap.c:567,8'
          Dst:             next_entry
        - Src:             'ebitmap.c:592,8'
          Dst:             next_entry
        - Src:             'ebitmap.c:631,2'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_destroy
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 512
      functionLinenumberEnd: 528
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    119
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_highest_set_bit
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 492
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          65
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_init_range
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 489
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          215
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - ebitmap_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ebitmap.c:453,2'
          Dst:             ebitmap_init
    - functionName:    ebitmap_set_bit
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          310
      EdgeCount:       58
      CyclomaticComplexity: 16
      functionsReached: []
      functionUses:    42
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_get_bit
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    35
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_match_any
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          104
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_contains
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          121
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_cpy
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          86
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
      functionUses:    27
      BranchProfiles:  []
      Callsites:
        - Src:             'ebitmap.c:276,2'
          Dst:             ebitmap_init
        - Src:             'ebitmap.c:282,4'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_cmp
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          109
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_hamming_distance
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_cardinality
        - ebitmap_cmp
        - ebitmap_destroy
        - ebitmap_xor
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ebitmap.c:240,6'
          Dst:             ebitmap_cmp
        - Src:             'ebitmap.c:242,7'
          Dst:             ebitmap_xor
        - Src:             'ebitmap.c:245,13'
          Dst:             ebitmap_cardinality
        - Src:             'ebitmap.c:246,2'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_xor
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          228
      EdgeCount:       46
      CyclomaticComplexity: 13
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ebitmap.c:120,2'
          Dst:             ebitmap_init
        - Src:             'ebitmap.c:144,5'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_cardinality
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          38
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_andnot
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_and
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_not
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ebitmap.c:213,2'
          Dst:             ebitmap_init
        - Src:             'ebitmap.c:214,7'
          Dst:             ebitmap_not
        - Src:             'ebitmap.c:217,7'
          Dst:             ebitmap_and
        - Src:             'ebitmap.c:218,2'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_not
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          178
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ebitmap.c:169,2'
          Dst:             ebitmap_init
        - Src:             'ebitmap.c:190,5'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_and
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          175
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'ebitmap.c:77,2'
          Dst:             ebitmap_init
        - Src:             'ebitmap.c:87,6'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_union
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - ebitmap_or
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'ebitmap.c:63,6'
          Dst:             ebitmap_or
        - Src:             'ebitmap.c:65,2'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_or
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          225
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ebitmap.c:23,2'
          Dst:             ebitmap_init
        - Src:             'ebitmap.c:31,4'
          Dst:             ebitmap_destroy
    - functionName:    expand_cond_insert
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3531
      functionLinenumberEnd: 3573
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          253
      EdgeCount:       40
      CyclomaticComplexity: 8
      functionsReached:
        - avtab_insert_nonunique
        - avtab_search_node
      functionUses:    4
      BranchProfiles:
        - Branch String:   'expand.c:3559,2'
          Branch Sides:    []
      Callsites:
        - Src:             'expand.c:3536,9'
          Dst:             avtab_search_node
        - Src:             'expand.c:3540,10'
          Dst:             avtab_insert_nonunique
    - functionName:    expand_avtab_insert
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3387
      functionLinenumberEnd: 3446
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          334
      EdgeCount:       60
      CyclomaticComplexity: 12
      functionsReached:
        - avtab_insert_nonunique
        - avtab_search_node
        - avtab_search_node_next
      functionUses:    4
      BranchProfiles:
        - Branch String:   'expand.c:3426,2'
          Branch Sides:    []
      Callsites:
        - Src:             'expand.c:3399,10'
          Dst:             avtab_search_node
        - Src:             'expand.c:3406,11'
          Dst:             avtab_search_node_next
        - Src:             'expand.c:3411,10'
          Dst:             avtab_search_node
        - Src:             'expand.c:3416,10'
          Dst:             avtab_insert_nonunique
    - functionName:    mls_range_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - mls_level_cpy
        - mls_level_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:125,6'
          Dst:             mls_level_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:128,6'
          Dst:             mls_level_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:134,2'
          Dst:             mls_level_destroy
    - functionName:    mls_level_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_cpy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:81,6'
          Dst:             ebitmap_cpy
    - functionName:    mls_level_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - mls_level_init
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:98,2'
          Dst:             ebitmap_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:99,2'
          Dst:             mls_level_init
    - functionName:    mls_level_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_context_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_range_cpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:49,6'
          Dst:             mls_range_cpy
    - functionName:    context_copy
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2270
      functionLinenumberEnd: 2274
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          59
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_context_cpy
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2274,9'
          Dst:             mls_context_cpy
    - functionName:    ocontext_copy_xen
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2278
      functionLinenumberEnd: 2341
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         74
      ICount:          494
      EdgeCount:       91
      CyclomaticComplexity: 19
      functionsReached:
        - context_copy
        - strdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'expand.c:2302,4'
          Branch Sides:    []
      Callsites:
        - Src:             'expand.c:2322,17'
          Dst:             strdup
        - Src:             'expand.c:2333,8'
          Dst:             context_copy
    - functionName:    strdup
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    80
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ocontext_copy_selinux
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2344
      functionLinenumberEnd: 2434
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         116
      ICount:          804
      EdgeCount:       144
      CyclomaticComplexity: 30
      functionsReached:
        - context_copy
        - strdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'expand.c:2368,4'
          Branch Sides:    []
      Callsites:
        - Src:             'expand.c:2374,17'
          Dst:             strdup
        - Src:             'expand.c:2379,9'
          Dst:             context_copy
        - Src:             'expand.c:2392,31'
          Dst:             strdup
        - Src:             'expand.c:2410,17'
          Dst:             strdup
        - Src:             'expand.c:2427,8'
          Dst:             context_copy
    - functionName:    ebitmap_expand_roles
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          139
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - __assert_fail
        - ebitmap_cpy
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_set_bit
        - ebitmap_start
        - ebitmap_union
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:81,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:82,2'
          Dst:             ebitmap_start
        - Src:             'expand.c:82,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:84,3'
          Dst:             __assert_fail
        - Src:             'expand.c:86,8'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:87,5'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:91,8'
          Dst:             ebitmap_union
        - Src:             'expand.c:92,5'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:82,2'
          Dst:             ebitmap_next
        - Src:             'expand.c:97,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:98,6'
          Dst:             ebitmap_cpy
        - Src:             'expand.c:99,3'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:102,2'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    28
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    33
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    33
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __assert_fail
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    30
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    33
      BranchProfiles:  []
      Callsites:       []
    - functionName:    constraint_node_clone
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 377
      functionLinenumberEnd: 466
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          401
      EdgeCount:       85
      CyclomaticComplexity: 23
      functionsReached:
        - calloc
        - constraint_expr_destroy
        - constraint_expr_init
        - ebitmap_cpy
        - ebitmap_expand_roles
        - expand_convert_type_set
        - map_ebitmap
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:391,20'
          Dst:             calloc
        - Src:             'expand.c:394,8'
          Dst:             constraint_expr_init
        - Src:             'expand.c:407,10'
          Dst:             map_ebitmap
        - Src:             'expand.c:414,10'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:424,10'
          Dst:             map_ebitmap
        - Src:             'expand.c:427,10'
          Dst:             ebitmap_expand_roles
        - Src:             'expand.c:431,10'
          Dst:             map_ebitmap
        - Src:             'expand.c:436,10'
          Dst:             ebitmap_cpy
        - Src:             'expand.c:464,2'
          Dst:             constraint_expr_destroy
    - functionName:    map_ebitmap
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          100
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_set_bit
        - ebitmap_start
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:63,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:65,2'
          Dst:             ebitmap_start
        - Src:             'expand.c:65,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:68,7'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:65,2'
          Dst:             ebitmap_next
    - functionName:    expand_convert_type_set
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2553
      functionLinenumberEnd: 2572
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          74
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - map_ebitmap
        - type_set_destroy
        - type_set_expand
        - type_set_init
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2556,2'
          Dst:             type_set_init
        - Src:             'expand.c:2558,6'
          Dst:             map_ebitmap
        - Src:             'expand.c:2561,6'
          Dst:             map_ebitmap
        - Src:             'expand.c:2566,6'
          Dst:             type_set_expand
        - Src:             'expand.c:2569,2'
          Dst:             type_set_destroy
    - functionName:    type_set_expand
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2688
      functionLinenumberEnd: 2788
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         110
      ICount:          571
      EdgeCount:       147
      CyclomaticComplexity: 39
      functionsReached:
        - __assert_fail
        - ebitmap_destroy
        - ebitmap_get_bit
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_set_bit
        - ebitmap_start
        - ebitmap_union
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2696,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2697,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2700,2'
          Dst:             ebitmap_start
        - Src:             'expand.c:2700,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:2716,8'
          Dst:             ebitmap_union
        - Src:             'expand.c:2720,8'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2700,2'
          Dst:             ebitmap_next
        - Src:             'expand.c:2727,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2728,2'
          Dst:             ebitmap_start
        - Src:             'expand.c:2728,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:2731,8'
          Dst:             ebitmap_union
        - Src:             'expand.c:2737,8'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2728,2'
          Dst:             ebitmap_next
        - Src:             'expand.c:2746,8'
          Dst:             ebitmap_get_bit
        - Src:             'expand.c:2751,8'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2757,2'
          Dst:             ebitmap_start
        - Src:             'expand.c:2757,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:2758,8'
          Dst:             ebitmap_get_bit
        - Src:             'expand.c:2759,8'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2757,2'
          Dst:             ebitmap_next
        - Src:             'expand.c:2767,5'
          Dst:             ebitmap_get_bit
        - Src:             'expand.c:2767,5'
          Dst:             __assert_fail
        - Src:             'expand.c:2770,8'
          Dst:             ebitmap_get_bit
        - Src:             'expand.c:2771,9'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2774,9'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2784,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2786,2'
          Dst:             ebitmap_destroy
    - functionName:    class_copy_default_new_object
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 471
      functionLinenumberEnd: 502
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          413
      EdgeCount:       88
      CyclomaticComplexity: 22
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    perm_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 313
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          94
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - hashtab_insert
        - strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:296,11'
          Dst:             strdup
        - Src:             'expand.c:305,8'
          Dst:             hashtab_insert
    - functionName:    cond_avrule_list_copy
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2163
      functionLinenumberEnd: 2179
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - convert_and_expand_rule
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2168,7'
          Dst:             convert_and_expand_rule
    - functionName:    convert_and_expand_rule
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2127
      functionLinenumberEnd: 2157
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          156
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
        - expand_convert_type_set
        - expand_rule_helper
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2137,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2138,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2144,6'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:2147,6'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:2151,11'
          Dst:             expand_rule_helper
        - Src:             'expand.c:2154,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2155,2'
          Dst:             ebitmap_destroy
    - functionName:    expand_rule_helper
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2072
      functionLinenumberEnd: 2113
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          284
      EdgeCount:       54
      CyclomaticComplexity: 15
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - expand_avrule_helper
        - expand_terule_helper
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2077,2'
          Dst:             ebitmap_start
        - Src:             'expand.c:2077,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:2080,14'
          Dst:             expand_avrule_helper
        - Src:             'expand.c:2086,14'
          Dst:             expand_terule_helper
        - Src:             'expand.c:2094,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:2094,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:2096,14'
          Dst:             expand_avrule_helper
        - Src:             'expand.c:2102,14'
          Dst:             expand_terule_helper
        - Src:             'expand.c:2094,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:2077,2'
          Dst:             ebitmap_next
    - functionName:    expand_avrule_helper
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2001
      functionLinenumberEnd: 2064
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          284
      EdgeCount:       50
      CyclomaticComplexity: 10
      functionsReached:
        - allocate_xperms
        - avrule_to_avtab_spec
        - find_avtab_node
      functionUses:    2
      BranchProfiles:
        - Branch String:   'expand.c:2030,3'
          Branch Sides:    []
      Callsites:
        - Src:             'expand.c:2014,20'
          Dst:             avrule_to_avtab_spec
        - Src:             'expand.c:2020,10'
          Dst:             find_avtab_node
        - Src:             'expand.c:2053,8'
          Dst:             allocate_xperms
    - functionName:    expand_terule_helper
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1866
      functionLinenumberEnd: 1955
      functionDepth:   0
      returnType:      int
      argCount:        11
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          538
      EdgeCount:       92
      CyclomaticComplexity: 24
      functionsReached:
        - avrule_to_avtab_spec
        - avtab_search_node
        - find_avtab_node
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1879,20'
          Dst:             avrule_to_avtab_spec
        - Src:             'expand.c:1893,10'
          Dst:             avtab_search_node
        - Src:             'expand.c:1897,11'
          Dst:             avtab_search_node
        - Src:             'expand.c:1939,10'
          Dst:             find_avtab_node
    - functionName:    avrule_to_avtab_spec
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1851
      functionLinenumberEnd: 1853
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          20
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    find_avtab_node
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1782
      functionLinenumberEnd: 1848
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          382
      EdgeCount:       84
      CyclomaticComplexity: 21
      functionsReached:
        - avtab_insert_nonunique
        - avtab_search_node
        - avtab_search_node_next
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1794,11'
          Dst:             avtab_search_node
        - Src:             'expand.c:1801,12'
          Dst:             avtab_search_node_next
        - Src:             'expand.c:1807,10'
          Dst:             avtab_search_node
        - Src:             'expand.c:1816,11'
          Dst:             avtab_search_node_next
        - Src:             'expand.c:1828,10'
          Dst:             avtab_insert_nonunique
    - functionName:    allocate_xperms
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1960
      functionLinenumberEnd: 1993
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          171
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'expand.c:1974,2'
          Branch Sides:    []
      Callsites:
        - Src:             'expand.c:1966,4'
          Dst:             calloc
    - functionName:    cond_node_map_bools
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2182
      functionLinenumberEnd: 2202
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          178
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - cond_normalize_expr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2196,6'
          Dst:             cond_normalize_expr
    - functionName:    mls_level_eq
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_cmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:104,36'
          Dst:             ebitmap_cmp
    - functionName:    mls_range_eq
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_level_eq
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:154,10'
          Dst:             mls_level_eq
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:155,10'
          Dst:             mls_level_eq
    - functionName:    exp_rangetr_helper
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1655
      functionLinenumberEnd: 1717
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          390
      EdgeCount:       67
      CyclomaticComplexity: 17
      functionsReached:
        - calloc
        - hashtab_insert
        - hashtab_search
        - mls_range_destroy
        - mls_range_eq
        - mls_semantic_range_expand
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1660,14'
          Dst:             calloc
        - Src:             'expand.c:1666,6'
          Dst:             mls_semantic_range_expand
        - Src:             'expand.c:1674,6'
          Dst:             hashtab_search
        - Src:             'expand.c:1676,7'
          Dst:             mls_range_eq
        - Src:             'expand.c:1678,4'
          Dst:             mls_range_destroy
        - Src:             'expand.c:1692,7'
          Dst:             calloc
        - Src:             'expand.c:1701,7'
          Dst:             hashtab_insert
        - Src:             'expand.c:1713,3'
          Dst:             mls_range_destroy
    - functionName:    mls_semantic_range_expand
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1129
      functionLinenumberEnd: 1145
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          129
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - mls_level_destroy
        - mls_level_dom
        - mls_range_destroy
        - mls_semantic_level_expand
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1130,6'
          Dst:             mls_semantic_level_expand
        - Src:             'expand.c:1133,6'
          Dst:             mls_semantic_level_expand
        - Src:             'expand.c:1134,3'
          Dst:             mls_level_destroy
        - Src:             'expand.c:1138,7'
          Dst:             mls_level_dom
        - Src:             'expand.c:1139,3'
          Dst:             mls_range_destroy
    - functionName:    mls_range_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_destroy
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:148,2'
          Dst:             mls_level_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:149,2'
          Dst:             mls_level_destroy
    - functionName:    mls_semantic_level_expand
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1075
      functionLinenumberEnd: 1125
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          473
      EdgeCount:       91
      CyclomaticComplexity: 23
      functionsReached:
        - __errno_location
        - ebitmap_get_bit
        - ebitmap_set_bit
        - hashtab_search
        - mls_level_init
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1080,2'
          Dst:             mls_level_init
        - Src:             'expand.c:1094,31'
          Dst:             hashtab_search
        - Src:             'expand.c:1099,3'
          Dst:             __errno_location
        - Src:             'expand.c:1110,9'
          Dst:             ebitmap_get_bit
        - Src:             'expand.c:1117,8'
          Dst:             ebitmap_set_bit
    - functionName:    mls_level_dom
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_contains
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:109,36'
          Dst:             ebitmap_contains
    - functionName:    __errno_location
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    expand_filename_trans_helper
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1570
      functionLinenumberEnd: 1599
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          243
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - policydb_filetrans_insert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1576,7'
          Dst:             policydb_filetrans_insert
    - functionName:    cond_node_copy
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2208
      functionLinenumberEnd: 2266
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         54
      ICount:          390
      EdgeCount:       71
      CyclomaticComplexity: 19
      functionsReached:
        - cond_avrule_list_copy
        - cond_node_copy
        - cond_node_create
        - cond_node_destroy
        - cond_node_map_bools
        - cond_node_search
        - cond_normalize_expr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2214,6'
          Dst:             cond_node_copy
        - Src:             'expand.c:2224,6'
          Dst:             cond_normalize_expr
        - Src:             'expand.c:2231,8'
          Dst:             cond_node_create
        - Src:             'expand.c:2237,6'
          Dst:             cond_node_map_bools
        - Src:             'expand.c:2238,3'
          Dst:             cond_node_destroy
        - Src:             'expand.c:2244,13'
          Dst:             cond_node_search
        - Src:             'expand.c:2246,3'
          Dst:             cond_node_destroy
        - Src:             'expand.c:2251,2'
          Dst:             cond_node_destroy
        - Src:             'expand.c:2254,6'
          Dst:             cond_avrule_list_copy
        - Src:             'expand.c:2259,6'
          Dst:             cond_avrule_list_copy
    - functionName:    copy_neverallow
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2793
      functionLinenumberEnd: 2890
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          342
      EdgeCount:       60
      CyclomaticComplexity: 17
      functionsReached:
        - __assert_fail
        - avrule_init
        - calloc
        - class_perm_node_init
        - ebitmap_cpy
        - ebitmap_destroy
        - ebitmap_init
        - expand_convert_type_set
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2799,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2800,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2802,6'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:2805,6'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:2813,2'
          Dst:             avrule_init
        - Src:             'expand.c:2819,29'
          Dst:             strdup
        - Src:             'expand.c:2824,6'
          Dst:             ebitmap_cpy
        - Src:             'expand.c:2827,6'
          Dst:             ebitmap_cpy
        - Src:             'expand.c:2837,3'
          Dst:             class_perm_node_init
        - Src:             'expand.c:2839,3'
          Dst:             __assert_fail
        - Src:             'expand.c:2855,12'
          Dst:             calloc
        - Src:             'expand.c:2871,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2872,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2877,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2878,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2879,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2880,2'
          Dst:             ebitmap_destroy
    - functionName:    expand_range_trans
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1721
      functionLinenumberEnd: 1772
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         71
      ICount:          407
      EdgeCount:       91
      CyclomaticComplexity: 22
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - exp_rangetr_helper
        - expand_convert_type_set
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1732,3'
          Dst:             ebitmap_init
        - Src:             'expand.c:1733,3'
          Dst:             ebitmap_init
        - Src:             'expand.c:1736,7'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:1741,7'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:1743,4'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:1749,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:1749,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1751,4'
          Dst:             ebitmap_start
        - Src:             'expand.c:1751,4'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1753,5'
          Dst:             ebitmap_start
        - Src:             'expand.c:1753,5'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1754,10'
          Dst:             exp_rangetr_helper
        - Src:             'expand.c:1759,7'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:1760,7'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:1753,5'
          Dst:             ebitmap_next
        - Src:             'expand.c:1751,4'
          Dst:             ebitmap_next
        - Src:             'expand.c:1749,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:1767,3'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:1768,3'
          Dst:             ebitmap_destroy
    - functionName:    expand_filename_trans
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1602
      functionLinenumberEnd: 1650
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         54
      ICount:          313
      EdgeCount:       70
      CyclomaticComplexity: 18
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - expand_convert_type_set
        - expand_filename_trans_helper
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1611,3'
          Dst:             ebitmap_init
        - Src:             'expand.c:1612,3'
          Dst:             ebitmap_init
        - Src:             'expand.c:1614,7'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:1620,7'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:1627,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:1627,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1628,4'
          Dst:             ebitmap_start
        - Src:             'expand.c:1628,4'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1629,10'
          Dst:             expand_filename_trans_helper
        - Src:             'expand.c:1628,4'
          Dst:             ebitmap_next
        - Src:             'expand.c:1636,10'
          Dst:             expand_filename_trans_helper
        - Src:             'expand.c:1627,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:1644,3'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:1645,3'
          Dst:             ebitmap_destroy
    - functionName:    copy_role_trans
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1479
      functionLinenumberEnd: 1565
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         100
      ICount:          660
      EdgeCount:       130
      CyclomaticComplexity: 32
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - expand_convert_type_set
        - role_set_expand
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1491,3'
          Dst:             ebitmap_init
        - Src:             'expand.c:1492,3'
          Dst:             ebitmap_init
        - Src:             'expand.c:1494,7'
          Dst:             role_set_expand
        - Src:             'expand.c:1498,7'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:1503,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:1503,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1504,4'
          Dst:             ebitmap_start
        - Src:             'expand.c:1504,4'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1505,5'
          Dst:             ebitmap_start
        - Src:             'expand.c:1505,5'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1505,5'
          Dst:             ebitmap_next
        - Src:             'expand.c:1504,4'
          Dst:             ebitmap_next
        - Src:             'expand.c:1503,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:1559,3'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:1560,3'
          Dst:             ebitmap_destroy
    - functionName:    role_set_expand
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2613
      functionLinenumberEnd: 2677
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         66
      ICount:          332
      EdgeCount:       87
      CyclomaticComplexity: 23
      functionsReached:
        - __assert_fail
        - ebitmap_cpy
        - ebitmap_destroy
        - ebitmap_get_bit
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_set_bit
        - ebitmap_start
        - ebitmap_union
        - map_ebitmap
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2620,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2624,8'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2629,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2630,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2633,7'
          Dst:             map_ebitmap
        - Src:             'expand.c:2635,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:2635,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:2637,4'
          Dst:             __assert_fail
        - Src:             'expand.c:2639,9'
          Dst:             ebitmap_union
        - Src:             'expand.c:2642,9'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2635,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:2647,7'
          Dst:             ebitmap_cpy
        - Src:             'expand.c:2651,2'
          Dst:             ebitmap_start
        - Src:             'expand.c:2651,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:2652,7'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2651,2'
          Dst:             ebitmap_next
        - Src:             'expand.c:2656,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2657,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2662,8'
          Dst:             ebitmap_get_bit
        - Src:             'expand.c:2663,9'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2666,9'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2674,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2675,2'
          Dst:             ebitmap_destroy
    - functionName:    copy_role_allows
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1414
      functionLinenumberEnd: 1476
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         78
      ICount:          453
      EdgeCount:       101
      CyclomaticComplexity: 25
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - role_set_expand
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1426,3'
          Dst:             ebitmap_init
        - Src:             'expand.c:1427,3'
          Dst:             ebitmap_init
        - Src:             'expand.c:1429,7'
          Dst:             role_set_expand
        - Src:             'expand.c:1434,7'
          Dst:             role_set_expand
        - Src:             'expand.c:1439,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:1439,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1440,4'
          Dst:             ebitmap_start
        - Src:             'expand.c:1440,4'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1440,4'
          Dst:             ebitmap_next
        - Src:             'expand.c:1439,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:1469,3'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:1470,3'
          Dst:             ebitmap_destroy
    - functionName:    expand_cond_av_node
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3578
      functionLinenumberEnd: 3634
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         69
      ICount:          448
      EdgeCount:       92
      CyclomaticComplexity: 25
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - expand_cond_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:3595,10'
          Dst:             expand_cond_insert
        - Src:             'expand.c:3601,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:3601,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:3603,9'
          Dst:             expand_cond_insert
        - Src:             'expand.c:3601,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:3613,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:3613,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:3615,9'
          Dst:             expand_cond_insert
        - Src:             'expand.c:3613,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:3623,2'
          Dst:             ebitmap_start
        - Src:             'expand.c:3623,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:3624,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:3624,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:3627,9'
          Dst:             expand_cond_insert
        - Src:             'expand.c:3624,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:3623,2'
          Dst:             ebitmap_next
    - functionName:    expand_cond_av_list
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3638
      functionLinenumberEnd: 3657
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          112
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - avtab_alloc
        - expand_cond_av_node
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:3643,6'
          Dst:             avtab_alloc
        - Src:             'expand.c:3651,8'
          Dst:             expand_cond_av_node
    - functionName:    expand_avtab_node
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3455
      functionLinenumberEnd: 3512
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         69
      ICount:          447
      EdgeCount:       92
      CyclomaticComplexity: 25
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - expand_avtab_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:3473,10'
          Dst:             expand_avtab_insert
        - Src:             'expand.c:3479,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:3479,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:3481,9'
          Dst:             expand_avtab_insert
        - Src:             'expand.c:3479,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:3491,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:3491,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:3493,9'
          Dst:             expand_avtab_insert
        - Src:             'expand.c:3491,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:3501,2'
          Dst:             ebitmap_start
        - Src:             'expand.c:3501,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:3502,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:3502,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:3505,9'
          Dst:             expand_avtab_insert
        - Src:             'expand.c:3502,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:3501,2'
          Dst:             ebitmap_next
    - functionName:    expand_avtab
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3515
      functionLinenumberEnd: 3526
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          79
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - avtab_alloc
        - avtab_map
        - expand_avtab_node
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:3518,6'
          Dst:             avtab_alloc
        - Src:             'expand.c:3525,9'
          Dst:             avtab_map
        - Src:             'expand.c:3525,9'
          Dst:             expand_avtab_node
    - functionName:    type_attr_map
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2507
      functionLinenumberEnd: 2545
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          238
      EdgeCount:       48
      CyclomaticComplexity: 13
      functionsReached:
        - ebitmap_cpy
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_set_bit
        - ebitmap_start
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2520,8'
          Dst:             ebitmap_cpy
        - Src:             'expand.c:2523,4'
          Dst:             ebitmap_start
        - Src:             'expand.c:2523,4'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:2524,9'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2523,4'
          Dst:             ebitmap_next
        - Src:             'expand.c:2530,8'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2535,7'
          Dst:             ebitmap_set_bit
    - functionName:    genfs_copy
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2454
      functionLinenumberEnd: 2502
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         58
      ICount:          384
      EdgeCount:       74
      CyclomaticComplexity: 18
      functionsReached:
        - context_copy
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2466,22'
          Dst:             strdup
        - Src:             'expand.c:2486,19'
          Dst:             strdup
        - Src:             'expand.c:2493,4'
          Dst:             context_copy
    - functionName:    ocontext_copy
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2437
      functionLinenumberEnd: 2451
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          95
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - ocontext_copy_selinux
        - ocontext_copy_xen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'expand.c:2439,2'
          Branch Sides:    []
      Callsites:
        - Src:             'expand.c:2441,8'
          Dst:             ocontext_copy_selinux
        - Src:             'expand.c:2444,8'
          Dst:             ocontext_copy_xen
    - functionName:    constraint_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 593
      functionLinenumberEnd: 616
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          133
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - constraint_node_clone
        - hashtab_search
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:602,14'
          Dst:             hashtab_search
        - Src:             'expand.c:609,6'
          Dst:             constraint_node_clone
        - Src:             'expand.c:611,9'
          Dst:             constraint_node_clone
    - functionName:    bool_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1263
      functionLinenumberEnd: 1318
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          370
      EdgeCount:       63
      CyclomaticComplexity: 16
      functionsReached:
        - hashtab_insert
        - is_id_enabled
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1273,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:1292,11'
          Dst:             strdup
        - Src:             'expand.c:1302,8'
          Dst:             hashtab_insert
    - functionName:    user_bounds_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 684
      functionLinenumberEnd: 710
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          214
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - hashtab_search
        - is_id_enabled
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:693,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:698,9'
          Dst:             hashtab_search
    - functionName:    user_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1149
      functionLinenumberEnd: 1259
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         96
      ICount:          692
      EdgeCount:       126
      CyclomaticComplexity: 32
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_union
        - hashtab_insert
        - hashtab_search
        - is_id_enabled
        - mls_level_destroy
        - mls_level_dom
        - mls_level_eq
        - mls_range_destroy
        - mls_range_eq
        - mls_semantic_level_expand
        - mls_semantic_range_expand
        - role_set_expand
        - strdup
        - user_datum_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1161,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:1170,23'
          Dst:             hashtab_search
        - Src:             'expand.c:1183,12'
          Dst:             strdup
        - Src:             'expand.c:1189,9'
          Dst:             hashtab_insert
        - Src:             'expand.c:1194,4'
          Dst:             user_datum_destroy
        - Src:             'expand.c:1201,7'
          Dst:             mls_semantic_range_expand
        - Src:             'expand.c:1206,7'
          Dst:             mls_semantic_level_expand
        - Src:             'expand.c:1211,8'
          Dst:             mls_level_dom
        - Src:             'expand.c:1211,8'
          Dst:             mls_level_dom
        - Src:             'expand.c:1223,7'
          Dst:             mls_semantic_range_expand
        - Src:             'expand.c:1227,7'
          Dst:             mls_semantic_level_expand
        - Src:             'expand.c:1229,4'
          Dst:             mls_range_destroy
        - Src:             'expand.c:1232,8'
          Dst:             mls_range_eq
        - Src:             'expand.c:1233,8'
          Dst:             mls_level_eq
        - Src:             'expand.c:1234,4'
          Dst:             mls_range_destroy
        - Src:             'expand.c:1235,4'
          Dst:             mls_level_destroy
        - Src:             'expand.c:1238,3'
          Dst:             mls_range_destroy
        - Src:             'expand.c:1239,3'
          Dst:             mls_level_destroy
        - Src:             'expand.c:1242,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:1245,6'
          Dst:             role_set_expand
        - Src:             'expand.c:1247,3'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:1251,6'
          Dst:             ebitmap_union
        - Src:             'expand.c:1253,3'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:1256,2'
          Dst:             ebitmap_destroy
    - functionName:    cats_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1374
      functionLinenumberEnd: 1411
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          237
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - cat_datum_destroy
        - cat_datum_init
        - hashtab_insert
        - is_id_enabled
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1379,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:1390,2'
          Dst:             cat_datum_init
        - Src:             'expand.c:1391,11'
          Dst:             strdup
        - Src:             'expand.c:1398,6'
          Dst:             hashtab_insert
        - Src:             'expand.c:1407,2'
          Dst:             cat_datum_destroy
    - functionName:    sens_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1322
      functionLinenumberEnd: 1370
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          285
      EdgeCount:       54
      CyclomaticComplexity: 15
      functionsReached:
        - hashtab_insert
        - is_id_enabled
        - level_datum_destroy
        - level_datum_init
        - mls_level_cpy
        - mls_level_destroy
        - mls_level_init
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1327,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:1338,2'
          Dst:             level_datum_init
        - Src:             'expand.c:1342,2'
          Dst:             mls_level_init
        - Src:             'expand.c:1343,11'
          Dst:             strdup
        - Src:             'expand.c:1347,6'
          Dst:             mls_level_cpy
        - Src:             'expand.c:1353,6'
          Dst:             hashtab_insert
        - Src:             'expand.c:1363,3'
          Dst:             mls_level_destroy
        - Src:             'expand.c:1366,2'
          Dst:             level_datum_destroy
    - functionName:    role_fix_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 983
      functionLinenumberEnd: 1010
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          257
      EdgeCount:       54
      CyclomaticComplexity: 13
      functionsReached:
        - __assert_fail
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - ebitmap_union
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1000,2'
          Dst:             ebitmap_start
        - Src:             'expand.c:1000,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1002,3'
          Dst:             __assert_fail
        - Src:             'expand.c:1003,7'
          Dst:             ebitmap_union
        - Src:             'expand.c:1000,2'
          Dst:             ebitmap_next
    - functionName:    expand_role_attributes_in_attributes
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 924
      functionLinenumberEnd: 974
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         65
      ICount:          386
      EdgeCount:       84
      CyclomaticComplexity: 21
      functionsReached:
        - ebitmap_cpy
        - ebitmap_destroy
        - ebitmap_get_bit
        - ebitmap_init
        - ebitmap_match_any
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_set_bit
        - ebitmap_start
        - ebitmap_union
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:930,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:934,4'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:940,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:940,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:942,8'
          Dst:             ebitmap_match_any
        - Src:             'expand.c:944,5'
          Dst:             ebitmap_init
        - Src:             'expand.c:945,5'
          Dst:             ebitmap_start
        - Src:             'expand.c:945,5'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:948,7'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:949,7'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:952,10'
          Dst:             ebitmap_get_bit
        - Src:             'expand.c:954,7'
          Dst:             ebitmap_union
        - Src:             'expand.c:956,7'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:945,5'
          Dst:             ebitmap_next
        - Src:             'expand.c:959,5'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:960,5'
          Dst:             ebitmap_cpy
        - Src:             'expand.c:961,5'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:940,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:966,2'
          Dst:             ebitmap_destroy
    - functionName:    role_roles_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 883
      functionLinenumberEnd: 922
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          270
      EdgeCount:       53
      CyclomaticComplexity: 14
      functionsReached:
        - ebitmap_destroy
        - ebitmap_union
        - hashtab_search
        - is_id_enabled
        - map_ebitmap
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:897,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:905,29'
          Dst:             hashtab_search
        - Src:             'expand.c:912,6'
          Dst:             map_ebitmap
        - Src:             'expand.c:914,6'
          Dst:             ebitmap_union
        - Src:             'expand.c:916,3'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:919,2'
          Dst:             ebitmap_destroy
    - functionName:    role_types_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 840
      functionLinenumberEnd: 880
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          315
      EdgeCount:       60
      CyclomaticComplexity: 15
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_union
        - expand_convert_type_set
        - hashtab_search
        - is_id_enabled
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:850,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:858,29'
          Dst:             hashtab_search
        - Src:             'expand.c:865,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:866,6'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:868,3'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:872,6'
          Dst:             ebitmap_union
        - Src:             'expand.c:874,3'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:877,2'
          Dst:             ebitmap_destroy
    - functionName:    role_dominates_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 804
      functionLinenumberEnd: 837
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          209
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - ebitmap_destroy
        - ebitmap_union
        - hashtab_search
        - is_id_enabled
        - map_ebitmap
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:814,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:822,30'
          Dst:             hashtab_search
        - Src:             'expand.c:828,6'
          Dst:             map_ebitmap
        - Src:             'expand.c:830,6'
          Dst:             ebitmap_union
        - Src:             'expand.c:831,3'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:834,2'
          Dst:             ebitmap_destroy
    - functionName:    role_bounds_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 654
      functionLinenumberEnd: 680
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          214
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - hashtab_search
        - is_id_enabled
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:663,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:668,9'
          Dst:             hashtab_search
    - functionName:    role_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1014
      functionLinenumberEnd: 1071
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          393
      EdgeCount:       67
      CyclomaticComplexity: 17
      functionsReached:
        - hashtab_insert
        - hashtab_search
        - is_id_enabled
        - strcmp
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1024,6'
          Dst:             strcmp
        - Src:             'expand.c:1030,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:1038,30'
          Dst:             hashtab_search
        - Src:             'expand.c:1047,12'
          Dst:             strdup
        - Src:             'expand.c:1058,9'
          Dst:             hashtab_insert
    - functionName:    strcmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    39
      BranchProfiles:  []
      Callsites:       []
    - functionName:    class_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 506
      functionLinenumberEnd: 589
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         92
      ICount:          641
      EdgeCount:       119
      CyclomaticComplexity: 29
      functionsReached:
        - class_copy_default_new_object
        - hashtab_insert
        - hashtab_map
        - hashtab_search
        - is_id_enabled
        - perm_copy_callback
        - strdup
        - symtab_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:516,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:530,6'
          Dst:             symtab_init
        - Src:             'expand.c:539,8'
          Dst:             class_copy_default_new_object
        - Src:             'expand.c:545,11'
          Dst:             strdup
        - Src:             'expand.c:553,6'
          Dst:             hashtab_insert
        - Src:             'expand.c:562,6'
          Dst:             hashtab_map
        - Src:             'expand.c:562,6'
          Dst:             perm_copy_callback
        - Src:             'expand.c:570,23'
          Dst:             strdup
        - Src:             'expand.c:577,7'
          Dst:             hashtab_search
    - functionName:    common_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          448
      EdgeCount:       83
      CyclomaticComplexity: 20
      functionsReached:
        - hashtab_insert
        - hashtab_map
        - perm_copy_callback
        - strdup
        - symtab_destroy
        - symtab_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:336,6'
          Dst:             symtab_init
        - Src:             'expand.c:342,11'
          Dst:             strdup
        - Src:             'expand.c:346,3'
          Dst:             symtab_destroy
        - Src:             'expand.c:355,6'
          Dst:             hashtab_insert
        - Src:             'expand.c:364,6'
          Dst:             hashtab_map
        - Src:             'expand.c:364,6'
          Dst:             perm_copy_callback
    - functionName:    expand_attributes_in_attributes
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         65
      ICount:          386
      EdgeCount:       84
      CyclomaticComplexity: 21
      functionsReached:
        - ebitmap_cpy
        - ebitmap_destroy
        - ebitmap_get_bit
        - ebitmap_init
        - ebitmap_match_any
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_set_bit
        - ebitmap_start
        - ebitmap_union
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:232,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:236,4'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:242,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:242,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:244,8'
          Dst:             ebitmap_match_any
        - Src:             'expand.c:246,5'
          Dst:             ebitmap_init
        - Src:             'expand.c:247,5'
          Dst:             ebitmap_start
        - Src:             'expand.c:247,5'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:250,7'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:251,7'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:254,10'
          Dst:             ebitmap_get_bit
        - Src:             'expand.c:256,7'
          Dst:             ebitmap_union
        - Src:             'expand.c:258,7'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:247,5'
          Dst:             ebitmap_next
        - Src:             'expand.c:261,5'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:262,5'
          Dst:             ebitmap_cpy
        - Src:             'expand.c:263,5'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:242,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:268,2'
          Dst:             ebitmap_destroy
    - functionName:    attr_convert_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          319
      EdgeCount:       63
      CyclomaticComplexity: 16
      functionsReached:
        - ebitmap_destroy
        - ebitmap_union
        - hashtab_search
        - is_id_enabled
        - map_ebitmap
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:197,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:205,13'
          Dst:             hashtab_search
        - Src:             'expand.c:210,6'
          Dst:             map_ebitmap
        - Src:             'expand.c:216,6'
          Dst:             ebitmap_union
        - Src:             'expand.c:220,2'
          Dst:             ebitmap_destroy
    - functionName:    type_bounds_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 624
      functionLinenumberEnd: 650
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          214
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - hashtab_search
        - is_id_enabled
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:633,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:638,9'
          Dst:             hashtab_search
    - functionName:    alias_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 719
      functionLinenumberEnd: 801
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         89
      ICount:          620
      EdgeCount:       115
      CyclomaticComplexity: 28
      functionsReached:
        - __assert_fail
        - ebitmap_set_bit
        - hashtab_insert
        - is_id_enabled
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:743,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:753,11'
          Dst:             strdup
        - Src:             'expand.c:771,3'
          Dst:             __assert_fail
        - Src:             'expand.c:775,8'
          Dst:             hashtab_insert
        - Src:             'expand.c:789,7'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:795,7'
          Dst:             ebitmap_set_bit
    - functionName:    type_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         91
      ICount:          619
      EdgeCount:       118
      CyclomaticComplexity: 29
      functionsReached:
        - ebitmap_set_bit
        - hashtab_insert
        - is_id_enabled
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:123,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:131,11'
          Dst:             strdup
        - Src:             'expand.c:157,8'
          Dst:             hashtab_insert
        - Src:             'expand.c:168,7'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:174,7'
          Dst:             ebitmap_set_bit
    - functionName:    discard_tunables
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3013
      functionLinenumberEnd: 3105
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         71
      ICount:          371
      EdgeCount:       93
      CyclomaticComplexity: 24
      functionsReached:
        - __assert_fail
        - cond_evaluate_expr
        - printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:3069,5'
          Dst:             __assert_fail
        - Src:             'expand.c:3075,17'
          Dst:             cond_evaluate_expr
        - Src:             'expand.c:3077,6'
          Dst:             printf
    - functionName:    expand_module
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3114
      functionLinenumberEnd: 3384
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         250
      ICount:          1615
      EdgeCount:       339
      CyclomaticComplexity: 91
      functionsReached:
        - alias_copy_callback
        - attr_convert_callback
        - bool_copy_callback
        - calloc
        - cats_copy_callback
        - check_assertions
        - class_copy_callback
        - common_copy_callback
        - cond_optimize_lists
        - constraint_copy_callback
        - copy_and_expand_avrule_block
        - discard_tunables
        - ebitmap_cpy
        - ebitmap_set_bit
        - evaluate_conds
        - expand_attributes_in_attributes
        - expand_role_attributes_in_attributes
        - expand_state_init
        - genfs_copy
        - hashtab_map
        - hierarchy_check_constraints
        - ocontext_copy
        - policydb_index_classes
        - policydb_index_others
        - role_bounds_copy_callback
        - role_copy_callback
        - role_dominates_copy_callback
        - role_fix_callback
        - role_roles_copy_callback
        - role_types_copy_callback
        - sens_copy_callback
        - strdup
        - type_attr_map
        - type_bounds_copy_callback
        - type_copy_callback
        - user_bounds_copy_callback
        - user_copy_callback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:3128,2'
          Dst:             discard_tunables
        - Src:             'expand.c:3130,2'
          Dst:             expand_state_init
        - Src:             'expand.c:3146,21'
          Dst:             strdup
        - Src:             'expand.c:3161,6'
          Dst:             ebitmap_cpy
        - Src:             'expand.c:3167,20'
          Dst:             calloc
        - Src:             'expand.c:3173,30'
          Dst:             calloc
        - Src:             'expand.c:3179,30'
          Dst:             calloc
        - Src:             'expand.c:3185,30'
          Dst:             calloc
        - Src:             'expand.c:3194,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3194,6'
          Dst:             type_copy_callback
        - Src:             'expand.c:3197,6'
          Dst:             policydb_index_others
        - Src:             'expand.c:3199,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3199,6'
          Dst:             alias_copy_callback
        - Src:             'expand.c:3201,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3201,6'
          Dst:             type_bounds_copy_callback
        - Src:             'expand.c:3203,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3203,6'
          Dst:             attr_convert_callback
        - Src:             'expand.c:3210,7'
          Dst:             hashtab_map
        - Src:             'expand.c:3210,7'
          Dst:             attr_convert_callback
        - Src:             'expand.c:3212,7'
          Dst:             hashtab_map
        - Src:             'expand.c:3212,7'
          Dst:             type_bounds_copy_callback
        - Src:             'expand.c:3216,6'
          Dst:             expand_attributes_in_attributes
        - Src:             'expand.c:3221,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3221,6'
          Dst:             common_copy_callback
        - Src:             'expand.c:3228,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3228,6'
          Dst:             class_copy_callback
        - Src:             'expand.c:3234,6'
          Dst:             policydb_index_others
        - Src:             'expand.c:3240,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3240,6'
          Dst:             role_copy_callback
        - Src:             'expand.c:3243,6'
          Dst:             policydb_index_others
        - Src:             'expand.c:3245,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3245,6'
          Dst:             role_bounds_copy_callback
        - Src:             'expand.c:3247,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3247,6'
          Dst:             role_dominates_copy_callback
        - Src:             'expand.c:3249,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3249,6'
          Dst:             role_types_copy_callback
        - Src:             'expand.c:3251,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3251,6'
          Dst:             role_roles_copy_callback
        - Src:             'expand.c:3258,7'
          Dst:             hashtab_map
        - Src:             'expand.c:3258,7'
          Dst:             role_bounds_copy_callback
        - Src:             'expand.c:3260,7'
          Dst:             hashtab_map
        - Src:             'expand.c:3260,7'
          Dst:             role_dominates_copy_callback
        - Src:             'expand.c:3262,7'
          Dst:             hashtab_map
        - Src:             'expand.c:3262,7'
          Dst:             role_types_copy_callback
        - Src:             'expand.c:3264,7'
          Dst:             hashtab_map
        - Src:             'expand.c:3264,7'
          Dst:             role_roles_copy_callback
        - Src:             'expand.c:3268,6'
          Dst:             expand_role_attributes_in_attributes
        - Src:             'expand.c:3277,6'
          Dst:             expand_role_attributes_in_attributes
        - Src:             'expand.c:3282,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3282,6'
          Dst:             role_fix_callback
        - Src:             'expand.c:3287,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3287,6'
          Dst:             sens_copy_callback
        - Src:             'expand.c:3289,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3289,6'
          Dst:             cats_copy_callback
        - Src:             'expand.c:3291,6'
          Dst:             policydb_index_others
        - Src:             'expand.c:3297,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3297,6'
          Dst:             user_copy_callback
        - Src:             'expand.c:3299,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3299,6'
          Dst:             user_bounds_copy_callback
        - Src:             'expand.c:3306,7'
          Dst:             hashtab_map
        - Src:             'expand.c:3306,7'
          Dst:             user_copy_callback
        - Src:             'expand.c:3308,7'
          Dst:             hashtab_map
        - Src:             'expand.c:3308,7'
          Dst:             user_bounds_copy_callback
        - Src:             'expand.c:3313,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3313,6'
          Dst:             bool_copy_callback
        - Src:             'expand.c:3316,6'
          Dst:             policydb_index_classes
        - Src:             'expand.c:3320,6'
          Dst:             policydb_index_others
        - Src:             'expand.c:3325,6'
          Dst:             copy_and_expand_avrule_block
        - Src:             'expand.c:3331,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3331,6'
          Dst:             constraint_copy_callback
        - Src:             'expand.c:3336,2'
          Dst:             cond_optimize_lists
        - Src:             'expand.c:3337,6'
          Dst:             evaluate_conds
        - Src:             'expand.c:3341,6'
          Dst:             ocontext_copy
        - Src:             'expand.c:3345,6'
          Dst:             genfs_copy
        - Src:             'expand.c:3349,29'
          Dst:             calloc
        - Src:             'expand.c:3351,29'
          Dst:             calloc
        - Src:             'expand.c:3359,7'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:3364,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3364,6'
          Dst:             type_attr_map
        - Src:             'expand.c:3367,7'
          Dst:             hierarchy_check_constraints
        - Src:             'expand.c:3370,7'
          Dst:             check_assertions
    - functionName:    expand_state_init
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    copy_and_expand_avrule_block
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2899
      functionLinenumberEnd: 2982
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         72
      ICount:          434
      EdgeCount:       95
      CyclomaticComplexity: 25
      functionsReached:
        - avrule_block_destroy
        - avtab_alloc
        - cond_node_copy
        - convert_and_expand_rule
        - copy_neverallow
        - copy_role_allows
        - copy_role_trans
        - expand_filename_trans
        - expand_range_trans
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2904,6'
          Dst:             avtab_alloc
        - Src:             'expand.c:2909,7'
          Dst:             avtab_alloc
        - Src:             'expand.c:2924,7'
          Dst:             copy_role_allows
        - Src:             'expand.c:2925,7'
          Dst:             copy_role_trans
        - Src:             'expand.c:2929,7'
          Dst:             expand_filename_trans
        - Src:             'expand.c:2933,7'
          Dst:             expand_range_trans
        - Src:             'expand.c:2942,9'
          Dst:             copy_neverallow
        - Src:             'expand.c:2949,9'
          Dst:             convert_and_expand_rule
        - Src:             'expand.c:2962,7'
          Dst:             cond_node_copy
        - Src:             'expand.c:2974,4'
          Dst:             avrule_block_destroy
    - functionName:    expand_module_avrules
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2994
      functionLinenumberEnd: 3009
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          59
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - copy_and_expand_avrule_block
        - expand_state_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2997,2'
          Dst:             expand_state_init
        - Src:             'expand.c:3009,9'
          Dst:             copy_and_expand_avrule_block
    - functionName:    expand_rule
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2581
      functionLinenumberEnd: 2602
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          97
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
        - expand_rule_helper
        - type_set_expand
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2589,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2590,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2592,6'
          Dst:             type_set_expand
        - Src:             'expand.c:2594,6'
          Dst:             type_set_expand
        - Src:             'expand.c:2596,11'
          Dst:             expand_rule_helper
        - Src:             'expand.c:2599,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2600,2'
          Dst:             ebitmap_destroy
    - functionName:    hashtab_hash_eval
      functionSourceFile: '/src/selinux/libsepol/src/hashtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          127
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'hashtab.c:280,2'
          Dst:             printf
    - functionName:    hashtab_map
      functionSourceFile: '/src/selinux/libsepol/src/hashtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          93
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    107
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hashtab_destroy
      functionSourceFile: '/src/selinux/libsepol/src/hashtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          81
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hashtab_search
      functionSourceFile: '/src/selinux/libsepol/src/hashtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          96
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    92
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hashtab_remove
      functionSourceFile: '/src/selinux/libsepol/src/hashtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          165
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hashtab_check_resize
      functionSourceFile: '/src/selinux/libsepol/src/hashtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          196
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hashtab.c:78,15'
          Dst:             calloc
    - functionName:    hashtab_insert
      functionSourceFile: '/src/selinux/libsepol/src/hashtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          178
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - hashtab_check_resize
      functionUses:    37
      BranchProfiles:  []
      Callsites:
        - Src:             'hashtab.c:114,2'
          Dst:             hashtab_check_resize
    - functionName:    hashtab_create
      functionSourceFile: '/src/selinux/libsepol/src/hashtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          68
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'hashtab.c:56,31'
          Dst:             calloc
    - functionName:    bounds_report
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          213
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - sepol_av_to_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:446,19'
          Dst:             sepol_av_to_string
    - functionName:    bounds_add_bad
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          122
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bounds_not_covered
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          81
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - avtab_search
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:250,25'
          Dst:             avtab_search
        - Src:             'hierarchy.c:254,11'
          Dst:             avtab_search
    - functionName:    bounds_check_rule
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          221
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - bounds_add_bad
        - bounds_not_covered
        - ebitmap_get_bit
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:297,6'
          Dst:             ebitmap_get_bit
        - Src:             'hierarchy.c:299,3'
          Dst:             ebitmap_start
        - Src:             'hierarchy.c:299,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'hierarchy.c:303,9'
          Dst:             bounds_not_covered
        - Src:             'hierarchy.c:307,9'
          Dst:             bounds_not_covered
        - Src:             'hierarchy.c:312,10'
          Dst:             bounds_add_bad
        - Src:             'hierarchy.c:299,3'
          Dst:             ebitmap_next
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bounds_check_cond_rules
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          110
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - bounds_check_rule
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:337,8'
          Dst:             bounds_check_rule
    - functionName:    bounds_check_rule_callback
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 360
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          75
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - bounds_check_rule
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:366,9'
          Dst:             bounds_check_rule
    - functionName:    bounds_insert_helper
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          144
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - avtab_insert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:45,11'
          Dst:             avtab_insert
    - functionName:    bounds_insert_rule
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          142
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - avtab_search
        - bounds_insert_helper
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:61,23'
          Dst:             avtab_search
        - Src:             'hierarchy.c:64,8'
          Dst:             bounds_insert_helper
        - Src:             'hierarchy.c:75,9'
          Dst:             avtab_search
        - Src:             'hierarchy.c:79,11'
          Dst:             avtab_search
        - Src:             'hierarchy.c:83,11'
          Dst:             bounds_insert_helper
    - functionName:    bounds_expand_rule
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          157
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - bounds_insert_rule
        - ebitmap_get_bit
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:112,6'
          Dst:             ebitmap_get_bit
        - Src:             'hierarchy.c:114,3'
          Dst:             ebitmap_start
        - Src:             'hierarchy.c:114,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'hierarchy.c:116,9'
          Dst:             bounds_insert_rule
        - Src:             'hierarchy.c:114,3'
          Dst:             ebitmap_next
    - functionName:    bounds_expand_cond_rules
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          85
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - bounds_expand_rule
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:135,8'
          Dst:             bounds_expand_rule
    - functionName:    bounds_expand_rule_callback
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          68
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - bounds_expand_rule
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:160,9'
          Dst:             bounds_expand_rule
    - functionName:    hierarchy_check_constraints
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 673
      functionLinenumberEnd: 700
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          106
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - bounds_check_roles
        - bounds_check_types
        - bounds_check_users
        - hierarchy_add_bounds
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:677,7'
          Dst:             hierarchy_add_bounds
        - Src:             'hierarchy.c:680,7'
          Dst:             bounds_check_users
        - Src:             'hierarchy.c:684,7'
          Dst:             bounds_check_roles
        - Src:             'hierarchy.c:688,7'
          Dst:             bounds_check_types
    - functionName:    hierarchy_add_bounds
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 645
      functionLinenumberEnd: 669
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          137
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - hashtab_map
        - hierarchy_add_role_callback
        - hierarchy_add_type_callback
        - hierarchy_add_user_callback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:653,7'
          Dst:             hashtab_map
        - Src:             'hierarchy.c:653,7'
          Dst:             hierarchy_add_user_callback
        - Src:             'hierarchy.c:656,7'
          Dst:             hashtab_map
        - Src:             'hierarchy.c:656,7'
          Dst:             hierarchy_add_role_callback
        - Src:             'hierarchy.c:659,7'
          Dst:             hashtab_map
        - Src:             'hierarchy.c:659,7'
          Dst:             hierarchy_add_type_callback
    - functionName:    bounds_check_users
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 580
      functionLinenumberEnd: 596
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          97
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - bounds_check_user_callback
        - hashtab_map
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:587,2'
          Dst:             hashtab_map
        - Src:             'hierarchy.c:587,2'
          Dst:             bounds_check_user_callback
    - functionName:    bounds_check_roles
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 537
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          97
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - bounds_check_role_callback
        - hashtab_map
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:544,2'
          Dst:             hashtab_map
        - Src:             'hierarchy.c:544,2'
          Dst:             bounds_check_role_callback
    - functionName:    bounds_check_types
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 491
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          106
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - bounds_check_type_callback
        - hashtab_map
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:499,7'
          Dst:             hashtab_map
        - Src:             'hierarchy.c:499,7'
          Dst:             bounds_check_type_callback
    - functionName:    bounds_check_type_callback
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 471
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          84
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - bounds_check_type
        - bounds_destroy_bad
        - bounds_report
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:478,8'
          Dst:             bounds_check_type
        - Src:             'hierarchy.c:481,4'
          Dst:             bounds_report
        - Src:             'hierarchy.c:483,4'
          Dst:             bounds_destroy_bad
    - functionName:    bounds_check_type
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 415
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - avtab_destroy
        - bounds_check_child_rules
        - bounds_destroy_cond_info
        - bounds_expand_parent_rules
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:420,7'
          Dst:             bounds_expand_parent_rules
        - Src:             'hierarchy.c:423,7'
          Dst:             bounds_check_child_rules
        - Src:             'hierarchy.c:426,2'
          Dst:             bounds_destroy_cond_info
        - Src:             'hierarchy.c:427,2'
          Dst:             avtab_destroy
    - functionName:    bounds_destroy_bad
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 459
      functionLinenumberEnd: 467
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bounds_expand_parent_rules
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          318
      EdgeCount:       60
      CyclomaticComplexity: 16
      functionsReached:
        - avtab_alloc
        - avtab_destroy
        - avtab_init
        - avtab_map
        - bounds_destroy_cond_info
        - bounds_expand_cond_rules
        - bounds_expand_rule_callback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:194,2'
          Dst:             avtab_init
        - Src:             'hierarchy.c:195,7'
          Dst:             avtab_alloc
        - Src:             'hierarchy.c:202,7'
          Dst:             avtab_map
        - Src:             'hierarchy.c:202,7'
          Dst:             bounds_expand_rule_callback
        - Src:             'hierarchy.c:210,3'
          Dst:             avtab_init
        - Src:             'hierarchy.c:211,3'
          Dst:             avtab_init
        - Src:             'hierarchy.c:216,9'
          Dst:             avtab_alloc
        - Src:             'hierarchy.c:218,9'
          Dst:             bounds_expand_cond_rules
        - Src:             'hierarchy.c:224,9'
          Dst:             avtab_alloc
        - Src:             'hierarchy.c:226,9'
          Dst:             bounds_expand_cond_rules
        - Src:             'hierarchy.c:241,2'
          Dst:             avtab_destroy
        - Src:             'hierarchy.c:242,2'
          Dst:             bounds_destroy_cond_info
    - functionName:    bounds_check_child_rules
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          140
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - avtab_map
        - bounds_check_cond_rules
        - bounds_check_rule_callback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:388,7'
          Dst:             avtab_map
        - Src:             'hierarchy.c:388,7'
          Dst:             bounds_check_rule_callback
        - Src:             'hierarchy.c:393,8'
          Dst:             bounds_check_cond_rules
        - Src:             'hierarchy.c:399,8'
          Dst:             bounds_check_cond_rules
    - functionName:    bounds_destroy_cond_info
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - avtab_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:178,3'
          Dst:             avtab_destroy
        - Src:             'hierarchy.c:179,3'
          Dst:             avtab_destroy
    - functionName:    bounds_check_role_callback
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 517
      functionLinenumberEnd: 534
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          148
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_contains
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:527,13'
          Dst:             ebitmap_contains
    - functionName:    bounds_check_user_callback
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 560
      functionLinenumberEnd: 577
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          148
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_contains
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:570,13'
          Dst:             ebitmap_contains
    - functionName:    hierarchy_add_user_callback
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 642
      functionLinenumberEnd: 642
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          239
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - hashtab_search
        - strdup
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:642,8'
          Dst:             strrchr
        - Src:             'hierarchy.c:642,8'
          Dst:             strdup
        - Src:             'hierarchy.c:642,8'
          Dst:             hashtab_search
    - functionName:    hierarchy_add_role_callback
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 641
      functionLinenumberEnd: 641
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          239
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - hashtab_search
        - strdup
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:641,8'
          Dst:             strrchr
        - Src:             'hierarchy.c:641,8'
          Dst:             strdup
        - Src:             'hierarchy.c:641,8'
          Dst:             hashtab_search
    - functionName:    hierarchy_add_type_callback
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 640
      functionLinenumberEnd: 640
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          239
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - hashtab_search
        - strdup
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:640,8'
          Dst:             strrchr
        - Src:             'hierarchy.c:640,8'
          Dst:             strdup
        - Src:             'hierarchy.c:640,8'
          Dst:             hashtab_search
    - functionName:    strrchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    context_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2592
      functionLinenumberEnd: 2613
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          98
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - create_str
        - range_to_str
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2601,11'
          Dst:             range_to_str
        - Src:             'kernel_to_cil.c:2603,11'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:2609,8'
          Dst:             create_str
    - functionName:    range_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2014
      functionLinenumberEnd: 2035
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - create_str
        - level_to_str
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2019,8'
          Dst:             level_to_str
        - Src:             'kernel_to_cil.c:2024,9'
          Dst:             level_to_str
        - Src:             'kernel_to_cil.c:2029,14'
          Dst:             create_str
    - functionName:    level_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1996
      functionLinenumberEnd: 2010
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          65
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - cats_ebitmap_to_str
        - create_str
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2003,14'
          Dst:             cats_ebitmap_to_str
        - Src:             'kernel_to_cil.c:2004,15'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:2007,15'
          Dst:             create_str
    - functionName:    cats_ebitmap_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1039
      functionLinenumberEnd: 1099
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          236
      EdgeCount:       46
      CyclomaticComplexity: 13
      functionsReached:
        - cats_ebitmap_len
        - ebitmap_get_bit
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - snprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1045,19'
          Dst:             cats_ebitmap_len
        - Src:             'kernel_to_cil.c:1060,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_cil.c:1060,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_cil.c:1066,7'
          Dst:             ebitmap_get_bit
        - Src:             'kernel_to_cil.c:1071,11'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:1075,11'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:1080,10'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:1060,2'
          Dst:             ebitmap_next
    - functionName:    cats_ebitmap_len
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1004
      functionLinenumberEnd: 1035
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          170
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - ebitmap_get_bit
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1010,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_cil.c:1010,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_cil.c:1016,7'
          Dst:             ebitmap_get_bit
        - Src:             'kernel_to_cil.c:1019,10'
          Dst:             strlen
        - Src:             'kernel_to_cil.c:1021,11'
          Dst:             strlen
        - Src:             'kernel_to_cil.c:1023,11'
          Dst:             strlen
        - Src:             'kernel_to_cil.c:1010,2'
          Dst:             ebitmap_next
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    snprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    61
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strlen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    62
      BranchProfiles:  []
      Callsites:       []
    - functionName:    write_sid_context_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2617
      functionLinenumberEnd: 2670
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          200
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - context_to_str
        - create_str
        - snprintf
        - strs_add_at_index
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_write_each
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2626,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2636,4'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:2640,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:2646,10'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:2653,8'
          Dst:             strs_add_at_index
        - Src:             'kernel_to_cil.c:2660,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:2663,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:2664,2'
          Dst:             strs_destroy
    - functionName:    write_cond_av_list_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2107
      functionLinenumberEnd: 2155
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          149
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - avtab_node_to_str
        - strs_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each_indented
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2120,8'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2130,12'
          Dst:             avtab_node_to_str
        - Src:             'kernel_to_cil.c:2135,10'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:2143,3'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:2144,3'
          Dst:             strs_write_each_indented
        - Src:             'kernel_to_cil.c:2145,3'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:2146,3'
          Dst:             strs_destroy
        - Src:             'kernel_to_cil.c:2152,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:2153,2'
          Dst:             strs_destroy
    - functionName:    avtab_node_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1744
      functionLinenumberEnd: 1840
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         72
      ICount:          535
      EdgeCount:       88
      CyclomaticComplexity: 18
      functionsReached:
        - create_str
        - sepol_av_to_string
        - xperms_to_str
      functionUses:    2
      BranchProfiles:
        - Branch String:   'kernel_to_cil.c:1751,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_cil.c:1796,11'
          Dst:             sepol_av_to_string
        - Src:             'kernel_to_cil.c:1806,10'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:1810,11'
          Dst:             xperms_to_str
        - Src:             'kernel_to_cil.c:1823,10'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:1829,10'
          Dst:             create_str
    - functionName:    xperms_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1658
      functionLinenumberEnd: 1741
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         57
      ICount:          392
      EdgeCount:       77
      CyclomaticComplexity: 22
      functionsReached:
        - realloc
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1677,6'
          Dst:             realloc
        - Src:             'kernel_to_cil.c:1705,11'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:1708,11'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:1714,11'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:1717,11'
          Dst:             snprintf
    - functionName:    realloc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cond_node_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2163
      functionLinenumberEnd: 2166
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2166,9'
          Dst:             strcmp
    - functionName:    cond_expr_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         77
      ICount:          482
      EdgeCount:       95
      CyclomaticComplexity: 20
      functionsReached:
        - create_str
        - strs_stack_destroy
        - strs_stack_empty
        - strs_stack_init
        - strs_stack_pop
        - strs_stack_push
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_cil.c:55,4'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_cil.c:40,7'
          Dst:             strs_stack_init
        - Src:             'kernel_to_cil.c:48,14'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:69,12'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_cil.c:75,11'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_cil.c:82,15'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:85,15'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:93,8'
          Dst:             strs_stack_push
        - Src:             'kernel_to_cil.c:100,12'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_cil.c:101,19'
          Dst:             strs_stack_empty
        - Src:             'kernel_to_cil.c:108,2'
          Dst:             strs_stack_destroy
        - Src:             'kernel_to_cil.c:113,21'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_cil.c:116,3'
          Dst:             strs_stack_destroy
    - functionName:    map_range_trans_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2044
      functionLinenumberEnd: 2070
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          111
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - range_to_str
        - strs_create_and_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2056,10'
          Dst:             range_to_str
        - Src:             'kernel_to_cil.c:2062,7'
          Dst:             strs_create_and_add
    - functionName:    map_filename_trans_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1930
      functionLinenumberEnd: 1960
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          181
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - strs_create_and_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1947,3'
          Dst:             ebitmap_start
        - Src:             'kernel_to_cil.c:1947,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_cil.c:1949,9'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_cil.c:1947,3'
          Dst:             ebitmap_next
    - functionName:    map_avtab_write_helper
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1849
      functionLinenumberEnd: 1871
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          84
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - avtab_node_to_str
        - strs_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1858,10'
          Dst:             avtab_node_to_str
        - Src:             'kernel_to_cil.c:1863,8'
          Dst:             strs_add
    - functionName:    write_avtab_flavor_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1875
      functionLinenumberEnd: 1901
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          68
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - avtab_map
        - map_avtab_write_helper
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each_indented
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1880,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1889,7'
          Dst:             avtab_map
        - Src:             'kernel_to_cil.c:1889,7'
          Dst:             map_avtab_write_helper
        - Src:             'kernel_to_cil.c:1894,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1895,2'
          Dst:             strs_write_each_indented
        - Src:             'kernel_to_cil.c:1898,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:1899,2'
          Dst:             strs_destroy
    - functionName:    map_type_aliases_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1398
      functionLinenumberEnd: 1406
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strs_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1404,8'
          Dst:             strs_add
    - functionName:    map_count_type_aliases
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1387
      functionLinenumberEnd: 1394
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    map_boolean_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1302
      functionLinenumberEnd: 1309
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strs_create_and_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1309,9'
          Dst:             strs_create_and_add
    - functionName:    map_category_aliases_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 911
      functionLinenumberEnd: 920
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strs_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:917,8'
          Dst:             strs_add
    - functionName:    map_count_category_aliases
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 900
      functionLinenumberEnd: 907
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    map_sensitivity_aliases_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 807
      functionLinenumberEnd: 816
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strs_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:813,8'
          Dst:             strs_add
    - functionName:    map_count_sensitivity_aliases
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 796
      functionLinenumberEnd: 803
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    write_sensitivitycategory_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1102
      functionLinenumberEnd: 1131
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          164
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - cats_ebitmap_to_str
        - hashtab_search
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1112,11'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:1120,11'
          Dst:             cats_ebitmap_to_str
        - Src:             'kernel_to_cil.c:1121,4'
          Dst:             sepol_printf
    - functionName:    write_category_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 924
      functionLinenumberEnd: 1000
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          304
      EdgeCount:       57
      CyclomaticComplexity: 15
      functionsReached:
        - hashtab_map
        - hashtab_search
        - map_category_aliases_to_strs
        - map_count_category_aliases
        - sepol_printf
        - strs_destroy
        - strs_init
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:934,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:938,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:943,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:948,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:950,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:952,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_cil.c:952,7'
          Dst:             map_count_category_aliases
        - Src:             'kernel_to_cil.c:963,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:968,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_cil.c:968,7'
          Dst:             map_category_aliases_to_strs
        - Src:             'kernel_to_cil.c:973,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:977,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:978,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:983,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:984,9'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:990,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:994,2'
          Dst:             strs_destroy
    - functionName:    write_sensitivity_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 820
      functionLinenumberEnd: 896
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          305
      EdgeCount:       57
      CyclomaticComplexity: 15
      functionsReached:
        - hashtab_map
        - hashtab_search
        - map_count_sensitivity_aliases
        - map_sensitivity_aliases_to_strs
        - sepol_printf
        - strs_destroy
        - strs_init
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:830,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:834,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:839,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:844,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:846,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:848,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_cil.c:848,7'
          Dst:             map_count_sensitivity_aliases
        - Src:             'kernel_to_cil.c:859,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:864,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_cil.c:864,7'
          Dst:             map_sensitivity_aliases_to_strs
        - Src:             'kernel_to_cil.c:869,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:873,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:874,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:879,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:880,11'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:886,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:890,2'
          Dst:             strs_destroy
    - functionName:    write_default_mls_level
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 789
      functionLinenumberEnd: 793
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:790,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:791,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:792,2'
          Dst:             sepol_printf
    - functionName:    write_default_range_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 688
      functionLinenumberEnd: 720
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          113
      EdgeCount:       18
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_cil.c:691,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_cil.c:717,2'
          Dst:             sepol_printf
    - functionName:    write_default_type_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 668
      functionLinenumberEnd: 685
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_cil.c:671,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_cil.c:682,2'
          Dst:             sepol_printf
    - functionName:    write_default_role_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 648
      functionLinenumberEnd: 665
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_cil.c:651,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_cil.c:662,2'
          Dst:             sepol_printf
    - functionName:    write_default_user_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 628
      functionLinenumberEnd: 645
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_cil.c:631,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_cil.c:642,2'
          Dst:             sepol_printf
    - functionName:    write_sids_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 567
      functionLinenumberEnd: 607
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          170
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - isids_to_strs
        - sepol_printf
        - strs_destroy
        - strs_free_all
        - strs_num_items
        - strs_read_at_index
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:573,9'
          Dst:             isids_to_strs
        - Src:             'kernel_to_cil.c:579,6'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:580,3'
          Dst:             strs_destroy
        - Src:             'kernel_to_cil.c:584,16'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:585,9'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:586,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:589,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:591,16'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:592,9'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:594,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:599,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:601,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:603,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:604,2'
          Dst:             strs_destroy
    - functionName:    class_or_common_perms_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - hashtab_map
        - hashtab_ordered_to_strs
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_to_str
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:454,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:459,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_cil.c:459,7'
          Dst:             hashtab_ordered_to_strs
        - Src:             'kernel_to_cil.c:464,6'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:465,11'
          Dst:             strs_to_str
        - Src:             'kernel_to_cil.c:469,2'
          Dst:             strs_destroy
    - functionName:    class_validatetrans_rules_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          97
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - constraint_expr_to_str
        - strs_create_and_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:347,10'
          Dst:             constraint_expr_to_str
        - Src:             'kernel_to_cil.c:361,8'
          Dst:             strs_create_and_add
    - functionName:    constraint_expr_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         134
      ICount:          826
      EdgeCount:       161
      CyclomaticComplexity: 29
      functionsReached:
        - create_str
        - ebitmap_to_str
        - strchr
        - strdup
        - strs_stack_destroy
        - strs_stack_empty
        - strs_stack_init
        - strs_stack_pop
        - strs_stack_push
      functionUses:    2
      BranchProfiles:
        - Branch String:   'kernel_to_cil.c:143,4'
          Branch Sides:    []
        - Branch String:   'kernel_to_cil.c:154,4'
          Branch Sides:    []
        - Branch String:   'kernel_to_cil.c:211,4'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_cil.c:133,7'
          Dst:             strs_stack_init
        - Src:             'kernel_to_cil.c:181,15'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:186,14'
          Dst:             ebitmap_to_str
        - Src:             'kernel_to_cil.c:188,14'
          Dst:             ebitmap_to_str
        - Src:             'kernel_to_cil.c:190,14'
          Dst:             ebitmap_to_str
        - Src:             'kernel_to_cil.c:193,14'
          Dst:             strdup
        - Src:             'kernel_to_cil.c:199,9'
          Dst:             strchr
        - Src:             'kernel_to_cil.c:200,16'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:202,16'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:222,12'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_cil.c:228,11'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_cil.c:235,15'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:238,15'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:245,8'
          Dst:             strs_stack_push
        - Src:             'kernel_to_cil.c:252,12'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_cil.c:253,19'
          Dst:             strs_stack_empty
        - Src:             'kernel_to_cil.c:260,2'
          Dst:             strs_stack_destroy
        - Src:             'kernel_to_cil.c:266,21'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_cil.c:269,3'
          Dst:             strs_stack_destroy
    - functionName:    strchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    class_constraint_rules_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          262
      EdgeCount:       47
      CyclomaticComplexity: 12
      functionsReached:
        - constraint_expr_to_str
        - sepol_av_to_string
        - strs_create_and_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:293,10'
          Dst:             constraint_expr_to_str
        - Src:             'kernel_to_cil.c:299,11'
          Dst:             sepol_av_to_string
        - Src:             'kernel_to_cil.c:320,8'
          Dst:             strs_create_and_add
    - functionName:    write_xen_devicetree_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3231
      functionLinenumberEnd: 3254
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          115
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - context_to_str
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:3238,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:3244,3'
          Dst:             sepol_printf
    - functionName:    write_xen_pcidevice_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3196
      functionLinenumberEnd: 3227
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          137
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:3203,8'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:3209,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:3215,3'
          Dst:             sepol_printf
    - functionName:    write_xen_iomem_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3153
      functionLinenumberEnd: 3192
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          164
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:3165,9'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:3167,9'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:3174,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:3180,3'
          Dst:             sepol_printf
    - functionName:    write_xen_ioport_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3110
      functionLinenumberEnd: 3149
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          164
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:3122,9'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:3124,9'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:3131,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:3137,3'
          Dst:             sepol_printf
    - functionName:    write_xen_pirq_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3075
      functionLinenumberEnd: 3106
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          137
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:3082,8'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:3088,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:3094,3'
          Dst:             sepol_printf
    - functionName:    write_xen_isid_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3070
      functionLinenumberEnd: 3071
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - write_sid_context_rules_to_cil
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:3071,9'
          Dst:             write_sid_context_rules_to_cil
    - functionName:    write_selinux_ibendport_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3033
      functionLinenumberEnd: 3066
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          142
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:3041,8'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:3047,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:3053,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_ibpkey_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2977
      functionLinenumberEnd: 3029
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          224
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - context_to_str
        - inet_ntop
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2992,7'
          Dst:             inet_ntop
        - Src:             'kernel_to_cil.c:3002,9'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:3004,9'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:3011,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:3017,3'
          Dst:             sepol_printf
    - functionName:    inet_ntop
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    write_selinux_node6_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2937
      functionLinenumberEnd: 2973
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          209
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - context_to_str
        - inet_ntop
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2945,7'
          Dst:             inet_ntop
        - Src:             'kernel_to_cil.c:2951,7'
          Dst:             inet_ntop
        - Src:             'kernel_to_cil.c:2957,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:2963,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_node_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2897
      functionLinenumberEnd: 2933
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          209
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - context_to_str
        - inet_ntop
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2905,7'
          Dst:             inet_ntop
        - Src:             'kernel_to_cil.c:2911,7'
          Dst:             inet_ntop
        - Src:             'kernel_to_cil.c:2917,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:2923,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_netif_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2863
      functionLinenumberEnd: 2893
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          135
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - context_to_str
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2870,10'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:2875,10'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:2882,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_port_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2808
      functionLinenumberEnd: 2859
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          245
      EdgeCount:       44
      CyclomaticComplexity: 9
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_cil.c:2818,3'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_cil.c:2832,9'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:2834,9'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:2841,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:2847,3'
          Dst:             sepol_printf
    - functionName:    write_genfscon_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2718
      functionLinenumberEnd: 2804
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         66
      ICount:          381
      EdgeCount:       86
      CyclomaticComplexity: 22
      functionsReached:
        - context_to_str
        - ebitmap_get_bit
        - strcmp
        - strlen
        - strs_create_and_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2726,17'
          Dst:             ebitmap_get_bit
        - Src:             'kernel_to_cil.c:2729,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2743,9'
          Dst:             strcmp
        - Src:             'kernel_to_cil.c:2745,16'
          Dst:             strcmp
        - Src:             'kernel_to_cil.c:2747,16'
          Dst:             strcmp
        - Src:             'kernel_to_cil.c:2749,16'
          Dst:             strcmp
        - Src:             'kernel_to_cil.c:2751,16'
          Dst:             strcmp
        - Src:             'kernel_to_cil.c:2753,16'
          Dst:             strcmp
        - Src:             'kernel_to_cil.c:2755,16'
          Dst:             strcmp
        - Src:             'kernel_to_cil.c:2763,10'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:2769,15'
          Dst:             strlen
        - Src:             'kernel_to_cil.c:2780,10'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_cil.c:2783,10'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_cil.c:2793,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:2794,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:2797,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:2798,2'
          Dst:             strs_destroy
    - functionName:    write_selinux_fsuse_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2680
      functionLinenumberEnd: 2714
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          182
      EdgeCount:       32
      CyclomaticComplexity: 6
      functionsReached:
        - context_to_str
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_cil.c:2687,3'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_cil.c:2698,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:2704,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_isid_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2674
      functionLinenumberEnd: 2675
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - write_sid_context_rules_to_cil
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2675,9'
          Dst:             write_sid_context_rules_to_cil
    - functionName:    write_user_decl_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2451
      functionLinenumberEnd: 2588
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         80
      ICount:          494
      EdgeCount:       108
      CyclomaticComplexity: 30
      functionsReached:
        - ebitmap_to_strs
        - hashtab_search
        - level_to_str
        - range_to_str
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2459,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2466,8'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:2472,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:2474,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:2477,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:2481,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2485,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:2490,10'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:2498,9'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2502,9'
          Dst:             ebitmap_to_strs
        - Src:             'kernel_to_cil.c:2504,5'
          Dst:             strs_destroy
        - Src:             'kernel_to_cil.c:2508,9'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:2510,5'
          Dst:             strs_destroy
        - Src:             'kernel_to_cil.c:2514,4'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:2516,16'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:2518,12'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:2519,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2521,4'
          Dst:             strs_destroy
        - Src:             'kernel_to_cil.c:2526,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:2531,10'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:2537,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2540,12'
          Dst:             level_to_str
        - Src:             'kernel_to_cil.c:2545,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2548,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2550,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2554,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:2559,10'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:2565,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2567,12'
          Dst:             range_to_str
        - Src:             'kernel_to_cil.c:2572,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2575,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2577,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2582,3'
          Dst:             strs_destroy
    - functionName:    write_role_allow_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2413
      functionLinenumberEnd: 2447
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          144
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - strs_create_and_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2419,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2428,8'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_cil.c:2436,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:2437,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:2440,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:2441,2'
          Dst:             strs_destroy
    - functionName:    write_role_transition_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2372
      functionLinenumberEnd: 2409
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          172
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - strs_create_and_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2378,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2389,8'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_cil.c:2398,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:2399,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:2402,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:2403,2'
          Dst:             strs_destroy
    - functionName:    write_role_decl_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2247
      functionLinenumberEnd: 2368
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         84
      ICount:          528
      EdgeCount:       113
      CyclomaticComplexity: 31
      functionsReached:
        - ebitmap_to_strs
        - hashtab_search
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2256,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2264,9'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:2271,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:2273,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:2276,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:2280,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2284,11'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:2288,10'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:2296,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2301,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:2305,10'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:2312,9'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2316,9'
          Dst:             ebitmap_to_strs
        - Src:             'kernel_to_cil.c:2318,5'
          Dst:             strs_destroy
        - Src:             'kernel_to_cil.c:2321,4'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:2323,16'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:2325,12'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:2326,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2328,4'
          Dst:             strs_destroy
        - Src:             'kernel_to_cil.c:2332,2'
          Dst:             strs_destroy
        - Src:             'kernel_to_cil.c:2334,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2342,9'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:2349,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:2351,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:2354,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:2358,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2362,2'
          Dst:             strs_destroy
    - functionName:    write_cond_nodes_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2170
      functionLinenumberEnd: 2243
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          303
      EdgeCount:       58
      CyclomaticComplexity: 15
      functionsReached:
        - calloc
        - cond_expr_to_str
        - cond_node_cmp
        - qsort
        - sepol_indent
        - sepol_printf
        - write_cond_av_list_to_cil
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2181,14'
          Dst:             calloc
        - Src:             'kernel_to_cil.c:2190,10'
          Dst:             cond_expr_to_str
        - Src:             'kernel_to_cil.c:2199,2'
          Dst:             qsort
        - Src:             'kernel_to_cil.c:2199,2'
          Dst:             cond_node_cmp
        - Src:             'kernel_to_cil.c:2205,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2208,4'
          Dst:             sepol_indent
        - Src:             'kernel_to_cil.c:2209,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2210,9'
          Dst:             write_cond_av_list_to_cil
        - Src:             'kernel_to_cil.c:2214,4'
          Dst:             sepol_indent
        - Src:             'kernel_to_cil.c:2215,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2219,4'
          Dst:             sepol_indent
        - Src:             'kernel_to_cil.c:2220,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2221,9'
          Dst:             write_cond_av_list_to_cil
        - Src:             'kernel_to_cil.c:2225,4'
          Dst:             sepol_indent
        - Src:             'kernel_to_cil.c:2226,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2228,3'
          Dst:             sepol_printf
    - functionName:    qsort
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    write_range_trans_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2074
      functionLinenumberEnd: 2103
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          109
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - hashtab_map
        - map_range_trans_to_str
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2079,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2087,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_cil.c:2087,7'
          Dst:             map_range_trans_to_str
        - Src:             'kernel_to_cil.c:2092,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:2093,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:2096,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:2097,2'
          Dst:             strs_destroy
    - functionName:    write_filename_trans_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1963
      functionLinenumberEnd: 1992
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          109
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - hashtab_map
        - map_filename_trans_to_str
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1968,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1976,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_cil.c:1976,7'
          Dst:             map_filename_trans_to_str
        - Src:             'kernel_to_cil.c:1981,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1982,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:1985,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:1986,2'
          Dst:             strs_destroy
    - functionName:    write_avtab_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1905
      functionLinenumberEnd: 1921
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          105
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - write_avtab_flavor_to_cil
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1910,8'
          Dst:             write_avtab_flavor_to_cil
    - functionName:    write_type_neveraudit_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1614
      functionLinenumberEnd: 1652
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          198
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1621,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1626,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_cil.c:1626,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_cil.c:1627,8'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:1626,2'
          Dst:             ebitmap_next
        - Src:             'kernel_to_cil.c:1633,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1635,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:1637,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:1642,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1646,2'
          Dst:             strs_destroy
    - functionName:    write_type_permissive_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1572
      functionLinenumberEnd: 1610
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          198
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1579,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1584,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_cil.c:1584,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_cil.c:1585,8'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:1584,2'
          Dst:             ebitmap_next
        - Src:             'kernel_to_cil.c:1591,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1593,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:1595,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:1600,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1604,2'
          Dst:             strs_destroy
    - functionName:    write_type_attribute_sets_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1524
      functionLinenumberEnd: 1568
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          199
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - ebitmap_to_str
        - strs_create_and_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1532,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1543,11'
          Dst:             ebitmap_to_str
        - Src:             'kernel_to_cil.c:1549,8'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_cil.c:1557,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1558,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:1561,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:1562,2'
          Dst:             strs_destroy
    - functionName:    write_type_bounds_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1470
      functionLinenumberEnd: 1520
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          236
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - hashtab_search
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1478,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1487,10'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:1495,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1497,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:1499,11'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:1504,10'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:1510,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1514,2'
          Dst:             strs_destroy
    - functionName:    write_type_alias_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1410
      functionLinenumberEnd: 1466
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          216
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - hashtab_map
        - hashtab_search
        - map_count_type_aliases
        - map_type_aliases_to_strs
        - sepol_printf
        - strs_destroy
        - strs_init
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1418,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_cil.c:1418,7'
          Dst:             map_count_type_aliases
        - Src:             'kernel_to_cil.c:1423,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1428,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_cil.c:1428,7'
          Dst:             map_type_aliases_to_strs
        - Src:             'kernel_to_cil.c:1433,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1436,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:1441,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1445,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:1450,11'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:1456,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1460,2'
          Dst:             strs_destroy
    - functionName:    write_type_decl_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1383
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          205
      EdgeCount:       43
      CyclomaticComplexity: 12
      functionsReached:
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1349,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1357,9'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:1364,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1366,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:1368,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:1373,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1377,2'
          Dst:             strs_destroy
    - functionName:    write_boolean_decl_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1313
      functionLinenumberEnd: 1338
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          105
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - hashtab_map
        - map_boolean_to_strs
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1317,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1322,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_cil.c:1322,7'
          Dst:             map_boolean_to_strs
        - Src:             'kernel_to_cil.c:1327,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1328,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:1331,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:1332,2'
          Dst:             strs_destroy
    - functionName:    write_role_attributes_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1257
      functionLinenumberEnd: 1298
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          195
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1264,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1272,9'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:1279,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1281,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:1283,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:1288,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1292,2'
          Dst:             strs_destroy
    - functionName:    write_type_attributes_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1212
      functionLinenumberEnd: 1253
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          195
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1219,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1227,9'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:1234,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1236,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:1238,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:1243,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1247,2'
          Dst:             strs_destroy
    - functionName:    write_polcap_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1171
      functionLinenumberEnd: 1208
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          202
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - sepol_polcap_getname
        - strs_create_and_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1178,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1183,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_cil.c:1183,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_cil.c:1184,10'
          Dst:             sepol_polcap_getname
        - Src:             'kernel_to_cil.c:1191,8'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_cil.c:1183,2'
          Dst:             ebitmap_next
        - Src:             'kernel_to_cil.c:1197,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1198,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:1201,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:1202,2'
          Dst:             strs_destroy
    - functionName:    write_mls_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1135
      functionLinenumberEnd: 1168
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          127
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - sepol_printf
        - write_category_rules_to_cil
        - write_default_mls_level
        - write_sensitivity_rules_to_cil
        - write_sensitivitycategory_rules_to_cil
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1139,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1141,3'
          Dst:             write_default_mls_level
        - Src:             'kernel_to_cil.c:1145,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1147,7'
          Dst:             write_sensitivity_rules_to_cil
        - Src:             'kernel_to_cil.c:1152,7'
          Dst:             write_category_rules_to_cil
        - Src:             'kernel_to_cil.c:1157,7'
          Dst:             write_sensitivitycategory_rules_to_cil
    - functionName:    write_default_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 723
      functionLinenumberEnd: 786
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         59
      ICount:          350
      EdgeCount:       78
      CyclomaticComplexity: 21
      functionsReached:
        - write_default_range_to_cil
        - write_default_role_to_cil
        - write_default_type_to_cil
        - write_default_user_to_cil
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:733,9'
          Dst:             write_default_user_to_cil
        - Src:             'kernel_to_cil.c:745,9'
          Dst:             write_default_role_to_cil
        - Src:             'kernel_to_cil.c:757,9'
          Dst:             write_default_type_to_cil
        - Src:             'kernel_to_cil.c:773,9'
          Dst:             write_default_range_to_cil
    - functionName:    write_sid_decl_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 610
      functionLinenumberEnd: 624
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          97
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - write_sids_to_cil
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:614,8'
          Dst:             write_sids_to_cil
        - Src:             'kernel_to_cil.c:617,8'
          Dst:             write_sids_to_cil
    - functionName:    write_class_decl_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 562
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         63
      ICount:          426
      EdgeCount:       82
      CyclomaticComplexity: 21
      functionsReached:
        - calloc
        - class_or_common_perms_to_str
        - hashtab_search
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:488,11'
          Dst:             class_or_common_perms_to_str
        - Src:             'kernel_to_cil.c:490,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:493,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:498,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:502,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:507,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:509,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:517,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:522,9'
          Dst:             calloc
        - Src:             'kernel_to_cil.c:533,13'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:541,13'
          Dst:             class_or_common_perms_to_str
        - Src:             'kernel_to_cil.c:549,5'
          Dst:             sepol_printf
    - functionName:    write_handle_unknown_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          88
      EdgeCount:       14
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_cil.c:428,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_cil.c:443,2'
          Dst:             sepol_printf
    - functionName:    validatetrans_rules_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 399
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          101
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - class_validatetrans_rules_to_strs
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:410,9'
          Dst:             class_validatetrans_rules_to_strs
        - Src:             'kernel_to_cil.c:417,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:418,2'
          Dst:             strs_sort
    - functionName:    constraint_rules_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 395
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          102
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - class_constraint_rules_to_strs
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:384,9'
          Dst:             class_constraint_rules_to_strs
        - Src:             'kernel_to_cil.c:391,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:392,2'
          Dst:             strs_sort
    - functionName:    sepol_kernel_policydb_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3258
      functionLinenumberEnd: 3534
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         127
      ICount:          775
      EdgeCount:       182
      CyclomaticComplexity: 57
      functionsReached:
        - constraint_rules_to_strs
        - sort_ocontexts
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_write_each
        - validatetrans_rules_to_strs
        - write_avtab_to_cil
        - write_boolean_decl_rules_to_cil
        - write_class_decl_rules_to_cil
        - write_cond_nodes_to_cil
        - write_default_rules_to_cil
        - write_filename_trans_rules_to_cil
        - write_genfscon_rules_to_cil
        - write_handle_unknown_to_cil
        - write_mls_rules_to_cil
        - write_polcap_rules_to_cil
        - write_range_trans_rules_to_cil
        - write_role_allow_rules_to_cil
        - write_role_attributes_to_cil
        - write_role_decl_rules_to_cil
        - write_role_transition_rules_to_cil
        - write_selinux_fsuse_rules_to_cil
        - write_selinux_ibendport_rules_to_cil
        - write_selinux_ibpkey_rules_to_cil
        - write_selinux_isid_rules_to_cil
        - write_selinux_netif_rules_to_cil
        - write_selinux_node6_rules_to_cil
        - write_selinux_node_rules_to_cil
        - write_selinux_port_rules_to_cil
        - write_sid_decl_rules_to_cil
        - write_type_alias_rules_to_cil
        - write_type_attribute_sets_to_cil
        - write_type_attributes_to_cil
        - write_type_bounds_rules_to_cil
        - write_type_decl_rules_to_cil
        - write_type_neveraudit_rules_to_cil
        - write_type_permissive_rules_to_cil
        - write_user_decl_rules_to_cil
        - write_xen_devicetree_rules_to_cil
        - write_xen_iomem_rules_to_cil
        - write_xen_ioport_rules_to_cil
        - write_xen_isid_rules_to_cil
        - write_xen_pcidevice_rules_to_cil
        - write_xen_pirq_rules_to_cil
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:3265,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:3270,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:3275,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:3280,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:3309,7'
          Dst:             constraint_rules_to_strs
        - Src:             'kernel_to_cil.c:3314,7'
          Dst:             validatetrans_rules_to_strs
        - Src:             'kernel_to_cil.c:3319,7'
          Dst:             write_handle_unknown_to_cil
        - Src:             'kernel_to_cil.c:3324,7'
          Dst:             write_class_decl_rules_to_cil
        - Src:             'kernel_to_cil.c:3329,7'
          Dst:             write_sid_decl_rules_to_cil
        - Src:             'kernel_to_cil.c:3334,7'
          Dst:             write_default_rules_to_cil
        - Src:             'kernel_to_cil.c:3339,7'
          Dst:             write_mls_rules_to_cil
        - Src:             'kernel_to_cil.c:3344,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:3345,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:3347,7'
          Dst:             write_polcap_rules_to_cil
        - Src:             'kernel_to_cil.c:3352,7'
          Dst:             write_type_attributes_to_cil
        - Src:             'kernel_to_cil.c:3357,7'
          Dst:             write_role_attributes_to_cil
        - Src:             'kernel_to_cil.c:3362,7'
          Dst:             write_boolean_decl_rules_to_cil
        - Src:             'kernel_to_cil.c:3367,7'
          Dst:             write_type_decl_rules_to_cil
        - Src:             'kernel_to_cil.c:3372,7'
          Dst:             write_type_alias_rules_to_cil
        - Src:             'kernel_to_cil.c:3377,7'
          Dst:             write_type_bounds_rules_to_cil
        - Src:             'kernel_to_cil.c:3382,7'
          Dst:             write_type_attribute_sets_to_cil
        - Src:             'kernel_to_cil.c:3387,7'
          Dst:             write_type_permissive_rules_to_cil
        - Src:             'kernel_to_cil.c:3392,7'
          Dst:             write_type_neveraudit_rules_to_cil
        - Src:             'kernel_to_cil.c:3397,7'
          Dst:             write_avtab_to_cil
        - Src:             'kernel_to_cil.c:3402,7'
          Dst:             write_filename_trans_rules_to_cil
        - Src:             'kernel_to_cil.c:3408,8'
          Dst:             write_range_trans_rules_to_cil
        - Src:             'kernel_to_cil.c:3414,7'
          Dst:             write_cond_nodes_to_cil
        - Src:             'kernel_to_cil.c:3419,7'
          Dst:             write_role_decl_rules_to_cil
        - Src:             'kernel_to_cil.c:3424,7'
          Dst:             write_role_transition_rules_to_cil
        - Src:             'kernel_to_cil.c:3429,7'
          Dst:             write_role_allow_rules_to_cil
        - Src:             'kernel_to_cil.c:3434,7'
          Dst:             write_user_decl_rules_to_cil
        - Src:             'kernel_to_cil.c:3439,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:3440,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:3442,7'
          Dst:             sort_ocontexts
        - Src:             'kernel_to_cil.c:3448,8'
          Dst:             write_selinux_isid_rules_to_cil
        - Src:             'kernel_to_cil.c:3453,8'
          Dst:             write_selinux_fsuse_rules_to_cil
        - Src:             'kernel_to_cil.c:3458,8'
          Dst:             write_genfscon_rules_to_cil
        - Src:             'kernel_to_cil.c:3463,8'
          Dst:             write_selinux_port_rules_to_cil
        - Src:             'kernel_to_cil.c:3468,8'
          Dst:             write_selinux_netif_rules_to_cil
        - Src:             'kernel_to_cil.c:3473,8'
          Dst:             write_selinux_node_rules_to_cil
        - Src:             'kernel_to_cil.c:3478,8'
          Dst:             write_selinux_node6_rules_to_cil
        - Src:             'kernel_to_cil.c:3483,8'
          Dst:             write_selinux_ibpkey_rules_to_cil
        - Src:             'kernel_to_cil.c:3488,8'
          Dst:             write_selinux_ibendport_rules_to_cil
        - Src:             'kernel_to_cil.c:3493,8'
          Dst:             write_xen_isid_rules_to_cil
        - Src:             'kernel_to_cil.c:3498,8'
          Dst:             write_xen_pirq_rules_to_cil
        - Src:             'kernel_to_cil.c:3503,8'
          Dst:             write_xen_ioport_rules_to_cil
        - Src:             'kernel_to_cil.c:3508,8'
          Dst:             write_xen_iomem_rules_to_cil
        - Src:             'kernel_to_cil.c:3513,8'
          Dst:             write_xen_pcidevice_rules_to_cil
        - Src:             'kernel_to_cil.c:3518,8'
          Dst:             write_xen_devicetree_rules_to_cil
        - Src:             'kernel_to_cil.c:3525,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:3526,2'
          Dst:             strs_destroy
        - Src:             'kernel_to_cil.c:3527,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:3528,2'
          Dst:             strs_destroy
        - Src:             'kernel_to_cil.c:3529,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:3530,2'
          Dst:             strs_destroy
        - Src:             'kernel_to_cil.c:3531,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:3532,2'
          Dst:             strs_destroy
    - functionName:    compare_ranges
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 434
      functionLinenumberEnd: 453
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          72
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dtree_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 634
      functionLinenumberEnd: 638
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:638,9'
          Dst:             strcmp
    - functionName:    pcid_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 620
      functionLinenumberEnd: 631
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          54
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    iomem_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 611
      functionLinenumberEnd: 616
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - compare_ranges
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:615,9'
          Dst:             compare_ranges
    - functionName:    ioport_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 602
      functionLinenumberEnd: 607
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          46
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - compare_ranges
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:606,9'
          Dst:             compare_ranges
    - functionName:    pirq_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 588
      functionLinenumberEnd: 599
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          58
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ibendport_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 575
      functionLinenumberEnd: 585
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          82
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:580,7'
          Dst:             strcmp
    - functionName:    ibpkey_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 561
      functionLinenumberEnd: 572
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          77
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - compare_ranges
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:570,9'
          Dst:             compare_ranges
    - functionName:    node6_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 545
      functionLinenumberEnd: 558
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:550,7'
          Dst:             memcmp
        - Src:             'kernel_to_common.c:557,9'
          Dst:             memcmp
    - functionName:    memcmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    node_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 542
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:534,7'
          Dst:             memcmp
        - Src:             'kernel_to_common.c:541,9'
          Dst:             memcmp
    - functionName:    netif_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 491
      functionLinenumberEnd: 526
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          170
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - strcmp
        - strcspn
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:497,18'
          Dst:             strcspn
        - Src:             'kernel_to_common.c:498,18'
          Dst:             strcspn
        - Src:             'kernel_to_common.c:499,17'
          Dst:             strlen
        - Src:             'kernel_to_common.c:500,17'
          Dst:             strlen
        - Src:             'kernel_to_common.c:512,10'
          Dst:             strcmp
        - Src:             'kernel_to_common.c:525,9'
          Dst:             strcmp
    - functionName:    strcspn
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    portcon_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 472
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          103
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - compare_ranges
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:477,7'
          Dst:             compare_ranges
    - functionName:    fsuse_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          69
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:468,9'
          Dst:             strcmp
    - functionName:    sort_ocontext_data
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 642
      functionLinenumberEnd: 679
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          177
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - calloc
        - qsort
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:656,9'
          Dst:             calloc
        - Src:             'kernel_to_common.c:668,2'
          Dst:             qsort
    - functionName:    sort_ocontexts
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 682
      functionLinenumberEnd: 752
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         42
      ICount:          246
      EdgeCount:       58
      CyclomaticComplexity: 18
      functionsReached:
        - dtree_data_cmp
        - fsuse_data_cmp
        - ibendport_data_cmp
        - ibpkey_data_cmp
        - iomem_data_cmp
        - ioport_data_cmp
        - netif_data_cmp
        - node6_data_cmp
        - node_data_cmp
        - pcid_data_cmp
        - pirq_data_cmp
        - portcon_data_cmp
        - sort_ocontext_data
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:686,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:686,8'
          Dst:             fsuse_data_cmp
        - Src:             'kernel_to_common.c:691,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:691,8'
          Dst:             portcon_data_cmp
        - Src:             'kernel_to_common.c:696,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:696,8'
          Dst:             netif_data_cmp
        - Src:             'kernel_to_common.c:701,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:701,8'
          Dst:             node_data_cmp
        - Src:             'kernel_to_common.c:706,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:706,8'
          Dst:             node6_data_cmp
        - Src:             'kernel_to_common.c:711,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:711,8'
          Dst:             ibpkey_data_cmp
        - Src:             'kernel_to_common.c:716,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:716,8'
          Dst:             ibendport_data_cmp
        - Src:             'kernel_to_common.c:721,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:721,8'
          Dst:             pirq_data_cmp
        - Src:             'kernel_to_common.c:726,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:726,8'
          Dst:             ioport_data_cmp
        - Src:             'kernel_to_common.c:731,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:731,8'
          Dst:             iomem_data_cmp
        - Src:             'kernel_to_common.c:736,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:736,8'
          Dst:             pcid_data_cmp
        - Src:             'kernel_to_common.c:741,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:741,8'
          Dst:             dtree_data_cmp
    - functionName:    isids_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 386
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          198
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - snprintf
        - strdup
        - strs_add_at_index
        - strs_destroy
        - strs_free_all
        - strs_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:394,7'
          Dst:             strs_init
        - Src:             'kernel_to_common.c:409,10'
          Dst:             strdup
        - Src:             'kernel_to_common.c:411,4'
          Dst:             snprintf
        - Src:             'kernel_to_common.c:412,10'
          Dst:             strdup
        - Src:             'kernel_to_common.c:418,8'
          Dst:             strs_add_at_index
        - Src:             'kernel_to_common.c:428,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_common.c:429,2'
          Dst:             strs_destroy
    - functionName:    strs_init
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          147
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
      functionUses:    61
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:75,14'
          Dst:             calloc
    - functionName:    strs_add_at_index
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          155
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - reallocarray
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:179,9'
          Dst:             reallocarray
    - functionName:    strs_free_all
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    35
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strs_destroy
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    70
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reallocarray
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strs_stack_empty
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strs_num_items
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:382,9'
          Dst:             strs_num_items
    - functionName:    strs_num_items
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    29
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strs_stack_pop
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strs_remove_last
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:377,9'
          Dst:             strs_remove_last
    - functionName:    strs_remove_last
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strs_stack_push
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strs_add
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:372,9'
          Dst:             strs_add
    - functionName:    strs_add
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          132
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - reallocarray
      functionUses:    31
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:122,9'
          Dst:             reallocarray
    - functionName:    strs_stack_destroy
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strs_destroy
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:367,9'
          Dst:             strs_destroy
    - functionName:    strs_stack_init
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strs_init
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:362,9'
          Dst:             strs_init
    - functionName:    ebitmap_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 333
      functionLinenumberEnd: 357
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ebitmap_to_strs
        - strs_destroy
        - strs_init
        - strs_sort
        - strs_to_str
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:338,7'
          Dst:             strs_init
        - Src:             'kernel_to_common.c:343,7'
          Dst:             ebitmap_to_strs
        - Src:             'kernel_to_common.c:349,3'
          Dst:             strs_sort
        - Src:             'kernel_to_common.c:352,8'
          Dst:             strs_to_str
        - Src:             'kernel_to_common.c:355,2'
          Dst:             strs_destroy
    - functionName:    ebitmap_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 330
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          99
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - strs_add
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:319,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_common.c:319,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_common.c:323,8'
          Dst:             strs_add
        - Src:             'kernel_to_common.c:319,2'
          Dst:             ebitmap_next
    - functionName:    strs_sort
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - qsort
        - strs_cmp
      functionUses:    53
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:217,2'
          Dst:             qsort
        - Src:             'kernel_to_common.c:217,2'
          Dst:             strs_cmp
    - functionName:    strs_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          187
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - snprintf
        - strlen
        - strs_len_items
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:251,8'
          Dst:             strs_len_items
        - Src:             'kernel_to_common.c:261,9'
          Dst:             strlen
        - Src:             'kernel_to_common.c:262,8'
          Dst:             snprintf
    - functionName:    strs_len_items
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:232,10'
          Dst:             strlen
    - functionName:    strs_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:209,9'
          Dst:             strcmp
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hashtab_ordered_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strs_add_at_index
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:310,9'
          Dst:             strs_add_at_index
    - functionName:    strs_write_each_indented
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sepol_indent
        - sepol_printf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:300,3'
          Dst:             sepol_indent
        - Src:             'kernel_to_common.c:301,3'
          Dst:             sepol_printf
    - functionName:    sepol_indent
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - fprintf
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:28,6'
          Dst:             fprintf
    - functionName:    sepol_printf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - vfprintf
      functionUses:    135
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:37,6'
          Dst:             vfprintf
    - functionName:    strs_write_each
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sepol_printf
      functionUses:    26
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:288,3'
          Dst:             sepol_printf
    - functionName:    strs_read_at_index
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    37
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strs_create_and_add
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strs_add
        - vasprintf
      functionUses:    22
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:144,7'
          Dst:             vasprintf
        - Src:             'kernel_to_common.c:150,7'
          Dst:             strs_add
    - functionName:    vasprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    create_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - vasprintf
      functionUses:    36
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:50,7'
          Dst:             vasprintf
    - functionName:    context_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2449
      functionLinenumberEnd: 2465
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          90
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - create_str
        - range_to_str
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2458,11'
          Dst:             range_to_str
        - Src:             'kernel_to_conf.c:2459,9'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:2462,9'
          Dst:             create_str
    - functionName:    range_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1974
      functionLinenumberEnd: 1995
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - create_str
        - level_to_str
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1979,8'
          Dst:             level_to_str
        - Src:             'kernel_to_conf.c:1984,9'
          Dst:             level_to_str
        - Src:             'kernel_to_conf.c:1989,14'
          Dst:             create_str
    - functionName:    level_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1956
      functionLinenumberEnd: 1970
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          65
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - cats_ebitmap_to_str
        - create_str
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1963,14'
          Dst:             cats_ebitmap_to_str
        - Src:             'kernel_to_conf.c:1964,15'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:1967,15'
          Dst:             create_str
    - functionName:    cats_ebitmap_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1035
      functionLinenumberEnd: 1090
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          225
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - cats_ebitmap_len
        - ebitmap_get_bit
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - snprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1042,19'
          Dst:             cats_ebitmap_len
        - Src:             'kernel_to_conf.c:1055,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_conf.c:1055,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_conf.c:1061,7'
          Dst:             ebitmap_get_bit
        - Src:             'kernel_to_conf.c:1066,10'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:1070,10'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:1055,2'
          Dst:             ebitmap_next
    - functionName:    cats_ebitmap_len
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1008
      functionLinenumberEnd: 1031
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          128
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - ebitmap_get_bit
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1014,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_conf.c:1014,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_conf.c:1020,7'
          Dst:             ebitmap_get_bit
        - Src:             'kernel_to_conf.c:1023,10'
          Dst:             strlen
        - Src:             'kernel_to_conf.c:1025,11'
          Dst:             strlen
        - Src:             'kernel_to_conf.c:1014,2'
          Dst:             ebitmap_next
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    write_sid_context_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2469
      functionLinenumberEnd: 2522
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          199
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - context_to_str
        - create_str
        - snprintf
        - strs_add_at_index
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_write_each
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2478,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:2488,4'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:2492,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2498,10'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:2505,8'
          Dst:             strs_add_at_index
        - Src:             'kernel_to_conf.c:2512,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:2515,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:2516,2'
          Dst:             strs_destroy
    - functionName:    write_cond_av_list_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2067
      functionLinenumberEnd: 2115
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          149
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - avtab_node_to_str
        - strs_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each_indented
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2080,8'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:2090,12'
          Dst:             avtab_node_to_str
        - Src:             'kernel_to_conf.c:2095,10'
          Dst:             strs_add
        - Src:             'kernel_to_conf.c:2103,3'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:2104,3'
          Dst:             strs_write_each_indented
        - Src:             'kernel_to_conf.c:2105,3'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:2106,3'
          Dst:             strs_destroy
        - Src:             'kernel_to_conf.c:2112,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:2113,2'
          Dst:             strs_destroy
    - functionName:    avtab_node_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1713
      functionLinenumberEnd: 1800
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         58
      ICount:          453
      EdgeCount:       70
      CyclomaticComplexity: 14
      functionsReached:
        - create_str
        - sepol_av_to_string
        - sepol_extended_perms_to_string
      functionUses:    2
      BranchProfiles:
        - Branch String:   'kernel_to_conf.c:1719,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_conf.c:1764,16'
          Dst:             sepol_av_to_string
        - Src:             'kernel_to_conf.c:1774,10'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:1778,16'
          Dst:             sepol_extended_perms_to_string
        - Src:             'kernel_to_conf.c:1784,10'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:1789,10'
          Dst:             create_str
    - functionName:    cond_node_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2123
      functionLinenumberEnd: 2126
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2126,9'
          Dst:             strcmp
    - functionName:    cond_expr_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         77
      ICount:          482
      EdgeCount:       95
      CyclomaticComplexity: 20
      functionsReached:
        - create_str
        - strs_stack_destroy
        - strs_stack_empty
        - strs_stack_init
        - strs_stack_pop
        - strs_stack_push
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_conf.c:54,4'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_conf.c:39,7'
          Dst:             strs_stack_init
        - Src:             'kernel_to_conf.c:47,14'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:67,12'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_conf.c:73,11'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_conf.c:80,15'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:83,15'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:91,8'
          Dst:             strs_stack_push
        - Src:             'kernel_to_conf.c:98,12'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_conf.c:99,19'
          Dst:             strs_stack_empty
        - Src:             'kernel_to_conf.c:106,2'
          Dst:             strs_stack_destroy
        - Src:             'kernel_to_conf.c:111,21'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_conf.c:114,3'
          Dst:             strs_stack_destroy
    - functionName:    map_range_trans_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2004
      functionLinenumberEnd: 2030
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          111
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - range_to_str
        - strs_create_and_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2016,10'
          Dst:             range_to_str
        - Src:             'kernel_to_conf.c:2022,7'
          Dst:             strs_create_and_add
    - functionName:    map_filename_trans_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1890
      functionLinenumberEnd: 1920
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          181
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - strs_create_and_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1907,3'
          Dst:             ebitmap_start
        - Src:             'kernel_to_conf.c:1907,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_conf.c:1909,9'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_conf.c:1907,3'
          Dst:             ebitmap_next
    - functionName:    map_avtab_write_helper
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1809
      functionLinenumberEnd: 1831
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          84
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - avtab_node_to_str
        - strs_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1818,10'
          Dst:             avtab_node_to_str
        - Src:             'kernel_to_conf.c:1823,8'
          Dst:             strs_add
    - functionName:    write_avtab_flavor_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1835
      functionLinenumberEnd: 1861
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          68
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - avtab_map
        - map_avtab_write_helper
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each_indented
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1840,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1849,7'
          Dst:             avtab_map
        - Src:             'kernel_to_conf.c:1849,7'
          Dst:             map_avtab_write_helper
        - Src:             'kernel_to_conf.c:1854,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1855,2'
          Dst:             strs_write_each_indented
        - Src:             'kernel_to_conf.c:1858,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:1859,2'
          Dst:             strs_destroy
    - functionName:    attr_strs_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1502
      functionLinenumberEnd: 1541
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          193
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - snprintf
        - strlen
        - strs_len_items
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1514,8'
          Dst:             strs_len_items
        - Src:             'kernel_to_conf.c:1524,9'
          Dst:             strlen
        - Src:             'kernel_to_conf.c:1525,8'
          Dst:             snprintf
    - functionName:    attrmap_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1545
      functionLinenumberEnd: 1567
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - attr_strs_to_str
        - ebitmap_to_strs
        - strs_destroy
        - strs_init
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1550,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1555,7'
          Dst:             ebitmap_to_strs
        - Src:             'kernel_to_conf.c:1560,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1562,8'
          Dst:             attr_strs_to_str
        - Src:             'kernel_to_conf.c:1565,2'
          Dst:             strs_destroy
    - functionName:    map_type_aliases_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1385
      functionLinenumberEnd: 1393
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strs_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1391,8'
          Dst:             strs_add
    - functionName:    map_count_type_aliases
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1374
      functionLinenumberEnd: 1381
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    map_boolean_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1289
      functionLinenumberEnd: 1296
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strs_create_and_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1296,9'
          Dst:             strs_create_and_add
    - functionName:    map_category_aliases_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 900
      functionLinenumberEnd: 909
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strs_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:906,8'
          Dst:             strs_add
    - functionName:    map_sensitivity_aliases_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 769
      functionLinenumberEnd: 778
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strs_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:775,8'
          Dst:             strs_add
    - functionName:    write_level_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1093
      functionLinenumberEnd: 1123
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          167
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - cats_ebitmap_to_str
        - hashtab_search
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1102,11'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:1110,11'
          Dst:             cats_ebitmap_to_str
        - Src:             'kernel_to_conf.c:1111,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:1114,4'
          Dst:             sepol_printf
    - functionName:    write_category_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 913
      functionLinenumberEnd: 1004
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         60
      ICount:          392
      EdgeCount:       80
      CyclomaticComplexity: 22
      functionsReached:
        - calloc
        - create_str
        - hashtab_map
        - hashtab_search
        - map_category_aliases_to_strs
        - sepol_printf
        - strchr
        - strdup
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:921,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:926,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_conf.c:926,7'
          Dst:             map_category_aliases_to_strs
        - Src:             'kernel_to_conf.c:931,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:934,19'
          Dst:             calloc
        - Src:             'kernel_to_conf.c:942,11'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:943,10'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:950,24'
          Dst:             strdup
        - Src:             'kernel_to_conf.c:957,24'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:971,9'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:980,8'
          Dst:             strchr
        - Src:             'kernel_to_conf.c:981,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:983,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:986,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:998,2'
          Dst:             strs_destroy
    - functionName:    write_sensitivity_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 782
      functionLinenumberEnd: 896
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         76
      ICount:          484
      EdgeCount:       102
      CyclomaticComplexity: 28
      functionsReached:
        - calloc
        - create_str
        - hashtab_map
        - hashtab_search
        - map_sensitivity_aliases_to_strs
        - sepol_printf
        - strchr
        - strdup
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:790,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:795,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_conf.c:795,7'
          Dst:             map_sensitivity_aliases_to_strs
        - Src:             'kernel_to_conf.c:800,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:803,20'
          Dst:             calloc
        - Src:             'kernel_to_conf.c:811,11'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:812,12'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:819,25'
          Dst:             strdup
        - Src:             'kernel_to_conf.c:826,25'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:840,11'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:849,8'
          Dst:             strchr
        - Src:             'kernel_to_conf.c:850,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:852,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:855,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:860,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:865,11'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:873,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:878,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:880,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:890,2'
          Dst:             strs_destroy
    - functionName:    write_default_range_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 668
      functionLinenumberEnd: 700
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          113
      EdgeCount:       18
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_conf.c:671,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_conf.c:697,2'
          Dst:             sepol_printf
    - functionName:    write_default_type_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 648
      functionLinenumberEnd: 665
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_conf.c:651,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_conf.c:662,2'
          Dst:             sepol_printf
    - functionName:    write_default_role_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 628
      functionLinenumberEnd: 645
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_conf.c:631,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_conf.c:642,2'
          Dst:             sepol_printf
    - functionName:    write_default_user_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 608
      functionLinenumberEnd: 625
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_conf.c:611,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_conf.c:622,2'
          Dst:             sepol_printf
    - functionName:    class_or_common_perms_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 532
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - hashtab_map
        - hashtab_ordered_to_strs
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_to_str
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:515,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:520,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_conf.c:520,7'
          Dst:             hashtab_ordered_to_strs
        - Src:             'kernel_to_conf.c:525,6'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:526,11'
          Dst:             strs_to_str
        - Src:             'kernel_to_conf.c:530,2'
          Dst:             strs_destroy
    - functionName:    write_sids_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 465
      functionLinenumberEnd: 490
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          116
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - isids_to_strs
        - sepol_printf
        - strs_destroy
        - strs_free_all
        - strs_num_items
        - strs_read_at_index
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:470,9'
          Dst:             isids_to_strs
        - Src:             'kernel_to_conf.c:476,6'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:477,3'
          Dst:             strs_destroy
        - Src:             'kernel_to_conf.c:481,16'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:482,9'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:483,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:486,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:487,2'
          Dst:             strs_destroy
    - functionName:    class_validatetrans_rules_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          96
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - constraint_expr_to_str
        - strs_create_and_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:351,10'
          Dst:             constraint_expr_to_str
        - Src:             'kernel_to_conf.c:365,8'
          Dst:             strs_create_and_add
    - functionName:    constraint_expr_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         134
      ICount:          826
      EdgeCount:       161
      CyclomaticComplexity: 29
      functionsReached:
        - create_str
        - ebitmap_to_str
        - strchr
        - strdup
        - strs_stack_destroy
        - strs_stack_empty
        - strs_stack_init
        - strs_stack_pop
        - strs_stack_push
      functionUses:    2
      BranchProfiles:
        - Branch String:   'kernel_to_conf.c:141,4'
          Branch Sides:    []
        - Branch String:   'kernel_to_conf.c:152,4'
          Branch Sides:    []
        - Branch String:   'kernel_to_conf.c:208,4'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_conf.c:131,7'
          Dst:             strs_stack_init
        - Src:             'kernel_to_conf.c:178,15'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:183,14'
          Dst:             ebitmap_to_str
        - Src:             'kernel_to_conf.c:185,14'
          Dst:             ebitmap_to_str
        - Src:             'kernel_to_conf.c:187,14'
          Dst:             ebitmap_to_str
        - Src:             'kernel_to_conf.c:190,14'
          Dst:             strdup
        - Src:             'kernel_to_conf.c:196,9'
          Dst:             strchr
        - Src:             'kernel_to_conf.c:197,16'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:199,16'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:218,12'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_conf.c:224,11'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_conf.c:231,15'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:234,15'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:241,8'
          Dst:             strs_stack_push
        - Src:             'kernel_to_conf.c:248,12'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_conf.c:249,19'
          Dst:             strs_stack_empty
        - Src:             'kernel_to_conf.c:256,2'
          Dst:             strs_stack_destroy
        - Src:             'kernel_to_conf.c:262,21'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_conf.c:265,3'
          Dst:             strs_stack_destroy
    - functionName:    class_constraint_rules_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          281
      EdgeCount:       51
      CyclomaticComplexity: 13
      functionsReached:
        - constraint_expr_to_str
        - sepol_av_to_string
        - strchr
        - strs_create_and_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:288,10'
          Dst:             constraint_expr_to_str
        - Src:             'kernel_to_conf.c:294,11'
          Dst:             sepol_av_to_string
        - Src:             'kernel_to_conf.c:306,7'
          Dst:             strchr
        - Src:             'kernel_to_conf.c:321,8'
          Dst:             strs_create_and_add
    - functionName:    write_xen_devicetree_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3085
      functionLinenumberEnd: 3108
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          115
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - context_to_str
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:3092,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:3098,3'
          Dst:             sepol_printf
    - functionName:    write_xen_pcidevice_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3050
      functionLinenumberEnd: 3081
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          137
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:3057,8'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:3063,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:3069,3'
          Dst:             sepol_printf
    - functionName:    write_xen_ioport_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2964
      functionLinenumberEnd: 3003
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          164
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2976,9'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:2978,9'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:2985,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2991,3'
          Dst:             sepol_printf
    - functionName:    write_xen_iomem_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3007
      functionLinenumberEnd: 3046
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          164
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:3019,9'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:3021,9'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:3028,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:3034,3'
          Dst:             sepol_printf
    - functionName:    write_xen_pirq_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2929
      functionLinenumberEnd: 2960
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          137
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2936,8'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:2942,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2948,3'
          Dst:             sepol_printf
    - functionName:    write_xen_isid_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2923
      functionLinenumberEnd: 2924
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - write_sid_context_rules_to_conf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2924,9'
          Dst:             write_sid_context_rules_to_conf
    - functionName:    write_selinux_ibendport_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2887
      functionLinenumberEnd: 2919
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          142
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2895,8'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:2901,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2907,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_ibpkey_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2830
      functionLinenumberEnd: 2883
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          224
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - context_to_str
        - inet_ntop
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2845,7'
          Dst:             inet_ntop
        - Src:             'kernel_to_conf.c:2855,9'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:2857,9'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:2864,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2870,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_node6_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2790
      functionLinenumberEnd: 2826
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          209
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - context_to_str
        - inet_ntop
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2798,7'
          Dst:             inet_ntop
        - Src:             'kernel_to_conf.c:2804,7'
          Dst:             inet_ntop
        - Src:             'kernel_to_conf.c:2810,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2816,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_node_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2749
      functionLinenumberEnd: 2785
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          209
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - context_to_str
        - inet_ntop
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2757,7'
          Dst:             inet_ntop
        - Src:             'kernel_to_conf.c:2763,7'
          Dst:             inet_ntop
        - Src:             'kernel_to_conf.c:2769,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2775,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_netif_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2715
      functionLinenumberEnd: 2745
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          135
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - context_to_str
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2722,10'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2727,10'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2734,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_port_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2660
      functionLinenumberEnd: 2711
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          245
      EdgeCount:       44
      CyclomaticComplexity: 9
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_conf.c:2670,3'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_conf.c:2684,9'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:2686,9'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:2693,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2699,3'
          Dst:             sepol_printf
    - functionName:    write_genfscon_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2570
      functionLinenumberEnd: 2656
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         66
      ICount:          381
      EdgeCount:       86
      CyclomaticComplexity: 22
      functionsReached:
        - context_to_str
        - ebitmap_get_bit
        - strcmp
        - strlen
        - strs_create_and_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2578,17'
          Dst:             ebitmap_get_bit
        - Src:             'kernel_to_conf.c:2581,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:2595,9'
          Dst:             strcmp
        - Src:             'kernel_to_conf.c:2597,16'
          Dst:             strcmp
        - Src:             'kernel_to_conf.c:2599,16'
          Dst:             strcmp
        - Src:             'kernel_to_conf.c:2601,16'
          Dst:             strcmp
        - Src:             'kernel_to_conf.c:2603,16'
          Dst:             strcmp
        - Src:             'kernel_to_conf.c:2605,16'
          Dst:             strcmp
        - Src:             'kernel_to_conf.c:2607,16'
          Dst:             strcmp
        - Src:             'kernel_to_conf.c:2615,10'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2621,15'
          Dst:             strlen
        - Src:             'kernel_to_conf.c:2632,10'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_conf.c:2635,10'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_conf.c:2645,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:2646,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:2649,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:2650,2'
          Dst:             strs_destroy
    - functionName:    write_selinux_fsuse_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2532
      functionLinenumberEnd: 2566
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          182
      EdgeCount:       32
      CyclomaticComplexity: 6
      functionsReached:
        - context_to_str
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_conf.c:2539,3'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_conf.c:2550,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2556,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_isid_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2526
      functionLinenumberEnd: 2527
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - write_sid_context_rules_to_conf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2527,9'
          Dst:             write_sid_context_rules_to_conf
    - functionName:    write_user_decl_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2366
      functionLinenumberEnd: 2445
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          307
      EdgeCount:       64
      CyclomaticComplexity: 18
      functionsReached:
        - ebitmap_to_str
        - hashtab_search
        - level_to_str
        - range_to_str
        - sepol_printf
        - strchr
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2373,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:2380,8'
          Dst:             strs_add
        - Src:             'kernel_to_conf.c:2386,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:2388,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:2391,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:2395,10'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:2400,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2403,12'
          Dst:             ebitmap_to_str
        - Src:             'kernel_to_conf.c:2409,8'
          Dst:             strchr
        - Src:             'kernel_to_conf.c:2410,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2412,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2418,12'
          Dst:             level_to_str
        - Src:             'kernel_to_conf.c:2423,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2426,12'
          Dst:             range_to_str
        - Src:             'kernel_to_conf.c:2431,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2434,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2439,3'
          Dst:             strs_destroy
    - functionName:    write_role_allow_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2328
      functionLinenumberEnd: 2362
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          144
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - strs_create_and_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2334,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:2343,8'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_conf.c:2351,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:2352,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:2355,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:2356,2'
          Dst:             strs_destroy
    - functionName:    write_role_transition_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2287
      functionLinenumberEnd: 2324
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          172
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - strs_create_and_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2293,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:2304,8'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_conf.c:2313,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:2314,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:2317,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:2318,2'
          Dst:             strs_destroy
    - functionName:    write_role_decl_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2205
      functionLinenumberEnd: 2283
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         58
      ICount:          343
      EdgeCount:       77
      CyclomaticComplexity: 21
      functionsReached:
        - ebitmap_to_str
        - hashtab_search
        - sepol_printf
        - strchr
        - strlen
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2212,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:2221,9'
          Dst:             strs_add
        - Src:             'kernel_to_conf.c:2228,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:2230,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:2233,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:2237,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2241,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:2243,10'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:2249,11'
          Dst:             ebitmap_to_str
        - Src:             'kernel_to_conf.c:2254,7'
          Dst:             strlen
        - Src:             'kernel_to_conf.c:2259,11'
          Dst:             strchr
        - Src:             'kernel_to_conf.c:2267,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2271,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2277,2'
          Dst:             strs_destroy
    - functionName:    write_cond_nodes_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2130
      functionLinenumberEnd: 2202
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          302
      EdgeCount:       62
      CyclomaticComplexity: 16
      functionsReached:
        - calloc
        - cond_expr_to_str
        - cond_node_cmp
        - qsort
        - sepol_printf
        - write_cond_av_list_to_conf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2146,14'
          Dst:             calloc
        - Src:             'kernel_to_conf.c:2155,10'
          Dst:             cond_expr_to_str
        - Src:             'kernel_to_conf.c:2164,2'
          Dst:             qsort
        - Src:             'kernel_to_conf.c:2164,2'
          Dst:             cond_node_cmp
        - Src:             'kernel_to_conf.c:2170,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2173,9'
          Dst:             write_cond_av_list_to_conf
        - Src:             'kernel_to_conf.c:2180,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2181,9'
          Dst:             write_cond_av_list_to_conf
        - Src:             'kernel_to_conf.c:2186,3'
          Dst:             sepol_printf
    - functionName:    write_range_trans_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2034
      functionLinenumberEnd: 2063
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          109
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - hashtab_map
        - map_range_trans_to_str
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2039,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:2047,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_conf.c:2047,7'
          Dst:             map_range_trans_to_str
        - Src:             'kernel_to_conf.c:2052,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:2053,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:2056,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:2057,2'
          Dst:             strs_destroy
    - functionName:    write_filename_trans_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1923
      functionLinenumberEnd: 1952
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          109
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - hashtab_map
        - map_filename_trans_to_str
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1928,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1936,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_conf.c:1936,7'
          Dst:             map_filename_trans_to_str
        - Src:             'kernel_to_conf.c:1941,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1942,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:1945,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:1946,2'
          Dst:             strs_destroy
    - functionName:    write_avtab_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1865
      functionLinenumberEnd: 1881
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          105
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - write_avtab_flavor_to_conf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1870,8'
          Dst:             write_avtab_flavor_to_conf
    - functionName:    write_type_neveraudit_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1671
      functionLinenumberEnd: 1709
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          198
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1678,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1683,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_conf.c:1683,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_conf.c:1684,8'
          Dst:             strs_add
        - Src:             'kernel_to_conf.c:1683,2'
          Dst:             ebitmap_next
        - Src:             'kernel_to_conf.c:1690,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1692,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:1694,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:1699,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:1703,2'
          Dst:             strs_destroy
    - functionName:    write_type_permissive_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1629
      functionLinenumberEnd: 1667
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          198
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1636,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1641,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_conf.c:1641,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_conf.c:1642,8'
          Dst:             strs_add
        - Src:             'kernel_to_conf.c:1641,2'
          Dst:             ebitmap_next
        - Src:             'kernel_to_conf.c:1648,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1650,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:1652,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:1657,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:1661,2'
          Dst:             strs_destroy
    - functionName:    write_type_attribute_sets_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1571
      functionLinenumberEnd: 1625
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          235
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - attrmap_to_str
        - ebitmap_cardinality
        - ebitmap_cpy
        - ebitmap_destroy
        - ebitmap_set_bit
        - strs_create_and_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1579,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1587,7'
          Dst:             ebitmap_cardinality
        - Src:             'kernel_to_conf.c:1589,8'
          Dst:             ebitmap_cpy
        - Src:             'kernel_to_conf.c:1593,8'
          Dst:             ebitmap_set_bit
        - Src:             'kernel_to_conf.c:1595,4'
          Dst:             ebitmap_destroy
        - Src:             'kernel_to_conf.c:1599,11'
          Dst:             attrmap_to_str
        - Src:             'kernel_to_conf.c:1600,3'
          Dst:             ebitmap_destroy
        - Src:             'kernel_to_conf.c:1606,8'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_conf.c:1614,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1615,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:1618,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:1619,2'
          Dst:             strs_destroy
    - functionName:    write_type_bounds_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1448
      functionLinenumberEnd: 1498
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          236
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - hashtab_search
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1456,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1465,10'
          Dst:             strs_add
        - Src:             'kernel_to_conf.c:1473,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1475,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:1477,11'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:1482,10'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:1488,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:1492,2'
          Dst:             strs_destroy
    - functionName:    write_type_alias_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1397
      functionLinenumberEnd: 1444
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          185
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - hashtab_map
        - hashtab_search
        - map_count_type_aliases
        - map_type_aliases_to_strs
        - sepol_printf
        - strs_destroy
        - strs_init
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1405,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_conf.c:1405,7'
          Dst:             map_count_type_aliases
        - Src:             'kernel_to_conf.c:1410,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1415,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_conf.c:1415,7'
          Dst:             map_type_aliases_to_strs
        - Src:             'kernel_to_conf.c:1420,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1423,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:1428,11'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:1434,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:1438,2'
          Dst:             strs_destroy
    - functionName:    write_type_decl_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1329
      functionLinenumberEnd: 1370
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          205
      EdgeCount:       43
      CyclomaticComplexity: 12
      functionsReached:
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1336,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1344,9'
          Dst:             strs_add
        - Src:             'kernel_to_conf.c:1351,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1353,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:1355,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:1360,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:1364,2'
          Dst:             strs_destroy
    - functionName:    write_boolean_decl_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1300
      functionLinenumberEnd: 1325
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          105
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - hashtab_map
        - map_boolean_to_strs
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1304,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1309,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_conf.c:1309,7'
          Dst:             map_boolean_to_strs
        - Src:             'kernel_to_conf.c:1314,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1315,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:1318,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:1319,2'
          Dst:             strs_destroy
    - functionName:    write_role_attributes_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1244
      functionLinenumberEnd: 1285
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          195
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1251,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1259,9'
          Dst:             strs_add
        - Src:             'kernel_to_conf.c:1266,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1268,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:1270,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:1275,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:1279,2'
          Dst:             strs_destroy
    - functionName:    write_type_attributes_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1199
      functionLinenumberEnd: 1240
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          195
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1206,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1214,9'
          Dst:             strs_add
        - Src:             'kernel_to_conf.c:1221,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1223,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:1225,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:1230,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:1234,2'
          Dst:             strs_destroy
    - functionName:    write_polcap_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1158
      functionLinenumberEnd: 1195
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          202
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - sepol_polcap_getname
        - strs_create_and_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1165,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1170,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_conf.c:1170,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_conf.c:1171,10'
          Dst:             sepol_polcap_getname
        - Src:             'kernel_to_conf.c:1178,8'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_conf.c:1170,2'
          Dst:             ebitmap_next
        - Src:             'kernel_to_conf.c:1184,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1185,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:1188,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:1189,2'
          Dst:             strs_destroy
    - functionName:    write_mls_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1127
      functionLinenumberEnd: 1155
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          121
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - write_category_rules_to_conf
        - write_level_rules_to_conf
        - write_sensitivity_rules_to_conf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1134,7'
          Dst:             write_sensitivity_rules_to_conf
        - Src:             'kernel_to_conf.c:1139,7'
          Dst:             write_category_rules_to_conf
        - Src:             'kernel_to_conf.c:1144,7'
          Dst:             write_level_rules_to_conf
    - functionName:    write_default_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 703
      functionLinenumberEnd: 766
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         59
      ICount:          351
      EdgeCount:       78
      CyclomaticComplexity: 21
      functionsReached:
        - write_default_range_to_conf
        - write_default_role_to_conf
        - write_default_type_to_conf
        - write_default_user_to_conf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:713,9'
          Dst:             write_default_user_to_conf
        - Src:             'kernel_to_conf.c:725,9'
          Dst:             write_default_role_to_conf
        - Src:             'kernel_to_conf.c:737,9'
          Dst:             write_default_type_to_conf
        - Src:             'kernel_to_conf.c:753,9'
          Dst:             write_default_range_to_conf
    - functionName:    write_class_and_common_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 604
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         52
      ICount:          343
      EdgeCount:       68
      CyclomaticComplexity: 18
      functionsReached:
        - calloc
        - class_or_common_perms_to_str
        - hashtab_search
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:545,9'
          Dst:             calloc
        - Src:             'kernel_to_conf.c:556,12'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:564,12'
          Dst:             class_or_common_perms_to_str
        - Src:             'kernel_to_conf.c:570,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:582,11'
          Dst:             class_or_common_perms_to_str
        - Src:             'kernel_to_conf.c:586,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:588,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:592,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:595,4'
          Dst:             sepol_printf
    - functionName:    write_sid_decl_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 493
      functionLinenumberEnd: 507
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          97
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - write_sids_to_conf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:497,8'
          Dst:             write_sids_to_conf
        - Src:             'kernel_to_conf.c:500,8'
          Dst:             write_sids_to_conf
    - functionName:    write_class_decl_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 460
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          51
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:457,3'
          Dst:             sepol_printf
    - functionName:    write_handle_unknown_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 448
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          88
      EdgeCount:       14
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_conf.c:430,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_conf.c:445,2'
          Dst:             sepol_printf
    - functionName:    validatetrans_rules_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 423
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          104
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - class_validatetrans_rules_to_strs
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:412,9'
          Dst:             class_validatetrans_rules_to_strs
        - Src:             'kernel_to_conf.c:419,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:420,2'
          Dst:             strs_sort
    - functionName:    constraint_rules_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 377
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          105
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - class_constraint_rules_to_strs
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:387,9'
          Dst:             class_constraint_rules_to_strs
        - Src:             'kernel_to_conf.c:394,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:395,2'
          Dst:             strs_sort
    - functionName:    sepol_kernel_policydb_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3112
      functionLinenumberEnd: 3394
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         129
      ICount:          790
      EdgeCount:       185
      CyclomaticComplexity: 58
      functionsReached:
        - constraint_rules_to_strs
        - sort_ocontexts
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_write_each
        - validatetrans_rules_to_strs
        - write_avtab_to_conf
        - write_boolean_decl_rules_to_conf
        - write_class_and_common_rules_to_conf
        - write_class_decl_rules_to_conf
        - write_cond_nodes_to_conf
        - write_default_rules_to_conf
        - write_filename_trans_rules_to_conf
        - write_genfscon_rules_to_conf
        - write_handle_unknown_to_conf
        - write_mls_rules_to_conf
        - write_polcap_rules_to_conf
        - write_range_trans_rules_to_conf
        - write_role_allow_rules_to_conf
        - write_role_attributes_to_conf
        - write_role_decl_rules_to_conf
        - write_role_transition_rules_to_conf
        - write_selinux_fsuse_rules_to_conf
        - write_selinux_ibendport_rules_to_conf
        - write_selinux_ibpkey_rules_to_conf
        - write_selinux_isid_rules_to_conf
        - write_selinux_netif_rules_to_conf
        - write_selinux_node6_rules_to_conf
        - write_selinux_node_rules_to_conf
        - write_selinux_port_rules_to_conf
        - write_sid_decl_rules_to_conf
        - write_type_alias_rules_to_conf
        - write_type_attribute_sets_to_conf
        - write_type_attributes_to_conf
        - write_type_bounds_rules_to_conf
        - write_type_decl_rules_to_conf
        - write_type_neveraudit_rules_to_conf
        - write_type_permissive_rules_to_conf
        - write_user_decl_rules_to_conf
        - write_xen_devicetree_rules_to_conf
        - write_xen_iomem_rules_to_conf
        - write_xen_ioport_rules_to_conf
        - write_xen_isid_rules_to_conf
        - write_xen_pcidevice_rules_to_conf
        - write_xen_pirq_rules_to_conf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:3119,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:3124,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:3129,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:3134,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:3163,7'
          Dst:             constraint_rules_to_strs
        - Src:             'kernel_to_conf.c:3168,7'
          Dst:             validatetrans_rules_to_strs
        - Src:             'kernel_to_conf.c:3173,7'
          Dst:             write_handle_unknown_to_conf
        - Src:             'kernel_to_conf.c:3178,7'
          Dst:             write_class_decl_rules_to_conf
        - Src:             'kernel_to_conf.c:3183,7'
          Dst:             write_sid_decl_rules_to_conf
        - Src:             'kernel_to_conf.c:3188,7'
          Dst:             write_class_and_common_rules_to_conf
        - Src:             'kernel_to_conf.c:3193,7'
          Dst:             write_default_rules_to_conf
        - Src:             'kernel_to_conf.c:3198,7'
          Dst:             write_mls_rules_to_conf
        - Src:             'kernel_to_conf.c:3203,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:3204,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:3206,7'
          Dst:             write_polcap_rules_to_conf
        - Src:             'kernel_to_conf.c:3211,7'
          Dst:             write_type_attributes_to_conf
        - Src:             'kernel_to_conf.c:3216,7'
          Dst:             write_role_attributes_to_conf
        - Src:             'kernel_to_conf.c:3221,7'
          Dst:             write_boolean_decl_rules_to_conf
        - Src:             'kernel_to_conf.c:3226,7'
          Dst:             write_type_decl_rules_to_conf
        - Src:             'kernel_to_conf.c:3231,7'
          Dst:             write_type_alias_rules_to_conf
        - Src:             'kernel_to_conf.c:3236,7'
          Dst:             write_type_bounds_rules_to_conf
        - Src:             'kernel_to_conf.c:3241,7'
          Dst:             write_type_attribute_sets_to_conf
        - Src:             'kernel_to_conf.c:3246,7'
          Dst:             write_type_permissive_rules_to_conf
        - Src:             'kernel_to_conf.c:3251,7'
          Dst:             write_type_neveraudit_rules_to_conf
        - Src:             'kernel_to_conf.c:3256,7'
          Dst:             write_avtab_to_conf
        - Src:             'kernel_to_conf.c:3260,2'
          Dst:             write_filename_trans_rules_to_conf
        - Src:             'kernel_to_conf.c:3263,8'
          Dst:             write_range_trans_rules_to_conf
        - Src:             'kernel_to_conf.c:3269,7'
          Dst:             write_cond_nodes_to_conf
        - Src:             'kernel_to_conf.c:3274,7'
          Dst:             write_role_decl_rules_to_conf
        - Src:             'kernel_to_conf.c:3279,7'
          Dst:             write_role_transition_rules_to_conf
        - Src:             'kernel_to_conf.c:3284,7'
          Dst:             write_role_allow_rules_to_conf
        - Src:             'kernel_to_conf.c:3289,7'
          Dst:             write_user_decl_rules_to_conf
        - Src:             'kernel_to_conf.c:3294,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:3295,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:3297,7'
          Dst:             sort_ocontexts
        - Src:             'kernel_to_conf.c:3303,8'
          Dst:             write_selinux_isid_rules_to_conf
        - Src:             'kernel_to_conf.c:3308,8'
          Dst:             write_selinux_fsuse_rules_to_conf
        - Src:             'kernel_to_conf.c:3313,8'
          Dst:             write_genfscon_rules_to_conf
        - Src:             'kernel_to_conf.c:3318,8'
          Dst:             write_selinux_port_rules_to_conf
        - Src:             'kernel_to_conf.c:3323,8'
          Dst:             write_selinux_netif_rules_to_conf
        - Src:             'kernel_to_conf.c:3328,8'
          Dst:             write_selinux_node_rules_to_conf
        - Src:             'kernel_to_conf.c:3333,8'
          Dst:             write_selinux_node6_rules_to_conf
        - Src:             'kernel_to_conf.c:3338,8'
          Dst:             write_selinux_ibpkey_rules_to_conf
        - Src:             'kernel_to_conf.c:3343,8'
          Dst:             write_selinux_ibendport_rules_to_conf
        - Src:             'kernel_to_conf.c:3348,8'
          Dst:             write_xen_isid_rules_to_conf
        - Src:             'kernel_to_conf.c:3353,8'
          Dst:             write_genfscon_rules_to_conf
        - Src:             'kernel_to_conf.c:3358,8'
          Dst:             write_xen_pirq_rules_to_conf
        - Src:             'kernel_to_conf.c:3363,8'
          Dst:             write_xen_iomem_rules_to_conf
        - Src:             'kernel_to_conf.c:3368,8'
          Dst:             write_xen_ioport_rules_to_conf
        - Src:             'kernel_to_conf.c:3373,8'
          Dst:             write_xen_pcidevice_rules_to_conf
        - Src:             'kernel_to_conf.c:3378,8'
          Dst:             write_xen_devicetree_rules_to_conf
        - Src:             'kernel_to_conf.c:3385,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:3386,2'
          Dst:             strs_destroy
        - Src:             'kernel_to_conf.c:3387,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:3388,2'
          Dst:             strs_destroy
        - Src:             'kernel_to_conf.c:3389,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:3390,2'
          Dst:             strs_destroy
        - Src:             'kernel_to_conf.c:3391,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:3392,2'
          Dst:             strs_destroy
    - functionName:    find_perm
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1926
      functionLinenumberEnd: 1937
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          42
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    debug_requirements
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2039
      functionLinenumberEnd: 2105
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         63
      ICount:          455
      EdgeCount:       80
      CyclomaticComplexity: 19
      functionsReached:
        - find_perm
        - hashtab_map
        - is_decl_requires_met
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:2049,9'
          Dst:             is_decl_requires_met
        - Src:             'link.c:2063,11'
          Dst:             hashtab_map
        - Src:             'link.c:2063,11'
          Dst:             find_perm
    - functionName:    is_decl_requires_met
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1949
      functionLinenumberEnd: 2036
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         67
      ICount:          436
      EdgeCount:       86
      CyclomaticComplexity: 21
      functionsReached:
        - __assert_fail
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - find_perm
        - hashtab_map
        - hashtab_search
        - is_id_enabled
        - is_perm_existent
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1968,3'
          Dst:             ebitmap_start
        - Src:             'link.c:1968,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'link.c:1971,9'
          Dst:             is_id_enabled
        - Src:             'link.c:1968,3'
          Dst:             ebitmap_next
        - Src:             'link.c:1990,8'
          Dst:             is_id_enabled
        - Src:             'link.c:1997,11'
          Dst:             hashtab_search
        - Src:             'link.c:2005,3'
          Dst:             ebitmap_start
        - Src:             'link.c:2005,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'link.c:2013,10'
          Dst:             hashtab_map
        - Src:             'link.c:2013,10'
          Dst:             find_perm
        - Src:             'link.c:2016,10'
          Dst:             hashtab_map
        - Src:             'link.c:2016,10'
          Dst:             find_perm
        - Src:             'link.c:2018,5'
          Dst:             __assert_fail
        - Src:             'link.c:2022,4'
          Dst:             __assert_fail
        - Src:             'link.c:2023,9'
          Dst:             is_perm_existent
        - Src:             'link.c:2005,3'
          Dst:             ebitmap_next
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    print_missing_requirements
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2110
      functionLinenumberEnd: 2139
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          293
      EdgeCount:       45
      CyclomaticComplexity: 11
      functionsReached:
        - find_perm
        - hashtab_map
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:2125,10'
          Dst:             hashtab_map
        - Src:             'link.c:2125,10'
          Dst:             find_perm
    - functionName:    copy_scope_index
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1632
      functionLinenumberEnd: 1679
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          320
      EdgeCount:       60
      CyclomaticComplexity: 15
      functionsReached:
        - __assert_fail
        - calloc
        - ebitmap_convert
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_set_bit
        - ebitmap_start
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1643,3'
          Dst:             ebitmap_start
        - Src:             'link.c:1643,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'link.c:1644,4'
          Dst:             __assert_fail
        - Src:             'link.c:1645,8'
          Dst:             ebitmap_set_bit
        - Src:             'link.c:1643,3'
          Dst:             ebitmap_next
        - Src:             'link.c:1660,31'
          Dst:             calloc
        - Src:             'link.c:1670,7'
          Dst:             ebitmap_convert
    - functionName:    ebitmap_convert
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 980
      functionLinenumberEnd: 990
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          103
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_set_bit
        - ebitmap_start
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:983,2'
          Dst:             ebitmap_start
        - Src:             'link.c:983,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'link.c:984,3'
          Dst:             __assert_fail
        - Src:             'link.c:985,7'
          Dst:             ebitmap_set_bit
        - Src:             'link.c:983,2'
          Dst:             ebitmap_next
    - functionName:    class_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          441
      EdgeCount:       74
      CyclomaticComplexity: 19
      functionsReached:
        - calloc
        - class_copy_default_new_object
        - hashtab_insert
        - hashtab_map
        - hashtab_search
        - permission_copy_callback
        - strdup
        - symtab_destroy
        - symtab_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:257,14'
          Dst:             hashtab_search
        - Src:             'link.c:265,7'
          Dst:             hashtab_search
        - Src:             'link.c:290,26'
          Dst:             calloc
        - Src:             'link.c:296,8'
          Dst:             symtab_init
        - Src:             'link.c:301,13'
          Dst:             strdup
        - Src:             'link.c:304,5'
          Dst:             symtab_destroy
        - Src:             'link.c:308,10'
          Dst:             hashtab_insert
        - Src:             'link.c:314,5'
          Dst:             symtab_destroy
        - Src:             'link.c:330,8'
          Dst:             class_copy_default_new_object
        - Src:             'link.c:335,6'
          Dst:             hashtab_map
        - Src:             'link.c:335,6'
          Dst:             permission_copy_callback
    - functionName:    role_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 350
      functionLinenumberEnd: 433
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         69
      ICount:          500
      EdgeCount:       90
      CyclomaticComplexity: 23
      functionsReached:
        - hashtab_insert
        - hashtab_search
        - role_datum_destroy
        - role_datum_init
        - strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:358,14'
          Dst:             hashtab_search
        - Src:             'link.c:381,17'
          Dst:             strdup
        - Src:             'link.c:389,3'
          Dst:             role_datum_init
        - Src:             'link.c:396,9'
          Dst:             hashtab_insert
        - Src:             'link.c:411,3'
          Dst:             role_datum_init
        - Src:             'link.c:414,17'
          Dst:             strdup
        - Src:             'link.c:417,7'
          Dst:             hashtab_insert
        - Src:             'link.c:429,2'
          Dst:             role_datum_destroy
    - functionName:    type_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 531
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          562
      EdgeCount:       101
      CyclomaticComplexity: 26
      functionsReached:
        - calloc
        - hashtab_insert
        - hashtab_search
        - strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:453,14'
          Dst:             hashtab_search
        - Src:             'link.c:478,17'
          Dst:             strdup
        - Src:             'link.c:483,25'
          Dst:             calloc
        - Src:             'link.c:494,9'
          Dst:             hashtab_insert
        - Src:             'link.c:506,19'
          Dst:             calloc
        - Src:             'link.c:513,17'
          Dst:             strdup
        - Src:             'link.c:516,7'
          Dst:             hashtab_insert
    - functionName:    user_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 598
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          329
      EdgeCount:       55
      CyclomaticComplexity: 15
      functionsReached:
        - hashtab_insert
        - hashtab_search
        - strdup
        - user_datum_destroy
        - user_datum_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:543,14'
          Dst:             hashtab_search
        - Src:             'link.c:548,17'
          Dst:             strdup
        - Src:             'link.c:556,3'
          Dst:             user_datum_init
        - Src:             'link.c:562,9'
          Dst:             hashtab_insert
        - Src:             'link.c:577,3'
          Dst:             user_datum_init
        - Src:             'link.c:579,17'
          Dst:             strdup
        - Src:             'link.c:582,7'
          Dst:             hashtab_insert
        - Src:             'link.c:594,2'
          Dst:             user_datum_destroy
    - functionName:    bool_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 602
      functionLinenumberEnd: 667
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          386
      EdgeCount:       62
      CyclomaticComplexity: 16
      functionsReached:
        - cond_destroy_bool
        - hashtab_insert
        - hashtab_search
        - strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:611,14'
          Dst:             hashtab_search
        - Src:             'link.c:616,17'
          Dst:             strdup
        - Src:             'link.c:626,9'
          Dst:             hashtab_insert
        - Src:             'link.c:651,10'
          Dst:             hashtab_search
        - Src:             'link.c:665,2'
          Dst:             cond_destroy_bool
    - functionName:    sens_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 671
      functionLinenumberEnd: 709
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          278
      EdgeCount:       46
      CyclomaticComplexity: 12
      functionsReached:
        - hashtab_search
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:679,15'
          Dst:             hashtab_search
        - Src:             'link.c:682,7'
          Dst:             hashtab_search
    - functionName:    cat_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 713
      functionLinenumberEnd: 750
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          276
      EdgeCount:       46
      CyclomaticComplexity: 12
      functionsReached:
        - hashtab_search
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:721,13'
          Dst:             hashtab_search
        - Src:             'link.c:723,11'
          Dst:             hashtab_search
    - functionName:    class_copy_default_new_object
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          413
      EdgeCount:       88
      CyclomaticComplexity: 22
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    permission_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          546
      EdgeCount:       90
      CyclomaticComplexity: 22
      functionsReached:
        - calloc
        - hashtab_insert
        - hashtab_search
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:138,14'
          Dst:             hashtab_search
        - Src:             'link.c:141,7'
          Dst:             hashtab_search
        - Src:             'link.c:150,13'
          Dst:             strdup
        - Src:             'link.c:157,25'
          Dst:             calloc
        - Src:             'link.c:163,10'
          Dst:             hashtab_insert
        - Src:             'link.c:189,22'
          Dst:             calloc
    - functionName:    copy_range_trans_list
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1481
      functionLinenumberEnd: 1515
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          176
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - ebitmap_convert
        - mls_range_convert
        - range_trans_rule_init
        - range_trans_rule_list_destroy
        - type_set_convert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1490,3'
          Dst:             range_trans_rule_init
        - Src:             'link.c:1495,7'
          Dst:             type_set_convert
        - Src:             'link.c:1499,7'
          Dst:             type_set_convert
        - Src:             'link.c:1503,7'
          Dst:             ebitmap_convert
        - Src:             'link.c:1506,7'
          Dst:             mls_range_convert
        - Src:             'link.c:1513,2'
          Dst:             range_trans_rule_list_destroy
    - functionName:    type_set_convert
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 994
      functionLinenumberEnd: 1006
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_convert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:995,6'
          Dst:             ebitmap_convert
        - Src:             'link.c:998,6'
          Dst:             ebitmap_convert
    - functionName:    mls_range_convert
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1089
      functionLinenumberEnd: 1098
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          67
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mls_level_convert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1091,8'
          Dst:             mls_level_convert
        - Src:             'link.c:1094,8'
          Dst:             mls_level_convert
    - functionName:    mls_level_convert
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1053
      functionLinenumberEnd: 1085
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          247
      EdgeCount:       37
      CyclomaticComplexity: 8
      functionsReached:
        - __assert_fail
        - mls_semantic_cat_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1063,2'
          Dst:             __assert_fail
        - Src:             'link.c:1073,3'
          Dst:             mls_semantic_cat_init
        - Src:             'link.c:1078,3'
          Dst:             __assert_fail
        - Src:             'link.c:1080,3'
          Dst:             __assert_fail
    - functionName:    copy_filename_trans_list
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1437
      functionLinenumberEnd: 1476
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          235
      EdgeCount:       44
      CyclomaticComplexity: 12
      functionsReached:
        - filename_trans_rule_init
        - strdup
        - type_set_or_convert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1450,3'
          Dst:             filename_trans_rule_init
        - Src:             'link.c:1458,20'
          Dst:             strdup
        - Src:             'link.c:1462,7'
          Dst:             type_set_or_convert
        - Src:             'link.c:1463,7'
          Dst:             type_set_or_convert
    - functionName:    type_set_or_convert
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1013
      functionLinenumberEnd: 1029
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - type_set_convert
        - type_set_destroy
        - type_set_init
        - type_set_or_eq
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1016,2'
          Dst:             type_set_init
        - Src:             'link.c:1017,6'
          Dst:             type_set_convert
        - Src:             'link.c:1020,6'
          Dst:             type_set_or_eq
        - Src:             'link.c:1023,2'
          Dst:             type_set_destroy
        - Src:             'link.c:1027,2'
          Dst:             type_set_destroy
    - functionName:    copy_cond_list
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1519
      functionLinenumberEnd: 1582
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          354
      EdgeCount:       67
      CyclomaticComplexity: 16
      functionsReached:
        - __assert_fail
        - cond_copy_expr
        - cond_node_destroy
        - copy_avrule_list
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1536,20'
          Dst:             cond_copy_expr
        - Src:             'link.c:1545,4'
          Dst:             __assert_fail
        - Src:             'link.c:1554,4'
          Dst:             __assert_fail
        - Src:             'link.c:1559,7'
          Dst:             copy_avrule_list
        - Src:             'link.c:1561,10'
          Dst:             copy_avrule_list
        - Src:             'link.c:1578,2'
          Dst:             cond_node_destroy
    - functionName:    copy_avrule_list
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1245
      functionLinenumberEnd: 1343
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          447
      EdgeCount:       84
      CyclomaticComplexity: 21
      functionsReached:
        - __assert_fail
        - avrule_destroy
        - avrule_init
        - calloc
        - class_perm_node_init
        - strdup
        - type_set_convert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1260,3'
          Dst:             avrule_init
        - Src:             'link.c:1264,7'
          Dst:             type_set_convert
        - Src:             'link.c:1266,10'
          Dst:             type_set_convert
        - Src:             'link.c:1277,4'
          Dst:             class_perm_node_init
        - Src:             'link.c:1281,4'
          Dst:             __assert_fail
        - Src:             'link.c:1304,5'
          Dst:             __assert_fail
        - Src:             'link.c:1312,23'
          Dst:             calloc
        - Src:             'link.c:1322,32'
          Dst:             strdup
        - Src:             'link.c:1340,2'
          Dst:             avrule_destroy
    - functionName:    copy_role_allow_list
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1394
      functionLinenumberEnd: 1431
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          187
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - role_allow_rule_init
        - role_allow_rule_list_destroy
        - role_set_or_convert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1409,3'
          Dst:             role_allow_rule_init
        - Src:             'link.c:1411,7'
          Dst:             role_set_or_convert
        - Src:             'link.c:1413,10'
          Dst:             role_set_or_convert
        - Src:             'link.c:1429,2'
          Dst:             role_allow_rule_list_destroy
    - functionName:    role_set_or_convert
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1033
      functionLinenumberEnd: 1049
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          117
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - ebitmap_convert
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_union
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1036,2'
          Dst:             ebitmap_init
        - Src:             'link.c:1037,6'
          Dst:             ebitmap_convert
        - Src:             'link.c:1039,6'
          Dst:             ebitmap_union
        - Src:             'link.c:1043,2'
          Dst:             ebitmap_destroy
        - Src:             'link.c:1047,2'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    copy_role_trans_list
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1348
      functionLinenumberEnd: 1389
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          216
      EdgeCount:       44
      CyclomaticComplexity: 12
      functionsReached:
        - ebitmap_convert
        - role_set_or_convert
        - role_trans_rule_init
        - role_trans_rule_list_destroy
        - type_set_or_convert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1362,3'
          Dst:             role_trans_rule_init
        - Src:             'link.c:1364,7'
          Dst:             role_set_or_convert
        - Src:             'link.c:1366,10'
          Dst:             type_set_or_convert
        - Src:             'link.c:1371,7'
          Dst:             ebitmap_convert
        - Src:             'link.c:1387,2'
          Dst:             role_trans_rule_list_destroy
    - functionName:    copy_avrule_decl
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1683
      functionLinenumberEnd: 1724
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          168
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached:
        - copy_avrule_list
        - copy_cond_list
        - copy_filename_trans_list
        - copy_identifiers
        - copy_range_trans_list
        - copy_role_allow_list
        - copy_role_trans_list
        - copy_scope_index
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1687,6'
          Dst:             copy_avrule_list
        - Src:             'link.c:1689,9'
          Dst:             copy_role_trans_list
        - Src:             'link.c:1692,9'
          Dst:             copy_role_allow_list
        - Src:             'link.c:1695,9'
          Dst:             copy_cond_list
        - Src:             'link.c:1700,6'
          Dst:             copy_filename_trans_list
        - Src:             'link.c:1705,6'
          Dst:             copy_range_trans_list
        - Src:             'link.c:1710,8'
          Dst:             copy_identifiers
        - Src:             'link.c:1716,6'
          Dst:             copy_scope_index
        - Src:             'link.c:1718,6'
          Dst:             copy_scope_index
    - functionName:    copy_identifiers
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1588
      functionLinenumberEnd: 1628
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          185
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - alias_copy_callback
        - hashtab_map
        - role_bounds_copy_callback
        - type_bounds_copy_callback
        - user_bounds_copy_callback
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1595,8'
          Dst:             hashtab_map
        - Src:             'link.c:1603,6'
          Dst:             hashtab_map
        - Src:             'link.c:1603,6'
          Dst:             type_bounds_copy_callback
        - Src:             'link.c:1607,6'
          Dst:             hashtab_map
        - Src:             'link.c:1607,6'
          Dst:             alias_copy_callback
        - Src:             'link.c:1611,6'
          Dst:             hashtab_map
        - Src:             'link.c:1611,6'
          Dst:             role_bounds_copy_callback
        - Src:             'link.c:1615,6'
          Dst:             hashtab_map
        - Src:             'link.c:1615,6'
          Dst:             user_bounds_copy_callback
        - Src:             'link.c:1622,7'
          Dst:             hashtab_map
    - functionName:    type_bounds_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 764
      functionLinenumberEnd: 795
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          228
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - hashtab_search
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:781,9'
          Dst:             hashtab_search
    - functionName:    alias_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 875
      functionLinenumberEnd: 975
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         85
      ICount:          645
      EdgeCount:       108
      CyclomaticComplexity: 25
      functionsReached:
        - __assert_fail
        - calloc
        - hashtab_insert
        - hashtab_search
        - strcmp
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:900,16'
          Dst:             hashtab_search
        - Src:             'link.c:907,7'
          Dst:             strcmp
        - Src:             'link.c:915,14'
          Dst:             hashtab_search
        - Src:             'link.c:921,25'
          Dst:             calloc
        - Src:             'link.c:929,17'
          Dst:             strdup
        - Src:             'link.c:932,7'
          Dst:             hashtab_insert
        - Src:             'link.c:945,4'
          Dst:             __assert_fail
        - Src:             'link.c:946,4'
          Dst:             __assert_fail
        - Src:             'link.c:948,4'
          Dst:             __assert_fail
    - functionName:    role_bounds_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 799
      functionLinenumberEnd: 830
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          228
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - hashtab_search
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:816,9'
          Dst:             hashtab_search
    - functionName:    user_bounds_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 834
      functionLinenumberEnd: 865
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          228
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - hashtab_search
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:851,9'
          Dst:             hashtab_search
    - functionName:    role_fix_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1102
      functionLinenumberEnd: 1150
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          281
      EdgeCount:       55
      CyclomaticComplexity: 14
      functionsReached:
        - __assert_fail
        - ebitmap_convert
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_union
        - hashtab_search
        - type_set_or_convert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1116,14'
          Dst:             hashtab_search
        - Src:             'link.c:1117,2'
          Dst:             __assert_fail
        - Src:             'link.c:1123,2'
          Dst:             ebitmap_init
        - Src:             'link.c:1124,6'
          Dst:             ebitmap_convert
        - Src:             'link.c:1126,6'
          Dst:             ebitmap_union
        - Src:             'link.c:1129,6'
          Dst:             type_set_or_convert
        - Src:             'link.c:1132,2'
          Dst:             ebitmap_destroy
        - Src:             'link.c:1135,3'
          Dst:             ebitmap_init
        - Src:             'link.c:1136,7'
          Dst:             ebitmap_convert
        - Src:             'link.c:1138,7'
          Dst:             ebitmap_union
        - Src:             'link.c:1141,3'
          Dst:             ebitmap_destroy
        - Src:             'link.c:1148,2'
          Dst:             ebitmap_destroy
    - functionName:    type_fix_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1154
      functionLinenumberEnd: 1194
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          251
      EdgeCount:       49
      CyclomaticComplexity: 12
      functionsReached:
        - __assert_fail
        - ebitmap_convert
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_union
        - hashtab_search
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1174,13'
          Dst:             hashtab_search
        - Src:             'link.c:1175,2'
          Dst:             __assert_fail
        - Src:             'link.c:1181,2'
          Dst:             ebitmap_init
        - Src:             'link.c:1182,6'
          Dst:             ebitmap_convert
        - Src:             'link.c:1184,6'
          Dst:             ebitmap_union
        - Src:             'link.c:1187,2'
          Dst:             ebitmap_destroy
        - Src:             'link.c:1192,2'
          Dst:             ebitmap_destroy
    - functionName:    user_fix_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1198
      functionLinenumberEnd: 1234
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          243
      EdgeCount:       45
      CyclomaticComplexity: 11
      functionsReached:
        - __assert_fail
        - hashtab_search
        - mls_level_convert
        - mls_range_convert
        - role_set_or_convert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1212,13'
          Dst:             hashtab_search
        - Src:             'link.c:1213,2'
          Dst:             __assert_fail
        - Src:             'link.c:1219,6'
          Dst:             role_set_or_convert
        - Src:             'link.c:1223,6'
          Dst:             mls_range_convert
        - Src:             'link.c:1226,6'
          Dst:             mls_level_convert
    - functionName:    scope_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1792
      functionLinenumberEnd: 1877
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         71
      ICount:          467
      EdgeCount:       93
      CyclomaticComplexity: 24
      functionsReached:
        - add_i_to_a
        - calloc
        - hashtab_insert
        - hashtab_search
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1804,15'
          Dst:             hashtab_search
        - Src:             'link.c:1807,17'
          Dst:             strdup
        - Src:             'link.c:1812,26'
          Dst:             calloc
        - Src:             'link.c:1816,9'
          Dst:             hashtab_insert
        - Src:             'link.c:1835,8'
          Dst:             add_i_to_a
        - Src:             'link.c:1847,8'
          Dst:             add_i_to_a
        - Src:             'link.c:1865,8'
          Dst:             add_i_to_a
    - functionName:    copy_avrule_block
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1728
      functionLinenumberEnd: 1788
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          356
      EdgeCount:       60
      CyclomaticComplexity: 15
      functionsReached:
        - avrule_block_create
        - avrule_block_list_destroy
        - avrule_decl_create
        - avrule_decl_destroy
        - copy_avrule_decl
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1729,30'
          Dst:             avrule_block_create
        - Src:             'link.c:1743,7'
          Dst:             avrule_decl_create
        - Src:             'link.c:1751,28'
          Dst:             strdup
        - Src:             'link.c:1754,5'
          Dst:             avrule_decl_destroy
        - Src:             'link.c:1766,9'
          Dst:             copy_avrule_decl
        - Src:             'link.c:1768,4'
          Dst:             avrule_decl_destroy
        - Src:             'link.c:1786,2'
          Dst:             avrule_block_list_destroy
    - functionName:    cond_normalize
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2244
      functionLinenumberEnd: 2258
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          83
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - cond_normalize_expr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:2251,9'
          Dst:             cond_normalize_expr
    - functionName:    policy_module_destroy
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          103
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    enable_avrules
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2157
      functionLinenumberEnd: 2236
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         77
      ICount:          453
      EdgeCount:       99
      CyclomaticComplexity: 24
      functionsReached:
        - debug_requirements
        - is_decl_requires_met
        - print_missing_requirements
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:2196,9'
          Dst:             is_decl_requires_met
        - Src:             'link.c:2205,6'
          Dst:             print_missing_requirements
        - Src:             'link.c:2234,3'
          Dst:             debug_requirements
    - functionName:    copy_module
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1883
      functionLinenumberEnd: 1914
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          126
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - copy_avrule_block
        - copy_identifiers
        - hashtab_map
        - scope_copy_callback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1890,8'
          Dst:             copy_identifiers
        - Src:             'link.c:1897,9'
          Dst:             copy_avrule_block
        - Src:             'link.c:1906,7'
          Dst:             hashtab_map
        - Src:             'link.c:1906,7'
          Dst:             scope_copy_callback
    - functionName:    prepare_base
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2318
      functionLinenumberEnd: 2373
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         53
      ICount:          373
      EdgeCount:       67
      CyclomaticComplexity: 16
      functionsReached:
        - __assert_fail
        - calloc
        - cond_normalize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:2320,2'
          Dst:             __assert_fail
        - Src:             'link.c:2342,7'
          Dst:             calloc
        - Src:             'link.c:2348,28'
          Dst:             calloc
        - Src:             'link.c:2367,6'
          Dst:             cond_normalize
    - functionName:    prepare_module
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2262
      functionLinenumberEnd: 2315
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         69
      ICount:          444
      EdgeCount:       88
      CyclomaticComplexity: 21
      functionsReached:
        - calloc
        - cond_normalize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:2271,21'
          Dst:             calloc
        - Src:             'link.c:2281,7'
          Dst:             calloc
        - Src:             'link.c:2286,7'
          Dst:             calloc
        - Src:             'link.c:2301,28'
          Dst:             calloc
        - Src:             'link.c:2308,6'
          Dst:             cond_normalize
    - functionName:    link_modules
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2382
      functionLinenumberEnd: 2480
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         120
      ICount:          780
      EdgeCount:       155
      CyclomaticComplexity: 37
      functionsReached:
        - calloc
        - copy_module
        - enable_avrules
        - policy_module_destroy
        - policydb_index_classes
        - policydb_index_others
        - prepare_base
        - prepare_module
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:2402,28'
          Dst:             calloc
        - Src:             'link.c:2430,28'
          Dst:             calloc
        - Src:             'link.c:2437,7'
          Dst:             prepare_module
        - Src:             'link.c:2442,6'
          Dst:             prepare_base
        - Src:             'link.c:2449,9'
          Dst:             copy_module
        - Src:             'link.c:2457,6'
          Dst:             policydb_index_classes
        - Src:             'link.c:2461,6'
          Dst:             policydb_index_others
        - Src:             'link.c:2466,6'
          Dst:             enable_avrules
        - Src:             'link.c:2475,3'
          Dst:             policy_module_destroy
    - functionName:    mls_range_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:142,2'
          Dst:             mls_level_init
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:143,2'
          Dst:             mls_level_init
    - functionName:    mls_level_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_context_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_range_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:42,2'
          Dst:             mls_range_init
    - functionName:    mls_range_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:148,2'
          Dst:             mls_level_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:149,2'
          Dst:             mls_level_destroy
    - functionName:    mls_level_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - mls_level_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:98,2'
          Dst:             ebitmap_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:99,2'
          Dst:             mls_level_init
    - functionName:    mls_context_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_context_init
        - mls_range_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:112,2'
          Dst:             mls_range_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:113,2'
          Dst:             mls_context_init
    - functionName:    mls_range_glblub
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          176
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - ebitmap_and
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:65,6'
          Dst:             ebitmap_and
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:69,6'
          Dst:             ebitmap_and
    - functionName:    mls_range_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - mls_level_cpy
        - mls_level_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:125,6'
          Dst:             mls_level_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:128,6'
          Dst:             mls_level_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:134,2'
          Dst:             mls_level_destroy
    - functionName:    mls_level_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_cpy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:81,6'
          Dst:             ebitmap_cpy
    - functionName:    mls_semantic_range_cpy
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 805
      functionLinenumberEnd: 815
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mls_semantic_level_cpy
        - mls_semantic_level_destroy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:806,6'
          Dst:             mls_semantic_level_cpy
        - Src:             'mls.c:809,6'
          Dst:             mls_semantic_level_cpy
        - Src:             'mls.c:810,3'
          Dst:             mls_semantic_level_destroy
    - functionName:    mls_semantic_level_cpy
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 759
      functionLinenumberEnd: 789
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          95
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - mls_semantic_cat_init
        - mls_semantic_level_destroy
        - mls_semantic_level_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:763,2'
          Dst:             mls_semantic_level_init
        - Src:             'mls.c:772,3'
          Dst:             mls_semantic_cat_init
        - Src:             'mls.c:787,2'
          Dst:             mls_semantic_level_destroy
    - functionName:    mls_semantic_level_destroy
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 742
      functionLinenumberEnd: 755
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mls_semantic_cat_destroy
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:752,3'
          Dst:             mls_semantic_cat_destroy
    - functionName:    mls_semantic_cat_destroy
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 731
      functionLinenumberEnd: 733
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_semantic_level_init
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 737
      functionLinenumberEnd: 739
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_semantic_cat_init
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 726
      functionLinenumberEnd: 728
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_semantic_range_destroy
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 798
      functionLinenumberEnd: 801
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_semantic_level_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:799,2'
          Dst:             mls_semantic_level_destroy
        - Src:             'mls.c:800,2'
          Dst:             mls_semantic_level_destroy
    - functionName:    mls_semantic_range_init
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 792
      functionLinenumberEnd: 795
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_semantic_level_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:793,2'
          Dst:             mls_semantic_level_init
        - Src:             'mls.c:794,2'
          Dst:             mls_semantic_level_init
    - functionName:    sepol_mls_check
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 708
      functionLinenumberEnd: 723
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          99
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - context_destroy
        - context_init
        - mls_from_string
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:717,2'
          Dst:             context_init
        - Src:             'mls.c:719,8'
          Dst:             mls_from_string
        - Src:             'mls.c:720,2'
          Dst:             context_destroy
    - functionName:    context_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_from_string
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          205
      EdgeCount:       42
      CyclomaticComplexity: 10
      functionsReached:
        - mls_context_to_sid
        - strdup
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:83,14'
          Dst:             strdup
        - Src:             'mls.c:88,6'
          Dst:             mls_context_to_sid
    - functionName:    context_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_context_destroy
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:135,2'
          Dst:             mls_context_destroy
    - functionName:    mls_context_to_sid
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 448
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         82
      ICount:          471
      EdgeCount:       110
      CyclomaticComplexity: 30
      functionsReached:
        - ebitmap_set_bit
        - hashtab_search
        - mls_level_cpy
        - strchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:357,25'
          Dst:             hashtab_search
        - Src:             'mls.c:376,19'
          Dst:             strchr
        - Src:             'mls.c:382,25'
          Dst:             hashtab_search
        - Src:             'mls.c:389,9'
          Dst:             ebitmap_set_bit
        - Src:             'mls.c:399,10'
          Dst:             hashtab_search
        - Src:             'mls.c:412,11'
          Dst:             ebitmap_set_bit
        - Src:             'mls.c:438,7'
          Dst:             mls_level_cpy
    - functionName:    sepol_mls_contains
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 670
      functionLinenumberEnd: 704
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          236
      EdgeCount:       43
      CyclomaticComplexity: 11
      functionsReached:
        - context_destroy
        - context_init
        - mls_from_string
        - mls_level_dom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:679,2'
          Dst:             context_init
        - Src:             'mls.c:680,2'
          Dst:             context_init
        - Src:             'mls.c:682,6'
          Dst:             mls_from_string
        - Src:             'mls.c:685,6'
          Dst:             mls_from_string
        - Src:             'mls.c:688,14'
          Dst:             mls_level_dom
        - Src:             'mls.c:688,14'
          Dst:             mls_level_dom
        - Src:             'mls.c:689,2'
          Dst:             context_destroy
        - Src:             'mls.c:690,2'
          Dst:             context_destroy
        - Src:             'mls.c:696,2'
          Dst:             context_destroy
        - Src:             'mls.c:697,2'
          Dst:             context_destroy
    - functionName:    mls_level_dom
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_contains
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:109,36'
          Dst:             ebitmap_contains
    - functionName:    mls_scopy_context
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          73
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_cpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:481,8'
          Dst:             ebitmap_cpy
    - functionName:    mls_copy_context
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 467
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          77
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_cpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:461,8'
          Dst:             ebitmap_cpy
    - functionName:    mls_context_glblub
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_range_glblub
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:97,9'
          Dst:             mls_range_glblub
    - functionName:    mls_context_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_range_cpy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:49,6'
          Dst:             mls_range_cpy
    - functionName:    mls_context_cpy_high
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          92
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_cpy
        - ebitmap_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:83,7'
          Dst:             ebitmap_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:88,7'
          Dst:             ebitmap_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:90,3'
          Dst:             ebitmap_destroy
    - functionName:    mls_context_cpy_low
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          92
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_cpy
        - ebitmap_destroy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:63,7'
          Dst:             ebitmap_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:68,7'
          Dst:             ebitmap_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:70,3'
          Dst:             ebitmap_destroy
    - functionName:    mls_range_set
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 506
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          75
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_cpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:500,8'
          Dst:             ebitmap_cpy
    - functionName:    mls_compute_sid
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 608
      functionLinenumberEnd: 665
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          232
      EdgeCount:       35
      CyclomaticComplexity: 6
      functionsReached:
        - hashtab_search
        - mls_context_cpy
        - mls_context_cpy_high
        - mls_context_cpy_low
        - mls_context_glblub
        - mls_copy_context
        - mls_range_set
        - mls_scopy_context
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mls.c:617,2'
          Branch Sides:    []
        - Branch String:   'mls.c:633,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mls.c:623,7'
          Dst:             hashtab_search
        - Src:             'mls.c:625,11'
          Dst:             mls_range_set
        - Src:             'mls.c:635,11'
          Dst:             mls_context_cpy_low
        - Src:             'mls.c:637,11'
          Dst:             mls_context_cpy_high
        - Src:             'mls.c:639,11'
          Dst:             mls_context_cpy
        - Src:             'mls.c:641,11'
          Dst:             mls_context_cpy_low
        - Src:             'mls.c:643,11'
          Dst:             mls_context_cpy_high
        - Src:             'mls.c:645,11'
          Dst:             mls_context_cpy
        - Src:             'mls.c:647,11'
          Dst:             mls_context_glblub
        - Src:             'mls.c:654,11'
          Dst:             mls_copy_context
        - Src:             'mls.c:657,11'
          Dst:             mls_scopy_context
        - Src:             'mls.c:660,10'
          Dst:             mls_context_cpy_low
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_convert_context
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 554
      functionLinenumberEnd: 601
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          222
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_set_bit
        - ebitmap_start
        - hashtab_search
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:566,25'
          Dst:             hashtab_search
        - Src:             'mls.c:579,3'
          Dst:             ebitmap_init
        - Src:             'mls.c:580,3'
          Dst:             ebitmap_start
        - Src:             'mls.c:580,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'mls.c:584,24'
          Dst:             hashtab_search
        - Src:             'mls.c:591,9'
          Dst:             ebitmap_set_bit
        - Src:             'mls.c:580,3'
          Dst:             ebitmap_next
        - Src:             'mls.c:596,3'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_setup_user_range
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 511
      functionLinenumberEnd: 545
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          189
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - mls_level_dom
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:522,7'
          Dst:             mls_level_dom
        - Src:             'mls.c:522,7'
          Dst:             mls_level_dom
        - Src:             'mls.c:524,14'
          Dst:             mls_level_dom
        - Src:             'mls.c:524,14'
          Dst:             mls_level_dom
        - Src:             'mls.c:526,14'
          Dst:             mls_level_dom
        - Src:             'mls.c:526,14'
          Dst:             mls_level_dom
        - Src:             'mls.c:536,7'
          Dst:             mls_level_dom
        - Src:             'mls.c:538,14'
          Dst:             mls_level_dom
    - functionName:    mls_context_isvalid
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         49
      ICount:          331
      EdgeCount:       67
      CyclomaticComplexity: 20
      functionsReached:
        - ebitmap_get_bit
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - hashtab_search
        - mls_level_dom
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:275,7'
          Dst:             mls_level_dom
        - Src:             'mls.c:288,32'
          Dst:             hashtab_search
        - Src:             'mls.c:292,3'
          Dst:             ebitmap_start
        - Src:             'mls.c:292,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'mls.c:295,9'
          Dst:             ebitmap_get_bit
        - Src:             'mls.c:292,3'
          Dst:             ebitmap_next
        - Src:             'mls.c:313,20'
          Dst:             mls_level_dom
        - Src:             'mls.c:313,20'
          Dst:             mls_level_dom
    - functionName:    mls_level_eq
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_cmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:104,36'
          Dst:             ebitmap_cmp
    - functionName:    mls_sid_to_context
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          357
      EdgeCount:       57
      CyclomaticComplexity: 15
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - mls_level_eq
        - strcpy
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:186,3'
          Dst:             strcpy
        - Src:             'mls.c:190,7'
          Dst:             strlen
        - Src:             'mls.c:194,3'
          Dst:             ebitmap_start
        - Src:             'mls.c:195,8'
          Dst:             ebitmap_node_get_bit
        - Src:             'mls.c:206,5'
          Dst:             strcpy
        - Src:             'mls.c:209,9'
          Dst:             strlen
        - Src:             'mls.c:218,6'
          Dst:             strcpy
        - Src:             'mls.c:222,10'
          Dst:             strlen
        - Src:             'mls.c:194,3'
          Dst:             ebitmap_next
        - Src:             'mls.c:235,4'
          Dst:             strcpy
        - Src:             'mls.c:236,17'
          Dst:             strlen
        - Src:             'mls.c:240,8'
          Dst:             mls_level_eq
    - functionName:    strcpy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_compute_context_len
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          255
      EdgeCount:       45
      CyclomaticComplexity: 12
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - mls_level_eq
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:123,7'
          Dst:             strlen
        - Src:             'mls.c:127,3'
          Dst:             ebitmap_start
        - Src:             'mls.c:128,8'
          Dst:             ebitmap_node_get_bit
        - Src:             'mls.c:135,9'
          Dst:             strlen
        - Src:             'mls.c:140,10'
          Dst:             strlen
        - Src:             'mls.c:127,3'
          Dst:             ebitmap_next
        - Src:             'mls.c:148,11'
          Dst:             strlen
        - Src:             'mls.c:151,8'
          Dst:             mls_level_eq
    - functionName:    mls_to_string
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          135
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - mls_compute_context_len
        - mls_sid_to_context
        - strcpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:50,12'
          Dst:             mls_compute_context_len
        - Src:             'mls.c:61,2'
          Dst:             mls_sid_to_context
        - Src:             'mls.c:63,2'
          Dst:             strcpy
    - functionName:    type_vec_contains
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          75
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_type_attr
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_cond_rule_redundant
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          198
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - process_avtab_datum
        - type_vec_contains
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:289,8'
          Dst:             type_vec_contains
        - Src:             'optimize.c:291,8'
          Dst:             type_vec_contains
        - Src:             'optimize.c:294,7'
          Dst:             process_avtab_datum
    - functionName:    process_avtab_datum
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          257
      EdgeCount:       46
      CyclomaticComplexity: 15
      functionsReached:
        - process_xperms
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:182,12'
          Dst:             process_xperms
        - Src:             'optimize.c:191,12'
          Dst:             process_xperms
        - Src:             'optimize.c:196,11'
          Dst:             process_xperms
    - functionName:    process_xperms
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_avrule_with_attr
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - is_type_attr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:258,9'
          Dst:             is_type_attr
        - Src:             'optimize.c:258,35'
          Dst:             is_type_attr
    - functionName:    optimize_cond_av_list
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          153
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - is_avrule_redundant
        - is_avrule_with_attr
        - is_cond_rule_redundant
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:341,7'
          Dst:             is_avrule_with_attr
        - Src:             'optimize.c:365,7'
          Dst:             is_avrule_redundant
        - Src:             'optimize.c:366,7'
          Dst:             is_cond_rule_redundant
    - functionName:    is_avrule_redundant
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          204
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - avtab_search
        - process_avtab_datum
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:237,9'
          Dst:             avtab_search
        - Src:             'optimize.c:241,8'
          Dst:             process_avtab_datum
    - functionName:    type_vec_destroy
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    type_vec_append
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          78
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - reallocarray
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:63,25'
          Dst:             reallocarray
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    type_vec_init
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:48,13'
          Dst:             calloc
    - functionName:    destroy_type_map
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - type_vec_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:147,3'
          Dst:             type_vec_destroy
    - functionName:    optimize_cond_avtab
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 443
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          225
      EdgeCount:       45
      CyclomaticComplexity: 12
      functionsReached:
        - cond_node_destroy
        - optimize_cond_av_list
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:389,3'
          Dst:             optimize_cond_av_list
        - Src:             'optimize.c:390,3'
          Dst:             optimize_cond_av_list
        - Src:             'optimize.c:398,4'
          Dst:             cond_node_destroy
    - functionName:    optimize_avtab
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 325
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          109
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - is_avrule_redundant
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:309,8'
          Dst:             is_avrule_redundant
    - functionName:    build_type_map
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         48
      ICount:          293
      EdgeCount:       63
      CyclomaticComplexity: 17
      functionsReached:
        - calloc
        - ebitmap_contains
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - type_vec_append
        - type_vec_destroy
        - type_vec_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:100,25'
          Dst:             calloc
        - Src:             'optimize.c:105,7'
          Dst:             type_vec_init
        - Src:             'optimize.c:112,4'
          Dst:             ebitmap_start
        - Src:             'optimize.c:112,4'
          Dst:             ebitmap_node_get_bit
        - Src:             'optimize.c:114,9'
          Dst:             type_vec_append
        - Src:             'optimize.c:112,4'
          Dst:             ebitmap_next
        - Src:             'optimize.c:128,9'
          Dst:             ebitmap_contains
        - Src:             'optimize.c:129,10'
          Dst:             type_vec_append
        - Src:             'optimize.c:138,3'
          Dst:             type_vec_destroy
    - functionName:    policydb_optimize
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 472
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          113
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - build_type_map
        - destroy_type_map
        - optimize_avtab
        - optimize_cond_avtab
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:463,13'
          Dst:             build_type_map
        - Src:             'optimize.c:467,2'
          Dst:             optimize_avtab
        - Src:             'optimize.c:468,2'
          Dst:             optimize_cond_avtab
        - Src:             'optimize.c:470,2'
          Dst:             destroy_type_map
    - functionName:    sepol_polcap_getname
      functionSourceFile: '/src/selinux/libsepol/src/polcaps.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_polcap_getnum
      functionSourceFile: '/src/selinux/libsepol/src/polcaps.c'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'polcaps.c:33,7'
          Dst:             strcasecmp
    - functionName:    strcasecmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    context_read_and_validate
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2083
      functionLinenumberEnd: 2112
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          281
      EdgeCount:       58
      CyclomaticComplexity: 15
      functionsReached:
        - context_destroy
        - mls_read_range_helper
        - next_entry
        - policydb_context_isvalid
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2087,7'
          Dst:             next_entry
        - Src:             'policydb.c:2099,7'
          Dst:             mls_read_range_helper
        - Src:             'policydb.c:2106,7'
          Dst:             policydb_context_isvalid
        - Src:             'policydb.c:2108,3'
          Dst:             context_destroy
    - functionName:    mls_read_range_helper
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1914
      functionLinenumberEnd: 1963
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         63
      ICount:          413
      EdgeCount:       81
      CyclomaticComplexity: 20
      functionsReached:
        - ebitmap_cpy
        - ebitmap_destroy
        - ebitmap_read
        - next_entry
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1918,7'
          Dst:             next_entry
        - Src:             'policydb.c:1928,7'
          Dst:             next_entry
        - Src:             'policydb.c:1939,7'
          Dst:             ebitmap_read
        - Src:             'policydb.c:1945,8'
          Dst:             ebitmap_read
        - Src:             'policydb.c:1951,8'
          Dst:             ebitmap_cpy
        - Src:             'policydb.c:1962,2'
          Dst:             ebitmap_destroy
    - functionName:    context_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_context_destroy
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:135,2'
          Dst:             mls_context_destroy
    - functionName:    mls_context_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_context_init
        - mls_range_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:112,2'
          Dst:             mls_range_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:113,2'
          Dst:             mls_context_init
    - functionName:    mls_range_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_destroy
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:148,2'
          Dst:             mls_level_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:149,2'
          Dst:             mls_level_destroy
    - functionName:    mls_context_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_range_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:42,2'
          Dst:             mls_range_init
    - functionName:    mls_range_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:142,2'
          Dst:             mls_level_init
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:143,2'
          Dst:             mls_level_init
    - functionName:    mls_level_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_level_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - mls_level_init
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:98,2'
          Dst:             ebitmap_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:99,2'
          Dst:             mls_level_init
    - functionName:    ocontext_read_xen
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2897
      functionLinenumberEnd: 2998
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          476
      EdgeCount:       90
      CyclomaticComplexity: 24
      functionsReached:
        - calloc
        - context_read_and_validate
        - next_entry
        - str_read
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb.c:2919,4'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb.c:2905,8'
          Dst:             next_entry
        - Src:             'policydb.c:2911,8'
          Dst:             calloc
        - Src:             'policydb.c:2921,10'
          Dst:             next_entry
        - Src:             'policydb.c:2927,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:2932,10'
          Dst:             next_entry
        - Src:             'policydb.c:2936,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:2941,10'
          Dst:             next_entry
        - Src:             'policydb.c:2946,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:2953,11'
          Dst:             next_entry
        - Src:             'policydb.c:2959,11'
          Dst:             next_entry
        - Src:             'policydb.c:2965,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:2970,10'
          Dst:             next_entry
        - Src:             'policydb.c:2974,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:2979,10'
          Dst:             next_entry
        - Src:             'policydb.c:2983,10'
          Dst:             str_read
        - Src:             'policydb.c:2986,9'
          Dst:             context_read_and_validate
    - functionName:    ocontext_read_selinux
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3001
      functionLinenumberEnd: 3168
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         106
      ICount:          710
      EdgeCount:       142
      CyclomaticComplexity: 38
      functionsReached:
        - calloc
        - context_read_and_validate
        - next_entry
        - str_read
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb.c:3025,4'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb.c:3009,8'
          Dst:             next_entry
        - Src:             'policydb.c:3015,8'
          Dst:             calloc
        - Src:             'policydb.c:3027,10'
          Dst:             next_entry
        - Src:             'policydb.c:3033,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:3039,10'
          Dst:             next_entry
        - Src:             'policydb.c:3046,10'
          Dst:             str_read
        - Src:             'policydb.c:3050,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:3053,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:3060,10'
          Dst:             next_entry
        - Src:             'policydb.c:3078,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:3086,10'
          Dst:             next_entry
        - Src:             'policydb.c:3097,10'
          Dst:             str_read
        - Src:             'policydb.c:3102,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:3108,10'
          Dst:             next_entry
        - Src:             'policydb.c:3114,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:3119,10'
          Dst:             next_entry
        - Src:             'policydb.c:3124,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:3129,10'
          Dst:             next_entry
        - Src:             'policydb.c:3135,10'
          Dst:             str_read
        - Src:             'policydb.c:3139,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:3146,10'
          Dst:             next_entry
        - Src:             'policydb.c:3155,9'
          Dst:             context_read_and_validate
    - functionName:    scope_index_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3914
      functionLinenumberEnd: 3946
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          163
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - calloc
        - ebitmap_read
        - exceeds_available_bytes
        - next_entry
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3920,7'
          Dst:             ebitmap_read
        - Src:             'policydb.c:3924,7'
          Dst:             next_entry
        - Src:             'policydb.c:3929,6'
          Dst:             exceeds_available_bytes
        - Src:             'policydb.c:3936,7'
          Dst:             calloc
        - Src:             'policydb.c:3941,7'
          Dst:             ebitmap_read
    - functionName:    exceeds_available_bytes
      functionSourceFile: '/src/selinux/libsepol/src/./private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    range_trans_rule_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3872
      functionLinenumberEnd: 3910
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          140
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - ebitmap_read
        - mls_read_semantic_range_helper
        - next_entry
        - range_trans_rule_init
        - type_set_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3878,7'
          Dst:             next_entry
        - Src:             'policydb.c:3887,3'
          Dst:             range_trans_rule_init
        - Src:             'policydb.c:3894,7'
          Dst:             type_set_read
        - Src:             'policydb.c:3897,7'
          Dst:             type_set_read
        - Src:             'policydb.c:3900,7'
          Dst:             ebitmap_read
        - Src:             'policydb.c:3903,7'
          Dst:             mls_read_semantic_range_helper
    - functionName:    range_trans_rule_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 777
      functionLinenumberEnd: 783
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ebitmap_init
        - mls_semantic_range_init
        - type_set_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:778,2'
          Dst:             type_set_init
        - Src:             'policydb.c:779,2'
          Dst:             type_set_init
        - Src:             'policydb.c:780,2'
          Dst:             ebitmap_init
        - Src:             'policydb.c:781,2'
          Dst:             mls_semantic_range_init
    - functionName:    type_set_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1892
      functionLinenumberEnd: 1907
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - ebitmap_read
        - next_entry
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1896,6'
          Dst:             ebitmap_read
        - Src:             'policydb.c:1898,6'
          Dst:             ebitmap_read
        - Src:             'policydb.c:1901,7'
          Dst:             next_entry
    - functionName:    mls_read_semantic_range_helper
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2020
      functionLinenumberEnd: 2030
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_read_semantic_level_helper
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2023,7'
          Dst:             mls_read_semantic_level_helper
        - Src:             'policydb.c:2027,7'
          Dst:             mls_read_semantic_level_helper
    - functionName:    mls_read_semantic_level_helper
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1972
      functionLinenumberEnd: 2012
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          259
      EdgeCount:       49
      CyclomaticComplexity: 12
      functionsReached:
        - mls_semantic_cat_init
        - mls_semantic_level_init
        - next_entry
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1978,2'
          Dst:             mls_semantic_level_init
        - Src:             'policydb.c:1980,7'
          Dst:             next_entry
        - Src:             'policydb.c:1995,3'
          Dst:             mls_semantic_cat_init
        - Src:             'policydb.c:1999,8'
          Dst:             next_entry
    - functionName:    type_set_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 562
      functionLinenumberEnd: 566
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ebitmap_init
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:564,2'
          Dst:             ebitmap_init
        - Src:             'policydb.c:565,2'
          Dst:             ebitmap_init
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    16
      BranchProfiles:  []
      Callsites:       []
    - functionName:    filename_trans_rule_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3813
      functionLinenumberEnd: 3868
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          213
      EdgeCount:       42
      CyclomaticComplexity: 13
      functionsReached:
        - filename_trans_rule_init
        - next_entry
        - str_read
        - type_set_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3819,7'
          Dst:             next_entry
        - Src:             'policydb.c:3829,3'
          Dst:             filename_trans_rule_init
        - Src:             'policydb.c:3837,8'
          Dst:             next_entry
        - Src:             'policydb.c:3843,8'
          Dst:             str_read
        - Src:             'policydb.c:3847,7'
          Dst:             type_set_read
        - Src:             'policydb.c:3850,7'
          Dst:             type_set_read
        - Src:             'policydb.c:3858,8'
          Dst:             next_entry
    - functionName:    filename_trans_rule_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 727
      functionLinenumberEnd: 731
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - type_set_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:729,2'
          Dst:             type_set_init
        - Src:             'policydb.c:730,2'
          Dst:             type_set_init
    - functionName:    role_allow_rule_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3776
      functionLinenumberEnd: 3809
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          116
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - next_entry
        - role_allow_rule_init
        - role_set_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3782,7'
          Dst:             next_entry
        - Src:             'policydb.c:3792,3'
          Dst:             role_allow_rule_init
        - Src:             'policydb.c:3800,7'
          Dst:             role_set_read
        - Src:             'policydb.c:3803,7'
          Dst:             role_set_read
    - functionName:    role_allow_rule_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 754
      functionLinenumberEnd: 758
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - role_set_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:756,2'
          Dst:             role_set_init
        - Src:             'policydb.c:757,2'
          Dst:             role_set_init
    - functionName:    role_set_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1877
      functionLinenumberEnd: 1889
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_read
        - next_entry
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1881,6'
          Dst:             ebitmap_read
        - Src:             'policydb.c:1883,7'
          Dst:             next_entry
    - functionName:    role_set_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 577
      functionLinenumberEnd: 580
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ebitmap_init
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:579,2'
          Dst:             ebitmap_init
    - functionName:    role_trans_rule_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3725
      functionLinenumberEnd: 3773
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          189
      EdgeCount:       41
      CyclomaticComplexity: 13
      functionsReached:
        - ebitmap_read
        - ebitmap_set_bit
        - next_entry
        - role_set_read
        - role_trans_rule_init
        - type_set_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3731,7'
          Dst:             next_entry
        - Src:             'policydb.c:3741,3'
          Dst:             role_trans_rule_init
        - Src:             'policydb.c:3749,7'
          Dst:             role_set_read
        - Src:             'policydb.c:3752,7'
          Dst:             type_set_read
        - Src:             'policydb.c:3756,8'
          Dst:             ebitmap_read
        - Src:             'policydb.c:3761,8'
          Dst:             ebitmap_set_bit
        - Src:             'policydb.c:3765,8'
          Dst:             next_entry
    - functionName:    role_trans_rule_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 700
      functionLinenumberEnd: 705
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ebitmap_init
        - role_set_init
        - type_set_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:702,2'
          Dst:             role_set_init
        - Src:             'policydb.c:703,2'
          Dst:             type_set_init
        - Src:             'policydb.c:704,2'
          Dst:             ebitmap_init
    - functionName:    avrule_decl_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3950
      functionLinenumberEnd: 3996
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          273
      EdgeCount:       60
      CyclomaticComplexity: 18
      functionsReached:
        - avrule_read_list
        - cond_read_list
        - filename_trans_rule_read
        - next_entry
        - range_trans_rule_read
        - role_allow_rule_read
        - role_trans_rule_read
        - scope_index_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3955,7'
          Dst:             next_entry
        - Src:             'policydb.c:3960,6'
          Dst:             cond_read_list
        - Src:             'policydb.c:3961,6'
          Dst:             avrule_read_list
        - Src:             'policydb.c:3962,6'
          Dst:             role_trans_rule_read
        - Src:             'policydb.c:3963,6'
          Dst:             role_allow_rule_read
        - Src:             'policydb.c:3968,6'
          Dst:             filename_trans_rule_read
        - Src:             'policydb.c:3972,6'
          Dst:             range_trans_rule_read
        - Src:             'policydb.c:3975,6'
          Dst:             scope_index_read
        - Src:             'policydb.c:3976,6'
          Dst:             scope_index_read
        - Src:             'policydb.c:3981,8'
          Dst:             next_entry
    - functionName:    avrule_read_list
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3692
      functionLinenumberEnd: 3721
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          96
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - avrule_read
        - next_entry
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3700,7'
          Dst:             next_entry
        - Src:             'policydb.c:3707,9'
          Dst:             avrule_read
    - functionName:    common_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2157
      functionLinenumberEnd: 2200
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          157
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - calloc
        - common_destroy
        - hashtab_insert
        - next_entry
        - perm_read
        - str_read
        - symtab_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2165,13'
          Dst:             calloc
        - Src:             'policydb.c:2169,7'
          Dst:             next_entry
        - Src:             'policydb.c:2174,7'
          Dst:             str_read
        - Src:             'policydb.c:2180,6'
          Dst:             symtab_init
        - Src:             'policydb.c:2188,7'
          Dst:             perm_read
        - Src:             'policydb.c:2192,6'
          Dst:             hashtab_insert
        - Src:             'policydb.c:2198,2'
          Dst:             common_destroy
    - functionName:    class_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2298
      functionLinenumberEnd: 2396
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         83
      ICount:          526
      EdgeCount:       114
      CyclomaticComplexity: 33
      functionsReached:
        - calloc
        - class_destroy
        - hashtab_insert
        - hashtab_search
        - next_entry
        - perm_read
        - read_cons_helper
        - str_read
        - symtab_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2306,31'
          Dst:             calloc
        - Src:             'policydb.c:2310,7'
          Dst:             next_entry
        - Src:             'policydb.c:2315,7'
          Dst:             str_read
        - Src:             'policydb.c:2324,6'
          Dst:             symtab_init
        - Src:             'policydb.c:2334,8'
          Dst:             str_read
        - Src:             'policydb.c:2338,24'
          Dst:             hashtab_search
        - Src:             'policydb.c:2346,7'
          Dst:             perm_read
        - Src:             'policydb.c:2350,6'
          Dst:             read_cons_helper
        - Src:             'policydb.c:2358,8'
          Dst:             next_entry
        - Src:             'policydb.c:2362,7'
          Dst:             read_cons_helper
        - Src:             'policydb.c:2370,8'
          Dst:             next_entry
        - Src:             'policydb.c:2382,8'
          Dst:             next_entry
        - Src:             'policydb.c:2388,6'
          Dst:             hashtab_insert
        - Src:             'policydb.c:2394,2'
          Dst:             class_destroy
    - functionName:    role_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2399
      functionLinenumberEnd: 2468
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          381
      EdgeCount:       89
      CyclomaticComplexity: 26
      functionsReached:
        - calloc
        - ebitmap_read
        - hashtab_insert
        - next_entry
        - role_destroy
        - str_read
        - strcmp
        - type_set_read
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2406,9'
          Dst:             calloc
        - Src:             'policydb.c:2413,7'
          Dst:             next_entry
        - Src:             'policydb.c:2418,7'
          Dst:             str_read
        - Src:             'policydb.c:2426,6'
          Dst:             ebitmap_read
        - Src:             'policydb.c:2430,7'
          Dst:             ebitmap_read
        - Src:             'policydb.c:2433,7'
          Dst:             type_set_read
        - Src:             'policydb.c:2439,8'
          Dst:             next_entry
        - Src:             'policydb.c:2445,7'
          Dst:             ebitmap_read
        - Src:             'policydb.c:2449,6'
          Dst:             strcmp
        - Src:             'policydb.c:2453,4'
          Dst:             role_destroy
        - Src:             'policydb.c:2456,3'
          Dst:             role_destroy
        - Src:             'policydb.c:2460,6'
          Dst:             hashtab_insert
        - Src:             'policydb.c:2466,2'
          Dst:             role_destroy
    - functionName:    type_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2471
      functionLinenumberEnd: 2557
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         87
      ICount:          506
      EdgeCount:       117
      CyclomaticComplexity: 32
      functionsReached:
        - calloc
        - ebitmap_read
        - hashtab_insert
        - next_entry
        - str_read
        - type_destroy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2479,13'
          Dst:             calloc
        - Src:             'policydb.c:2497,7'
          Dst:             next_entry
        - Src:             'policydb.c:2541,7'
          Dst:             ebitmap_read
        - Src:             'policydb.c:2545,7'
          Dst:             str_read
        - Src:             'policydb.c:2549,6'
          Dst:             hashtab_insert
        - Src:             'policydb.c:2555,2'
          Dst:             type_destroy
    - functionName:    user_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3323
      functionLinenumberEnd: 3400
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         89
      ICount:          464
      EdgeCount:       123
      CyclomaticComplexity: 36
      functionsReached:
        - calloc
        - ebitmap_read
        - hashtab_insert
        - mls_level_to_semantic
        - mls_range_to_semantic
        - mls_read_level
        - mls_read_range_helper
        - mls_read_semantic_level_helper
        - mls_read_semantic_range_helper
        - next_entry
        - role_set_read
        - str_read
        - user_destroy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3330,13'
          Dst:             calloc
        - Src:             'policydb.c:3337,7'
          Dst:             next_entry
        - Src:             'policydb.c:3342,7'
          Dst:             str_read
        - Src:             'policydb.c:3351,7'
          Dst:             ebitmap_read
        - Src:             'policydb.c:3354,7'
          Dst:             role_set_read
        - Src:             'policydb.c:3370,7'
          Dst:             mls_read_range_helper
        - Src:             'policydb.c:3372,7'
          Dst:             mls_read_level
        - Src:             'policydb.c:3375,8'
          Dst:             mls_range_to_semantic
        - Src:             'policydb.c:3378,8'
          Dst:             mls_level_to_semantic
        - Src:             'policydb.c:3386,7'
          Dst:             mls_read_semantic_range_helper
        - Src:             'policydb.c:3388,7'
          Dst:             mls_read_semantic_level_helper
        - Src:             'policydb.c:3392,6'
          Dst:             hashtab_insert
        - Src:             'policydb.c:3398,2'
          Dst:             user_destroy
    - functionName:    sens_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3405
      functionLinenumberEnd: 3439
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          118
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - hashtab_insert
        - level_datum_init
        - mls_read_level
        - next_entry
        - sens_destroy
        - str_read
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3414,2'
          Dst:             level_datum_init
        - Src:             'policydb.c:3416,7'
          Dst:             next_entry
        - Src:             'policydb.c:3421,7'
          Dst:             str_read
        - Src:             'policydb.c:3428,26'
          Dst:             mls_read_level
        - Src:             'policydb.c:3431,6'
          Dst:             hashtab_insert
        - Src:             'policydb.c:3437,2'
          Dst:             sens_destroy
    - functionName:    cat_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3444
      functionLinenumberEnd: 3475
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          98
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - cat_datum_init
        - cat_destroy
        - hashtab_insert
        - next_entry
        - str_read
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3453,2'
          Dst:             cat_datum_init
        - Src:             'policydb.c:3455,7'
          Dst:             next_entry
        - Src:             'policydb.c:3460,7'
          Dst:             str_read
        - Src:             'policydb.c:3467,6'
          Dst:             hashtab_insert
        - Src:             'policydb.c:3473,2'
          Dst:             cat_destroy
    - functionName:    cat_datum_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 655
      functionLinenumberEnd: 657
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cat_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1463
      functionLinenumberEnd: 1468
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - cat_datum_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1466,2'
          Dst:             cat_datum_destroy
    - functionName:    cat_datum_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 660
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    level_datum_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 643
      functionLinenumberEnd: 645
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_read_level
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3299
      functionLinenumberEnd: 3320
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          156
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - ebitmap_read
        - mls_level_init
        - next_entry
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3303,2'
          Dst:             mls_level_init
        - Src:             'policydb.c:3305,7'
          Dst:             next_entry
        - Src:             'policydb.c:3312,6'
          Dst:             ebitmap_read
    - functionName:    sens_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1446
      functionLinenumberEnd: 1458
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - level_datum_destroy
        - mls_level_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1453,3'
          Dst:             mls_level_destroy
        - Src:             'policydb.c:1456,2'
          Dst:             level_datum_destroy
    - functionName:    level_datum_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 648
      functionLinenumberEnd: 651
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_range_to_semantic
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2067
      functionLinenumberEnd: 2075
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mls_level_to_semantic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2068,6'
          Dst:             mls_level_to_semantic
        - Src:             'policydb.c:2071,6'
          Dst:             mls_level_to_semantic
    - functionName:    mls_level_to_semantic
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2033
      functionLinenumberEnd: 2064
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          139
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - mls_semantic_cat_init
        - mls_semantic_level_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2038,2'
          Dst:             mls_semantic_level_init
        - Src:             'policydb.c:2040,2'
          Dst:             ebitmap_start
        - Src:             'policydb.c:2041,7'
          Dst:             ebitmap_node_get_bit
        - Src:             'policydb.c:2049,4'
          Dst:             mls_semantic_cat_init
        - Src:             'policydb.c:2040,2'
          Dst:             ebitmap_next
    - functionName:    user_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1437
      functionLinenumberEnd: 1441
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - user_datum_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1439,2'
          Dst:             user_datum_destroy
    - functionName:    user_datum_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 631
      functionLinenumberEnd: 640
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - mls_level_destroy
        - mls_range_destroy
        - mls_semantic_level_destroy
        - mls_semantic_range_destroy
        - role_set_destroy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:633,3'
          Dst:             role_set_destroy
        - Src:             'policydb.c:634,3'
          Dst:             mls_semantic_range_destroy
        - Src:             'policydb.c:635,3'
          Dst:             mls_semantic_level_destroy
        - Src:             'policydb.c:636,3'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:637,3'
          Dst:             mls_range_destroy
        - Src:             'policydb.c:638,3'
          Dst:             mls_level_destroy
    - functionName:    role_set_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 585
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ebitmap_destroy
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:584,2'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    type_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1428
      functionLinenumberEnd: 1432
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - type_datum_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1430,2'
          Dst:             type_datum_destroy
    - functionName:    type_datum_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 613
      functionLinenumberEnd: 617
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:615,3'
          Dst:             ebitmap_destroy
    - functionName:    role_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1419
      functionLinenumberEnd: 1423
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - role_datum_destroy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1421,2'
          Dst:             role_datum_destroy
    - functionName:    role_datum_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 597
      functionLinenumberEnd: 604
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - type_set_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:599,3'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:600,3'
          Dst:             type_set_destroy
        - Src:             'policydb.c:601,3'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:602,3'
          Dst:             ebitmap_destroy
    - functionName:    type_set_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 569
      functionLinenumberEnd: 574
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:571,3'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:572,3'
          Dst:             ebitmap_destroy
    - functionName:    perm_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2123
      functionLinenumberEnd: 2154
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          103
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - hashtab_insert
        - next_entry
        - perm_destroy
        - str_read
        - value_isvalid
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2130,13'
          Dst:             calloc
        - Src:             'policydb.c:2134,7'
          Dst:             next_entry
        - Src:             'policydb.c:2139,5'
          Dst:             str_read
        - Src:             'policydb.c:2143,7'
          Dst:             value_isvalid
        - Src:             'policydb.c:2146,6'
          Dst:             hashtab_insert
        - Src:             'policydb.c:2152,2'
          Dst:             perm_destroy
    - functionName:    read_cons_helper
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2205
      functionLinenumberEnd: 2295
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         66
      ICount:          385
      EdgeCount:       87
      CyclomaticComplexity: 23
      functionsReached:
        - calloc
        - constraint_expr_init
        - ebitmap_read
        - next_entry
        - type_set_read
      functionUses:    2
      BranchProfiles:
        - Branch String:   'policydb.c:2252,4'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb.c:2215,7'
          Dst:             calloc
        - Src:             'policydb.c:2224,8'
          Dst:             next_entry
        - Src:             'policydb.c:2235,8'
          Dst:             constraint_expr_init
        - Src:             'policydb.c:2245,9'
          Dst:             next_entry
        - Src:             'policydb.c:2274,9'
          Dst:             ebitmap_read
        - Src:             'policydb.c:2277,9'
          Dst:             type_set_read
        - Src:             'policydb.c:2281,7'
          Dst:             type_set_read
    - functionName:    class_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1383
      functionLinenumberEnd: 1415
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          124
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - constraint_expr_destroy
        - hashtab_destroy
        - hashtab_map
        - perm_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1393,8'
          Dst:             hashtab_map
        - Src:             'policydb.c:1393,8'
          Dst:             perm_destroy
        - Src:             'policydb.c:1394,2'
          Dst:             hashtab_destroy
        - Src:             'policydb.c:1397,3'
          Dst:             constraint_expr_destroy
        - Src:             'policydb.c:1405,3'
          Dst:             constraint_expr_destroy
    - functionName:    perm_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1360
      functionLinenumberEnd: 1364
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    common_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1369
      functionLinenumberEnd: 1378
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hashtab_destroy
        - hashtab_map
        - perm_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1375,8'
          Dst:             hashtab_map
        - Src:             'policydb.c:1375,8'
          Dst:             perm_destroy
        - Src:             'policydb.c:1376,2'
          Dst:             hashtab_destroy
    - functionName:    avrule_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3485
      functionLinenumberEnd: 3592
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         97
      ICount:          607
      EdgeCount:       123
      CyclomaticComplexity: 28
      functionsReached:
        - avrule_destroy
        - avrule_init
        - calloc
        - class_perm_node_init
        - next_entry
        - type_set_read
      functionUses:    1
      BranchProfiles:
        - Branch String:   ''
          Branch Sides:    []
      Callsites:
        - Src:             'policydb.c:3496,2'
          Dst:             avrule_init
        - Src:             'policydb.c:3498,7'
          Dst:             next_entry
        - Src:             'policydb.c:3505,6'
          Dst:             type_set_read
        - Src:             'policydb.c:3508,6'
          Dst:             type_set_read
        - Src:             'policydb.c:3511,7'
          Dst:             next_entry
        - Src:             'policydb.c:3520,3'
          Dst:             class_perm_node_init
        - Src:             'policydb.c:3522,8'
          Dst:             next_entry
        - Src:             'policydb.c:3560,20'
          Dst:             calloc
        - Src:             'policydb.c:3564,8'
          Dst:             next_entry
        - Src:             'policydb.c:3570,8'
          Dst:             next_entry
        - Src:             'policydb.c:3576,8'
          Dst:             next_entry
        - Src:             'policydb.c:3588,3'
          Dst:             avrule_destroy
    - functionName:    avrule_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 671
      functionLinenumberEnd: 675
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - type_set_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:673,2'
          Dst:             type_set_init
        - Src:             'policydb.c:674,2'
          Dst:             type_set_init
    - functionName:    class_perm_node_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 666
      functionLinenumberEnd: 668
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avrule_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 678
      functionLinenumberEnd: 697
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - type_set_destroy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:684,2'
          Dst:             type_set_destroy
        - Src:             'policydb.c:685,2'
          Dst:             type_set_destroy
    - functionName:    filename_trans_check_datum
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2756
      functionLinenumberEnd: 2782
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          80
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_destroy
        - ebitmap_get_bit
        - ebitmap_init
        - ebitmap_match_any
        - ebitmap_set_bit
        - ebitmap_union
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2760,2'
          Dst:             ebitmap_init
        - Src:             'policydb.c:2761,2'
          Dst:             ebitmap_init
        - Src:             'policydb.c:2764,7'
          Dst:             ebitmap_get_bit
        - Src:             'policydb.c:2767,7'
          Dst:             ebitmap_set_bit
        - Src:             'policydb.c:2770,7'
          Dst:             ebitmap_match_any
        - Src:             'policydb.c:2773,7'
          Dst:             ebitmap_union
        - Src:             'policydb.c:2780,2'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:2781,2'
          Dst:             ebitmap_destroy
    - functionName:    filename_trans_read_one
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2786
      functionLinenumberEnd: 2866
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          252
      EdgeCount:       48
      CyclomaticComplexity: 15
      functionsReached:
        - ebitmap_cardinality
        - ebitmap_destroy
        - ebitmap_read
        - filename_trans_check_datum
        - hashtab_insert
        - next_entry
        - str_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2794,7'
          Dst:             next_entry
        - Src:             'policydb.c:2799,7'
          Dst:             str_read
        - Src:             'policydb.c:2803,7'
          Dst:             next_entry
        - Src:             'policydb.c:2823,8'
          Dst:             ebitmap_read
        - Src:             'policydb.c:2827,8'
          Dst:             next_entry
        - Src:             'policydb.c:2833,30'
          Dst:             ebitmap_cardinality
        - Src:             'policydb.c:2838,20'
          Dst:             filename_trans_check_datum
        - Src:             'policydb.c:2849,7'
          Dst:             hashtab_insert
        - Src:             'policydb.c:2862,3'
          Dst:             ebitmap_destroy
    - functionName:    filename_trans_read_one_compat
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2710
      functionLinenumberEnd: 2753
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          123
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - next_entry
        - policydb_filetrans_insert
        - str_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2715,7'
          Dst:             next_entry
        - Src:             'policydb.c:2720,7'
          Dst:             str_read
        - Src:             'policydb.c:2724,7'
          Dst:             next_entry
        - Src:             'policydb.c:2736,7'
          Dst:             policydb_filetrans_insert
    - functionName:    policydb_filetrans_insert
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2638
      functionLinenumberEnd: 2707
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          233
      EdgeCount:       43
      CyclomaticComplexity: 13
      functionsReached:
        - ebitmap_get_bit
        - ebitmap_init
        - ebitmap_set_bit
        - hashtab_insert
        - hashtab_search
        - strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2647,10'
          Dst:             hashtab_search
        - Src:             'policydb.c:2649,7'
          Dst:             ebitmap_get_bit
        - Src:             'policydb.c:2664,3'
          Dst:             ebitmap_init
        - Src:             'policydb.c:2677,16'
          Dst:             strdup
        - Src:             'policydb.c:2695,8'
          Dst:             hashtab_insert
        - Src:             'policydb.c:2706,9'
          Dst:             ebitmap_set_bit
    - functionName:    cat_index
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1170
      functionLinenumberEnd: 1186
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          91
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - value_isvalid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1178,8'
          Dst:             value_isvalid
    - functionName:    sens_index
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1151
      functionLinenumberEnd: 1167
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          94
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - value_isvalid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1159,8'
          Dst:             value_isvalid
    - functionName:    user_index
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1133
      functionLinenumberEnd: 1148
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          92
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - value_isvalid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1140,7'
          Dst:             value_isvalid
    - functionName:    type_index
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1113
      functionLinenumberEnd: 1130
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          103
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - value_isvalid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1121,8'
          Dst:             value_isvalid
    - functionName:    role_index
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1096
      functionLinenumberEnd: 1110
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          92
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - value_isvalid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1102,7'
          Dst:             value_isvalid
    - functionName:    partial_name_hash
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 863
      functionLinenumberEnd: 864
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    policydb_sort_ocontexts
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4577
      functionLinenumberEnd: 4578
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sort_ocontexts
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:4578,9'
          Dst:             sort_ocontexts
    - functionName:    policy_file_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4560
      functionLinenumberEnd: 4562
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    policydb_reindex_users
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4531
      functionLinenumberEnd: 4557
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          146
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - calloc
        - hashtab_map
        - policydb_user_cache
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:4540,6'
          Dst:             calloc
        - Src:             'policydb.c:4545,6'
          Dst:             calloc
        - Src:             'policydb.c:4549,6'
          Dst:             hashtab_map
        - Src:             'policydb.c:4553,6'
          Dst:             hashtab_map
        - Src:             'policydb.c:4553,6'
          Dst:             policydb_user_cache
    - functionName:    policydb_user_cache
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1019
      functionLinenumberEnd: 1050
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          102
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_destroy
        - mls_level_destroy
        - mls_range_destroy
        - mls_semantic_level_expand
        - mls_semantic_range_expand
        - role_set_expand
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1026,2'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:1027,6'
          Dst:             role_set_expand
        - Src:             'policydb.c:1036,3'
          Dst:             mls_range_destroy
        - Src:             'policydb.c:1037,7'
          Dst:             mls_semantic_range_expand
        - Src:             'policydb.c:1042,3'
          Dst:             mls_level_destroy
        - Src:             'policydb.c:1043,7'
          Dst:             mls_semantic_level_expand
    - functionName:    common_index
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1063
      functionLinenumberEnd: 1076
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          80
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - value_isvalid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1069,7'
          Dst:             value_isvalid
    - functionName:    class_index
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1079
      functionLinenumberEnd: 1093
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          92
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - value_isvalid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1085,7'
          Dst:             value_isvalid
    - functionName:    range_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3595
      functionLinenumberEnd: 3688
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         56
      ICount:          378
      EdgeCount:       78
      CyclomaticComplexity: 24
      functionsReached:
        - calloc
        - ebitmap_set_bit
        - hashtab_insert
        - mls_range_destroy
        - mls_range_to_semantic
        - mls_read_range_helper
        - next_entry
        - range_trans_rule_destroy
        - range_trans_rule_init
        - value_isvalid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3605,7'
          Dst:             next_entry
        - Src:             'policydb.c:3610,8'
          Dst:             calloc
        - Src:             'policydb.c:3613,8'
          Dst:             next_entry
        - Src:             'policydb.c:3617,8'
          Dst:             value_isvalid
        - Src:             'policydb.c:3620,8'
          Dst:             value_isvalid
        - Src:             'policydb.c:3623,9'
          Dst:             next_entry
        - Src:             'policydb.c:3629,8'
          Dst:             value_isvalid
        - Src:             'policydb.c:3631,7'
          Dst:             calloc
        - Src:             'policydb.c:3634,7'
          Dst:             mls_read_range_helper
        - Src:             'policydb.c:3638,9'
          Dst:             hashtab_insert
        - Src:             'policydb.c:3650,3'
          Dst:             range_trans_rule_init
        - Src:             'policydb.c:3652,7'
          Dst:             ebitmap_set_bit
        - Src:             'policydb.c:3655,7'
          Dst:             ebitmap_set_bit
        - Src:             'policydb.c:3658,7'
          Dst:             ebitmap_set_bit
        - Src:             'policydb.c:3661,7'
          Dst:             mls_range_to_semantic
        - Src:             'policydb.c:3680,3'
          Dst:             mls_range_destroy
        - Src:             'policydb.c:3684,3'
          Dst:             range_trans_rule_destroy
    - functionName:    range_trans_rule_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 786
      functionLinenumberEnd: 791
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ebitmap_destroy
        - mls_semantic_range_destroy
        - type_set_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:787,2'
          Dst:             type_set_destroy
        - Src:             'policydb.c:788,2'
          Dst:             type_set_destroy
        - Src:             'policydb.c:789,2'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:790,2'
          Dst:             mls_semantic_range_destroy
    - functionName:    genfs_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3188
      functionLinenumberEnd: 3292
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         84
      ICount:          553
      EdgeCount:       112
      CyclomaticComplexity: 30
      functionsReached:
        - calloc
        - context_destroy
        - context_read_and_validate
        - next_entry
        - str_read
        - strcmp
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3196,7'
          Dst:             next_entry
        - Src:             'policydb.c:3202,8'
          Dst:             next_entry
        - Src:             'policydb.c:3206,14'
          Dst:             calloc
        - Src:             'policydb.c:3210,8'
          Dst:             str_read
        - Src:             'policydb.c:3219,8'
          Dst:             strcmp
        - Src:             'policydb.c:3226,8'
          Dst:             strcmp
        - Src:             'policydb.c:3234,8'
          Dst:             next_entry
        - Src:             'policydb.c:3239,11'
          Dst:             calloc
        - Src:             'policydb.c:3243,9'
          Dst:             next_entry
        - Src:             'policydb.c:3247,9'
          Dst:             str_read
        - Src:             'policydb.c:3251,9'
          Dst:             next_entry
        - Src:             'policydb.c:3255,8'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:3259,10'
          Dst:             strcmp
        - Src:             'policydb.c:3267,11'
          Dst:             strlen
        - Src:             'policydb.c:3268,12'
          Dst:             strlen
        - Src:             'policydb.c:3286,3'
          Dst:             context_destroy
        - Src:             'policydb.c:3287,3'
          Dst:             context_destroy
    - functionName:    ocontext_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3172
      functionLinenumberEnd: 3184
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          98
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - ocontext_read_selinux
        - ocontext_read_xen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb.c:3174,2'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb.c:3176,8'
          Dst:             ocontext_read_selinux
        - Src:             'policydb.c:3179,8'
          Dst:             ocontext_read_xen
    - functionName:    policydb_string_to_av_perm
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4157
      functionLinenumberEnd: 4182
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          114
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - hashtab_search
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:4166,4'
          Dst:             hashtab_search
        - Src:             'policydb.c:4175,4'
          Dst:             hashtab_search
    - functionName:    policydb_index_decls
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1242
      functionLinenumberEnd: 1278
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          260
      EdgeCount:       53
      CyclomaticComplexity: 13
      functionsReached:
        - calloc
        - value_isvalid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1257,6'
          Dst:             calloc
        - Src:             'policydb.c:1265,9'
          Dst:             value_isvalid
    - functionName:    scope_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4077
      functionLinenumberEnd: 4138
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          310
      EdgeCount:       62
      CyclomaticComplexity: 18
      functionsReached:
        - calloc
        - exceeds_available_bytes
        - hashtab_insert
        - hashtab_search
        - next_entry
        - scope_destroy
        - str_read
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:4086,7'
          Dst:             next_entry
        - Src:             'policydb.c:4091,7'
          Dst:             str_read
        - Src:             'policydb.c:4096,6'
          Dst:             hashtab_search
        - Src:             'policydb.c:4100,15'
          Dst:             calloc
        - Src:             'policydb.c:4103,7'
          Dst:             next_entry
        - Src:             'policydb.c:4109,6'
          Dst:             exceeds_available_bytes
        - Src:             'policydb.c:4114,7'
          Dst:             calloc
        - Src:             'policydb.c:4117,7'
          Dst:             next_entry
        - Src:             'policydb.c:4124,6'
          Dst:             strcmp
        - Src:             'policydb.c:4126,3'
          Dst:             scope_destroy
        - Src:             'policydb.c:4128,7'
          Dst:             hashtab_insert
        - Src:             'policydb.c:4136,2'
          Dst:             scope_destroy
    - functionName:    scope_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1664
      functionLinenumberEnd: 1671
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avrule_block_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4002
      functionLinenumberEnd: 4074
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          250
      EdgeCount:       55
      CyclomaticComplexity: 14
      functionsReached:
        - __assert_fail
        - avrule_block_destroy
        - avrule_decl_create
        - avrule_decl_destroy
        - avrule_decl_read
        - calloc
        - next_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:4007,2'
          Dst:             __assert_fail
        - Src:             'policydb.c:4009,7'
          Dst:             next_entry
        - Src:             'policydb.c:4017,19'
          Dst:             calloc
        - Src:             'policydb.c:4020,8'
          Dst:             next_entry
        - Src:             'policydb.c:4031,19'
          Dst:             avrule_decl_create
        - Src:             'policydb.c:4032,5'
          Dst:             avrule_block_destroy
        - Src:             'policydb.c:4035,8'
          Dst:             avrule_decl_read
        - Src:             'policydb.c:4037,5'
          Dst:             avrule_decl_destroy
        - Src:             'policydb.c:4038,5'
          Dst:             avrule_block_destroy
        - Src:             'policydb.c:4044,6'
          Dst:             avrule_decl_destroy
        - Src:             'policydb.c:4045,6'
          Dst:             avrule_block_destroy
        - Src:             'policydb.c:4055,5'
          Dst:             __assert_fail
        - Src:             'policydb.c:4065,4'
          Dst:             __assert_fail
    - functionName:    filename_trans_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2869
      functionLinenumberEnd: 2893
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          109
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - filename_trans_read_one
        - filename_trans_read_one_compat
        - next_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2874,7'
          Dst:             next_entry
        - Src:             'policydb.c:2881,9'
          Dst:             filename_trans_read_one_compat
        - Src:             'policydb.c:2887,9'
          Dst:             filename_trans_read_one
    - functionName:    role_allow_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2603
      functionLinenumberEnd: 2632
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          113
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - next_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2609,7'
          Dst:             next_entry
        - Src:             'policydb.c:2615,8'
          Dst:             calloc
        - Src:             'policydb.c:2624,8'
          Dst:             next_entry
    - functionName:    role_trans_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2560
      functionLinenumberEnd: 2600
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          182
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - calloc
        - next_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2569,7'
          Dst:             next_entry
        - Src:             'policydb.c:2575,8'
          Dst:             calloc
        - Src:             'policydb.c:2584,8'
          Dst:             next_entry
        - Src:             'policydb.c:2591,9'
          Dst:             next_entry
    - functionName:    policydb_string_to_security_class
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4143
      functionLinenumberEnd: 4151
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hashtab_search
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:4146,17'
          Dst:             hashtab_search
    - functionName:    policydb_set_target_platform
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4565
      functionLinenumberEnd: 4574
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    policydb_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4190
      functionLinenumberEnd: 4528
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         374
      ICount:          2204
      EdgeCount:       497
      CyclomaticComplexity: 125
      functionsReached:
        - __assert_fail
        - avrule_block_destroy
        - avrule_block_read
        - avtab_read
        - calloc
        - cond_read_list
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_read
        - ebitmap_set_bit
        - ebitmap_start
        - exceeds_available_bytes
        - filename_trans_read
        - genfs_read
        - next_entry
        - ocontext_read
        - policydb_index_classes
        - policydb_index_decls
        - policydb_index_others
        - policydb_lookup_compat
        - policydb_set_target_platform
        - policydb_string_to_av_perm
        - policydb_string_to_security_class
        - policydb_validate
        - range_read
        - role_allow_read
        - role_trans_read
        - scope_read
        - str_read
        - strcmp
      functionUses:    3
      BranchProfiles:
        - Branch String:   'policydb.c:4397,2'
          Branch Sides:    []
        - Branch String:   'policydb.c:4452,2'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb.c:4202,7'
          Dst:             next_entry
        - Src:             'policydb.c:4225,7'
          Dst:             next_entry
        - Src:             'policydb.c:4234,9'
          Dst:             strcmp
        - Src:             'policydb.c:4236,5'
          Dst:             policydb_set_target_platform
        - Src:             'policydb.c:4247,7'
          Dst:             strcmp
        - Src:             'policydb.c:4260,7'
          Dst:             next_entry
        - Src:             'policydb.c:4300,3'
          Dst:             __assert_fail
        - Src:             'policydb.c:4318,9'
          Dst:             policydb_lookup_compat
        - Src:             'policydb.c:4337,13'
          Dst:             next_entry
        - Src:             'policydb.c:4341,8'
          Dst:             str_read
        - Src:             'policydb.c:4345,13'
          Dst:             next_entry
        - Src:             'policydb.c:4349,8'
          Dst:             str_read
        - Src:             'policydb.c:4360,7'
          Dst:             ebitmap_read
        - Src:             'policydb.c:4366,7'
          Dst:             ebitmap_read
        - Src:             'policydb.c:4372,7'
          Dst:             ebitmap_read
        - Src:             'policydb.c:4377,8'
          Dst:             next_entry
        - Src:             'policydb.c:4382,7'
          Dst:             exceeds_available_bytes
        - Src:             'policydb.c:4399,22'
          Dst:             policydb_string_to_security_class
        - Src:             'policydb.c:4400,18'
          Dst:             policydb_string_to_security_class
        - Src:             'policydb.c:4403,22'
          Dst:             policydb_string_to_security_class
        - Src:             'policydb.c:4410,7'
          Dst:             avtab_read
        - Src:             'policydb.c:4413,8'
          Dst:             cond_read_list
        - Src:             'policydb.c:4415,7'
          Dst:             role_trans_read
        - Src:             'policydb.c:4417,7'
          Dst:             role_allow_read
        - Src:             'policydb.c:4420,7'
          Dst:             filename_trans_read
        - Src:             'policydb.c:4424,3'
          Dst:             avrule_block_destroy
        - Src:             'policydb.c:4426,7'
          Dst:             avrule_block_read
        - Src:             'policydb.c:4434,14'
          Dst:             next_entry
        - Src:             'policydb.c:4439,9'
          Dst:             scope_read
        - Src:             'policydb.c:4446,6'
          Dst:             policydb_index_decls
        - Src:             'policydb.c:4449,6'
          Dst:             policydb_index_classes
        - Src:             'policydb.c:4456,22'
          Dst:             policydb_string_to_av_perm
        - Src:             'policydb.c:4459,4'
          Dst:             policydb_string_to_av_perm
        - Src:             'policydb.c:4466,6'
          Dst:             policydb_index_others
        - Src:             'policydb.c:4469,6'
          Dst:             ocontext_read
        - Src:             'policydb.c:4473,6'
          Dst:             genfs_read
        - Src:             'policydb.c:4482,7'
          Dst:             range_read
        - Src:             'policydb.c:4488,22'
          Dst:             calloc
        - Src:             'policydb.c:4489,22'
          Dst:             calloc
        - Src:             'policydb.c:4494,9'
          Dst:             ebitmap_read
        - Src:             'policydb.c:4496,5'
          Dst:             ebitmap_start
        - Src:             'policydb.c:4496,5'
          Dst:             ebitmap_node_get_bit
        - Src:             'policydb.c:4508,10'
          Dst:             ebitmap_set_bit
        - Src:             'policydb.c:4496,5'
          Dst:             ebitmap_next
        - Src:             'policydb.c:4513,36'
          Dst:             ebitmap_set_bit
        - Src:             'policydb.c:4516,9'
          Dst:             ebitmap_set_bit
        - Src:             'policydb.c:4522,6'
          Dst:             policydb_validate
    - functionName:    policydb_lookup_compat
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 546
      functionLinenumberEnd: 558
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          80
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    policydb_index_classes
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1199
      functionLinenumberEnd: 1225
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          128
      EdgeCount:       19
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - class_index
        - common_index
        - hashtab_map
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1202,6'
          Dst:             calloc
        - Src:             'policydb.c:1206,6'
          Dst:             hashtab_map
        - Src:             'policydb.c:1206,6'
          Dst:             common_index
        - Src:             'policydb.c:1211,6'
          Dst:             calloc
        - Src:             'policydb.c:1217,6'
          Dst:             calloc
        - Src:             'policydb.c:1221,6'
          Dst:             hashtab_map
        - Src:             'policydb.c:1221,6'
          Dst:             class_index
    - functionName:    policydb_index_others
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1286
      functionLinenumberEnd: 1350
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          444
      EdgeCount:       75
      CyclomaticComplexity: 20
      functionsReached:
        - calloc
        - cond_init_bool_indexes
        - hashtab_map
        - policydb_role_cache
        - policydb_user_cache
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1310,6'
          Dst:             calloc
        - Src:             'policydb.c:1316,6'
          Dst:             calloc
        - Src:             'policydb.c:1322,6'
          Dst:             calloc
        - Src:             'policydb.c:1326,6'
          Dst:             cond_init_bool_indexes
        - Src:             'policydb.c:1334,8'
          Dst:             calloc
        - Src:             'policydb.c:1337,8'
          Dst:             hashtab_map
        - Src:             'policydb.c:1343,6'
          Dst:             hashtab_map
        - Src:             'policydb.c:1343,6'
          Dst:             policydb_role_cache
        - Src:             'policydb.c:1346,6'
          Dst:             hashtab_map
        - Src:             'policydb.c:1346,6'
          Dst:             policydb_user_cache
    - functionName:    policydb_role_cache
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1001
      functionLinenumberEnd: 1014
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - type_set_expand
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1008,2'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:1009,6'
          Dst:             type_set_expand
    - functionName:    type_set_or
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1828
      functionLinenumberEnd: 1842
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          72
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_or
        - type_set_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1829,2'
          Dst:             type_set_init
        - Src:             'policydb.c:1831,6'
          Dst:             ebitmap_or
        - Src:             'policydb.c:1834,6'
          Dst:             ebitmap_or
    - functionName:    type_set_or_eq
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1858
      functionLinenumberEnd: 1869
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - type_set_cpy
        - type_set_destroy
        - type_set_or
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1862,6'
          Dst:             type_set_or
        - Src:             'policydb.c:1864,2'
          Dst:             type_set_destroy
        - Src:             'policydb.c:1865,8'
          Dst:             type_set_cpy
        - Src:             'policydb.c:1866,2'
          Dst:             type_set_destroy
    - functionName:    type_set_cpy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1845
      functionLinenumberEnd: 1855
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_cpy
        - type_set_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1846,2'
          Dst:             type_set_init
        - Src:             'policydb.c:1849,6'
          Dst:             ebitmap_cpy
        - Src:             'policydb.c:1851,6'
          Dst:             ebitmap_cpy
    - functionName:    symtab_insert
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1724
      functionLinenumberEnd: 1825
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          406
      EdgeCount:       86
      CyclomaticComplexity: 24
      functionsReached:
        - __assert_fail
        - add_i_to_a
        - hashtab_insert
        - hashtab_search
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1735,7'
          Dst:             hashtab_insert
        - Src:             'policydb.c:1750,24'
          Dst:             hashtab_search
        - Src:             'policydb.c:1752,24'
          Dst:             strdup
        - Src:             'policydb.c:1763,8'
          Dst:             hashtab_insert
        - Src:             'policydb.c:1782,6'
          Dst:             hashtab_search
        - Src:             'policydb.c:1784,4'
          Dst:             __assert_fail
        - Src:             'policydb.c:1805,6'
          Dst:             add_i_to_a
    - functionName:    policydb_load_isids
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1679
      functionLinenumberEnd: 1696
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          146
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - sepol_sidtab_init
        - sepol_sidtab_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1682,6'
          Dst:             sepol_sidtab_init
        - Src:             'policydb.c:1689,7'
          Dst:             sepol_sidtab_insert
    - functionName:    range_tr_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1495
      functionLinenumberEnd: 1501
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ebitmap_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1498,2'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:1499,2'
          Dst:             ebitmap_destroy
    - functionName:    filenametr_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1478
      functionLinenumberEnd: 1490
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          53
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1486,3'
          Dst:             ebitmap_destroy
    - functionName:    ocontext_xen_free
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1527
      functionLinenumberEnd: 1543
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          85
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - context_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1536,4'
          Dst:             context_destroy
        - Src:             'policydb.c:1537,4'
          Dst:             context_destroy
    - functionName:    ocontext_selinux_free
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1505
      functionLinenumberEnd: 1524
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          115
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - context_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1514,4'
          Dst:             context_destroy
        - Src:             'policydb.c:1515,4'
          Dst:             context_destroy
    - functionName:    symtabs_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1654
      functionLinenumberEnd: 1660
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          49
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - hashtab_destroy
        - hashtab_map
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1657,9'
          Dst:             hashtab_map
        - Src:             'policydb.c:1658,3'
          Dst:             hashtab_destroy
    - functionName:    policydb_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1549
      functionLinenumberEnd: 1651
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         75
      ICount:          478
      EdgeCount:       97
      CyclomaticComplexity: 24
      functionsReached:
        - avrule_block_list_destroy
        - avtab_destroy
        - cond_policydb_destroy
        - context_destroy
        - ebitmap_destroy
        - filenametr_destroy
        - hashtab_destroy
        - hashtab_map
        - ocontext_selinux_free
        - ocontext_xen_free
        - range_tr_destroy
        - scope_destroy
        - symtabs_destroy
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1559,2'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:1561,2'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:1563,2'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:1565,2'
          Dst:             symtabs_destroy
        - Src:             'policydb.c:1583,9'
          Dst:             hashtab_map
        - Src:             'policydb.c:1583,9'
          Dst:             scope_destroy
        - Src:             'policydb.c:1584,3'
          Dst:             hashtab_destroy
        - Src:             'policydb.c:1586,2'
          Dst:             avrule_block_list_destroy
        - Src:             'policydb.c:1590,2'
          Dst:             avtab_destroy
        - Src:             'policydb.c:1593,3'
          Dst:             ocontext_selinux_free
        - Src:             'policydb.c:1595,3'
          Dst:             ocontext_xen_free
        - Src:             'policydb.c:1604,4'
          Dst:             context_destroy
        - Src:             'policydb.c:1612,2'
          Dst:             cond_policydb_destroy
        - Src:             'policydb.c:1630,2'
          Dst:             hashtab_map
        - Src:             'policydb.c:1630,2'
          Dst:             filenametr_destroy
        - Src:             'policydb.c:1631,2'
          Dst:             hashtab_destroy
        - Src:             'policydb.c:1633,2'
          Dst:             hashtab_map
        - Src:             'policydb.c:1633,2'
          Dst:             range_tr_destroy
        - Src:             'policydb.c:1634,2'
          Dst:             hashtab_destroy
        - Src:             'policydb.c:1638,4'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:1645,4'
          Dst:             ebitmap_destroy
    - functionName:    policydb_index_bools
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1228
      functionLinenumberEnd: 1239
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          67
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - cond_index_bool
        - cond_init_bool_indexes
        - hashtab_map
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1230,6'
          Dst:             cond_init_bool_indexes
        - Src:             'policydb.c:1233,6'
          Dst:             calloc
        - Src:             'policydb.c:1236,6'
          Dst:             hashtab_map
        - Src:             'policydb.c:1236,6'
          Dst:             cond_index_bool
    - functionName:    rangetr_cmp
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 910
      functionLinenumberEnd: 926
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          105
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rangetr_hash
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 902
      functionLinenumberEnd: 905
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    filenametr_cmp
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 884
      functionLinenumberEnd: 899
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          98
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:897,9'
          Dst:             strcmp
    - functionName:    filenametr_hash
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 868
      functionLinenumberEnd: 879
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - partial_name_hash
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:878,10'
          Dst:             partial_name_hash
    - functionName:    roles_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 825
      functionLinenumberEnd: 857
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          83
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
        - strdup
        - symtab_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:830,9'
          Dst:             calloc
        - Src:             'policydb.c:835,8'
          Dst:             strdup
        - Src:             'policydb.c:840,7'
          Dst:             symtab_insert
    - functionName:    policydb_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 932
      functionLinenumberEnd: 996
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         36
      ICount:          242
      EdgeCount:       48
      CyclomaticComplexity: 14
      functionsReached:
        - avrule_block_create
        - avrule_block_list_destroy
        - avrule_decl_create
        - avtab_init
        - cond_policydb_init
        - ebitmap_init
        - filenametr_cmp
        - filenametr_hash
        - hashtab_create
        - hashtab_destroy
        - rangetr_cmp
        - rangetr_hash
        - roles_init
        - symtab_init
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:939,8'
          Dst:             symtab_init
        - Src:             'policydb.c:946,7'
          Dst:             symtab_init
        - Src:             'policydb.c:950,19'
          Dst:             avrule_block_create
        - Src:             'policydb.c:951,32'
          Dst:             avrule_decl_create
        - Src:             'policydb.c:956,7'
          Dst:             avtab_init
        - Src:             'policydb.c:960,7'
          Dst:             roles_init
        - Src:             'policydb.c:964,7'
          Dst:             cond_policydb_init
        - Src:             'policydb.c:968,22'
          Dst:             hashtab_create
        - Src:             'policydb.c:968,22'
          Dst:             filenametr_hash
        - Src:             'policydb.c:968,22'
          Dst:             filenametr_cmp
        - Src:             'policydb.c:974,16'
          Dst:             hashtab_create
        - Src:             'policydb.c:974,16'
          Dst:             rangetr_hash
        - Src:             'policydb.c:974,16'
          Dst:             rangetr_cmp
        - Src:             'policydb.c:980,2'
          Dst:             ebitmap_init
        - Src:             'policydb.c:981,2'
          Dst:             ebitmap_init
        - Src:             'policydb.c:982,2'
          Dst:             ebitmap_init
        - Src:             'policydb.c:988,2'
          Dst:             hashtab_destroy
        - Src:             'policydb.c:989,2'
          Dst:             hashtab_destroy
        - Src:             'policydb.c:991,3'
          Dst:             hashtab_destroy
        - Src:             'policydb.c:992,3'
          Dst:             hashtab_destroy
        - Src:             'policydb.c:994,2'
          Dst:             avrule_block_list_destroy
    - functionName:    avrule_list_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 804
      functionLinenumberEnd: 817
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - avrule_destroy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:814,3'
          Dst:             avrule_destroy
    - functionName:    range_trans_rule_list_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 794
      functionLinenumberEnd: 801
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - range_trans_rule_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:797,3'
          Dst:             range_trans_rule_destroy
    - functionName:    role_allow_rule_list_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 767
      functionLinenumberEnd: 774
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - role_allow_rule_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:770,3'
          Dst:             role_allow_rule_destroy
    - functionName:    role_allow_rule_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 761
      functionLinenumberEnd: 764
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - role_set_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:762,2'
          Dst:             role_set_destroy
        - Src:             'policydb.c:763,2'
          Dst:             role_set_destroy
    - functionName:    filename_trans_rule_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 734
      functionLinenumberEnd: 740
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - type_set_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:737,2'
          Dst:             type_set_destroy
        - Src:             'policydb.c:738,2'
          Dst:             type_set_destroy
    - functionName:    filename_trans_rule_list_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 743
      functionLinenumberEnd: 751
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - filename_trans_rule_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:747,3'
          Dst:             filename_trans_rule_destroy
    - functionName:    role_trans_rule_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 708
      functionLinenumberEnd: 714
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - role_set_destroy
        - type_set_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:710,3'
          Dst:             role_set_destroy
        - Src:             'policydb.c:711,3'
          Dst:             type_set_destroy
        - Src:             'policydb.c:712,3'
          Dst:             ebitmap_destroy
    - functionName:    role_trans_rule_list_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 717
      functionLinenumberEnd: 724
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - role_trans_rule_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:720,3'
          Dst:             role_trans_rule_destroy
    - functionName:    user_datum_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 620
      functionLinenumberEnd: 628
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ebitmap_init
        - mls_level_init
        - mls_range_init
        - mls_semantic_level_init
        - mls_semantic_range_init
        - role_set_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:622,2'
          Dst:             role_set_init
        - Src:             'policydb.c:623,2'
          Dst:             mls_semantic_range_init
        - Src:             'policydb.c:624,2'
          Dst:             mls_semantic_level_init
        - Src:             'policydb.c:625,2'
          Dst:             ebitmap_init
        - Src:             'policydb.c:626,2'
          Dst:             mls_range_init
        - Src:             'policydb.c:627,2'
          Dst:             mls_level_init
    - functionName:    type_datum_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 607
      functionLinenumberEnd: 610
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ebitmap_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:609,2'
          Dst:             ebitmap_init
    - functionName:    role_datum_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 588
      functionLinenumberEnd: 594
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ebitmap_init
        - type_set_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:590,2'
          Dst:             ebitmap_init
        - Src:             'policydb.c:591,2'
          Dst:             type_set_init
        - Src:             'policydb.c:592,2'
          Dst:             ebitmap_init
        - Src:             'policydb.c:593,2'
          Dst:             ebitmap_init
    - functionName:    validate_range_transition
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1645
      functionLinenumberEnd: 1664
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          92
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - validate_mls_range
        - validate_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1651,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1653,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1655,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1657,6'
          Dst:             validate_mls_range
    - functionName:    validate_value
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          56
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ebitmap_get_bit
      functionUses:    38
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:110,6'
          Dst:             ebitmap_get_bit
    - functionName:    validate_mls_range
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 744
      functionLinenumberEnd: 754
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - validate_mls_level
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:745,6'
          Dst:             validate_mls_level
        - Src:             'policydb_validate.c:747,6'
          Dst:             validate_mls_level
    - functionName:    validate_mls_level
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 693
      functionLinenumberEnd: 705
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          74
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - validate_ebitmap
        - validate_value
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:696,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:698,6'
          Dst:             validate_ebitmap
    - functionName:    validate_ebitmap
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - ebitmap_highest_set_bit
        - ebitmap_match_any
      functionUses:    22
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:121,33'
          Dst:             ebitmap_highest_set_bit
        - Src:             'policydb_validate.c:123,6'
          Dst:             ebitmap_match_any
    - functionName:    validate_bool_datum
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 793
      functionLinenumberEnd: 818
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          129
      EdgeCount:       26
      CyclomaticComplexity: 3
      functionsReached:
        - validate_value
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:797,2'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:805,2'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:794,6'
          Dst:             validate_value
    - functionName:    validate_level_datum
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 708
      functionLinenumberEnd: 734
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          176
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - ebitmap_cmp
        - hashtab_search
        - validate_mls_level
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:715,6'
          Dst:             validate_mls_level
        - Src:             'policydb_validate.c:721,51'
          Dst:             hashtab_search
        - Src:             'policydb_validate.c:725,8'
          Dst:             ebitmap_cmp
    - functionName:    validate_user_datum
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 757
      functionLinenumberEnd: 783
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          218
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - validate_mls_level
        - validate_mls_range
        - validate_mls_semantic_level
        - validate_mls_semantic_range
        - validate_role_set
        - validate_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:758,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:760,6'
          Dst:             validate_role_set
        - Src:             'policydb_validate.c:764,7'
          Dst:             validate_mls_semantic_range
        - Src:             'policydb_validate.c:766,7'
          Dst:             validate_mls_semantic_level
        - Src:             'policydb_validate.c:770,7'
          Dst:             validate_mls_range
        - Src:             'policydb_validate.c:772,7'
          Dst:             validate_mls_level
        - Src:             'policydb_validate.c:775,22'
          Dst:             validate_value
    - functionName:    validate_role_set
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          58
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - validate_ebitmap
      functionUses:    4
      BranchProfiles:
        - Branch String:   'policydb_validate.c:174,2'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:171,6'
          Dst:             validate_ebitmap
    - functionName:    validate_mls_semantic_range
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 680
      functionLinenumberEnd: 690
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - validate_mls_semantic_level
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:681,6'
          Dst:             validate_mls_semantic_level
        - Src:             'policydb_validate.c:683,6'
          Dst:             validate_mls_semantic_level
    - functionName:    validate_mls_semantic_level
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 665
      functionLinenumberEnd: 677
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          75
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - validate_mls_semantic_cat
        - validate_value
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:668,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:670,6'
          Dst:             validate_mls_semantic_cat
    - functionName:    validate_mls_semantic_cat
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 648
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          74
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - validate_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:650,7'
          Dst:             validate_value
        - Src:             'policydb_validate.c:652,7'
          Dst:             validate_value
    - functionName:    validate_types_in_attribute
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 570
      functionLinenumberEnd: 588
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          119
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - validate_ebitmap
        - validate_simpletype
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:574,6'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:578,3'
          Dst:             ebitmap_start
        - Src:             'policydb_validate.c:578,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'policydb_validate.c:579,8'
          Dst:             validate_simpletype
        - Src:             'policydb_validate.c:578,3'
          Dst:             ebitmap_next
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    validate_simpletype
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 550
      functionLinenumberEnd: 567
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - validate_value
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:553,6'
          Dst:             validate_value
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    validate_type_datum
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 591
      functionLinenumberEnd: 638
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          265
      EdgeCount:       62
      CyclomaticComplexity: 12
      functionsReached:
        - validate_simpletype
        - validate_types_in_attribute
        - validate_value
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:597,2'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:620,2'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:592,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:594,23'
          Dst:             validate_value
        - Src:             'policydb_validate.c:602,23'
          Dst:             validate_simpletype
        - Src:             'policydb_validate.c:610,8'
          Dst:             validate_types_in_attribute
    - functionName:    validate_role_datum
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 515
      functionLinenumberEnd: 540
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          173
      EdgeCount:       38
      CyclomaticComplexity: 9
      functionsReached:
        - validate_ebitmap
        - validate_type_set
        - validate_value
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:527,2'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:516,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:518,6'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:520,6'
          Dst:             validate_type_set
        - Src:             'policydb_validate.c:522,22'
          Dst:             validate_value
        - Src:             'policydb_validate.c:524,6'
          Dst:             validate_ebitmap
    - functionName:    validate_type_set
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          69
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - validate_ebitmap
      functionUses:    9
      BranchProfiles:
        - Branch String:   'policydb_validate.c:139,2'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:134,6'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:136,6'
          Dst:             validate_ebitmap
    - functionName:    validate_empty_type_set
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    validate_constraint_nodes
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 379
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         142
      ICount:          661
      EdgeCount:       174
      CyclomaticComplexity: 34
      functionsReached:
        - validate_ebitmap
        - validate_empty_type_set
        - validate_type_set
      functionUses:    2
      BranchProfiles:
        - Branch String:   'policydb_validate.c:273,5'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:281,5'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:315,5'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:329,5'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:344,5'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:269,10'
          Dst:             validate_empty_type_set
        - Src:             'policydb_validate.c:285,10'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:291,10'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:297,10'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:299,10'
          Dst:             validate_type_set
        - Src:             'policydb_validate.c:312,9'
          Dst:             validate_empty_type_set
        - Src:             'policydb_validate.c:365,9'
          Dst:             validate_empty_type_set
    - functionName:    validate_class_datum
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         71
      ICount:          371
      EdgeCount:       81
      CyclomaticComplexity: 12
      functionsReached:
        - validate_common_datum
        - validate_constraint_nodes
        - validate_permission_symtab
        - validate_value
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:459,2'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:468,2'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:477,2'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:486,2'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:442,37'
          Dst:             validate_value
        - Src:             'policydb_validate.c:444,25'
          Dst:             validate_common_datum
        - Src:             'policydb_validate.c:452,6'
          Dst:             validate_permission_symtab
        - Src:             'policydb_validate.c:454,6'
          Dst:             validate_constraint_nodes
        - Src:             'policydb_validate.c:456,6'
          Dst:             validate_constraint_nodes
    - functionName:    validate_common_datum
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          142
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - validate_permission_symtab
        - validate_value
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:417,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:423,6'
          Dst:             validate_permission_symtab
    - functionName:    validate_permission_symtab
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 400
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          96
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - hashtab_map
        - perm_visit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:405,6'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:405,6'
          Dst:             perm_visit
    - functionName:    perm_visit
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 382
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          105
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - value_isvalid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:386,7'
          Dst:             value_isvalid
        - Src:             'policydb_validate.c:389,37'
          Dst:             value_isvalid
    - functionName:    value_isvalid
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          34
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    16
      BranchProfiles:  []
      Callsites:       []
    - functionName:    validate_bool_datum_wrapper
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 821
      functionLinenumberEnd: 824
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - validate_bool_datum
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:824,9'
          Dst:             validate_bool_datum
    - functionName:    validate_datum
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 870
      functionLinenumberEnd: 874
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - value_isvalid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:874,10'
          Dst:             value_isvalid
    - functionName:    validate_level_datum_wrapper
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 737
      functionLinenumberEnd: 740
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - validate_level_datum
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:740,9'
          Dst:             validate_level_datum
    - functionName:    validate_user_datum_wrapper
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 786
      functionLinenumberEnd: 789
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - validate_user_datum
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:789,9'
          Dst:             validate_user_datum
    - functionName:    validate_type_datum_wrapper
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 641
      functionLinenumberEnd: 644
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - validate_type_datum
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:644,9'
          Dst:             validate_type_datum
    - functionName:    validate_role_datum_wrapper
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 546
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - validate_role_datum
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:546,9'
          Dst:             validate_role_datum
    - functionName:    validate_class_datum_wrapper
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 508
      functionLinenumberEnd: 511
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - validate_class_datum
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:511,9'
          Dst:             validate_class_datum
    - functionName:    validate_common_datum_wrapper
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 434
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - validate_common_datum
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:437,9'
          Dst:             validate_common_datum
    - functionName:    validate_scope
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          86
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - value_isvalid
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:195,2'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:204,8'
          Dst:             value_isvalid
    - functionName:    validate_context
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1324
      functionLinenumberEnd: 1335
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          90
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - validate_mls_range
        - validate_value
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1325,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1327,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1329,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1331,13'
          Dst:             validate_mls_range
    - functionName:    validate_filename_trans_rules
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1537
      functionLinenumberEnd: 1566
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          181
      EdgeCount:       42
      CyclomaticComplexity: 10
      functionsReached:
        - validate_simpletype
        - validate_type_set
        - validate_value
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:1549,3'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:1539,7'
          Dst:             validate_type_set
        - Src:             'policydb_validate.c:1541,7'
          Dst:             validate_type_set
        - Src:             'policydb_validate.c:1543,7'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1545,7'
          Dst:             validate_simpletype
    - functionName:    validate_scope_index
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1504
      functionLinenumberEnd: 1533
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          209
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - validate_ebitmap
        - validate_value
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1509,6'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:1511,6'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:1513,6'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:1515,6'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:1517,6'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:1519,6'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:1521,6'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:1525,7'
          Dst:             validate_value
    - functionName:    validate_range_trans_rules
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1484
      functionLinenumberEnd: 1501
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          140
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - validate_ebitmap
        - validate_mls_semantic_range
        - validate_type_set
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1486,7'
          Dst:             validate_type_set
        - Src:             'policydb_validate.c:1488,7'
          Dst:             validate_type_set
        - Src:             'policydb_validate.c:1490,7'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:1492,7'
          Dst:             validate_mls_semantic_range
    - functionName:    validate_role_allow_rules
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1468
      functionLinenumberEnd: 1481
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          114
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - validate_role_set
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1470,7'
          Dst:             validate_role_set
        - Src:             'policydb_validate.c:1472,7'
          Dst:             validate_role_set
    - functionName:    validate_role_trans_rules
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1448
      functionLinenumberEnd: 1465
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          139
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - validate_ebitmap
        - validate_role_set
        - validate_type_set
        - validate_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1450,7'
          Dst:             validate_role_set
        - Src:             'policydb_validate.c:1452,7'
          Dst:             validate_type_set
        - Src:             'policydb_validate.c:1454,7'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:1456,7'
          Dst:             validate_value
    - functionName:    validate_filename_trans
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1285
      functionLinenumberEnd: 1309
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          116
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - validate_ebitmap
        - validate_simpletype
        - validate_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1292,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1294,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1299,7'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:1301,7'
          Dst:             validate_simpletype
    - functionName:    validate_bool_id_array
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1142
      functionLinenumberEnd: 1158
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          117
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - validate_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1149,7'
          Dst:             validate_value
    - functionName:    validate_avrules
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1058
      functionLinenumberEnd: 1139
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         93
      ICount:          436
      EdgeCount:       110
      CyclomaticComplexity: 19
      functionsReached:
        - validate_simpletype
        - validate_type_set
        - validate_value
      functionUses:    3
      BranchProfiles:
        - Branch String:   'policydb_validate.c:1067,3'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:1100,4'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:1111,3'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:1121,4'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:1062,7'
          Dst:             validate_type_set
        - Src:             'policydb_validate.c:1064,7'
          Dst:             validate_type_set
        - Src:             'policydb_validate.c:1089,8'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1091,45'
          Dst:             validate_simpletype
    - functionName:    validate_cond_av_list
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1041
      functionLinenumberEnd: 1055
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          133
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - validate_avtab_key_and_datum
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1047,8'
          Dst:             validate_avtab_key_and_datum
    - functionName:    validate_avtab_key_and_datum
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 995
      functionLinenumberEnd: 1026
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          200
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached:
        - validate_access_vector
        - validate_avtab_key
        - validate_simpletype
        - validate_xperms
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:998,6'
          Dst:             validate_avtab_key
        - Src:             'policydb_validate.c:1007,7'
          Dst:             validate_access_vector
        - Src:             'policydb_validate.c:1011,37'
          Dst:             validate_simpletype
        - Src:             'policydb_validate.c:1018,20'
          Dst:             validate_access_vector
        - Src:             'policydb_validate.c:1021,7'
          Dst:             validate_xperms
    - functionName:    validate_avtab_key
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 917
      functionLinenumberEnd: 956
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          242
      EdgeCount:       61
      CyclomaticComplexity: 14
      functionsReached:
        - validate_simpletype
        - validate_value
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:932,2'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:919,7'
          Dst:             validate_simpletype
        - Src:             'policydb_validate.c:921,7'
          Dst:             validate_simpletype
        - Src:             'policydb_validate.c:924,7'
          Dst:             validate_value
        - Src:             'policydb_validate.c:926,7'
          Dst:             validate_value
        - Src:             'policydb_validate.c:930,6'
          Dst:             validate_value
    - functionName:    validate_access_vector
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 977
      functionLinenumberEnd: 992
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          118
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    validate_xperms
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 959
      functionLinenumberEnd: 973
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          39
      EdgeCount:       16
      CyclomaticComplexity: 9
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:960,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    validate_cond_expr
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1161
      functionLinenumberEnd: 1206
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          211
      EdgeCount:       53
      CyclomaticComplexity: 12
      functionsReached:
        - validate_value
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:1168,3'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:1170,8'
          Dst:             validate_value
    - functionName:    create_gap_ebitmap
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - ebitmap_init
        - ebitmap_set_bit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:38,2'
          Dst:             ebitmap_init
        - Src:             'policydb_validate.c:42,8'
          Dst:             ebitmap_set_bit
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    validate_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - create_gap_ebitmap
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:53,6'
          Dst:             create_gap_ebitmap
    - functionName:    validate_array_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1788
      functionLinenumberEnd: 1794
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1792,3'
          Dst:             ebitmap_destroy
    - functionName:    validate_attrtype_map
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1699
      functionLinenumberEnd: 1716
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          134
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - validate_ebitmap
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1705,8'
          Dst:             validate_ebitmap
    - functionName:    validate_typeattr_map
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1679
      functionLinenumberEnd: 1696
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          134
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - validate_ebitmap
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1685,8'
          Dst:             validate_ebitmap
    - functionName:    validate_range_transitions
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1667
      functionLinenumberEnd: 1676
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - hashtab_map
        - validate_range_transition
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1670,6'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:1670,6'
          Dst:             validate_range_transition
    - functionName:    validate_neveraudit
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1628
      functionLinenumberEnd: 1642
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          137
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - validate_simpletype
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1632,2'
          Dst:             ebitmap_start
        - Src:             'policydb_validate.c:1632,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'policydb_validate.c:1633,7'
          Dst:             validate_simpletype
        - Src:             'policydb_validate.c:1632,2'
          Dst:             ebitmap_next
    - functionName:    validate_permissives
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1611
      functionLinenumberEnd: 1625
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          137
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - validate_simpletype
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1615,2'
          Dst:             ebitmap_start
        - Src:             'policydb_validate.c:1615,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'policydb_validate.c:1616,7'
          Dst:             validate_simpletype
        - Src:             'policydb_validate.c:1615,2'
          Dst:             ebitmap_next
    - functionName:    validate_datum_array_entries
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 878
      functionLinenumberEnd: 910
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          205
      EdgeCount:       43
      CyclomaticComplexity: 13
      functionsReached:
        - hashtab_map
        - validate_bool_datum_wrapper
        - validate_class_datum_wrapper
        - validate_common_datum_wrapper
        - validate_datum
        - validate_level_datum_wrapper
        - validate_role_datum_wrapper
        - validate_type_datum_wrapper
        - validate_user_datum_wrapper
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:881,6'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:881,6'
          Dst:             validate_common_datum_wrapper
        - Src:             'policydb_validate.c:884,6'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:884,6'
          Dst:             validate_class_datum_wrapper
        - Src:             'policydb_validate.c:887,6'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:887,6'
          Dst:             validate_role_datum_wrapper
        - Src:             'policydb_validate.c:890,6'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:890,6'
          Dst:             validate_type_datum_wrapper
        - Src:             'policydb_validate.c:893,6'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:893,6'
          Dst:             validate_user_datum_wrapper
        - Src:             'policydb_validate.c:896,16'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:896,16'
          Dst:             validate_level_datum_wrapper
        - Src:             'policydb_validate.c:899,6'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:899,6'
          Dst:             validate_datum
        - Src:             'policydb_validate.c:902,6'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:902,6'
          Dst:             validate_bool_datum_wrapper
    - functionName:    validate_datum_array_gaps
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 828
      functionLinenumberEnd: 867
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          341
      EdgeCount:       66
      CyclomaticComplexity: 17
      functionsReached:
        - ebitmap_get_bit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:832,7'
          Dst:             ebitmap_get_bit
        - Src:             'policydb_validate.c:837,7'
          Dst:             ebitmap_get_bit
        - Src:             'policydb_validate.c:847,8'
          Dst:             ebitmap_get_bit
        - Src:             'policydb_validate.c:853,7'
          Dst:             ebitmap_get_bit
        - Src:             'policydb_validate.c:858,7'
          Dst:             ebitmap_get_bit
    - functionName:    validate_scopes
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          139
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - hashtab_map
        - validate_scope
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:227,7'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:227,7'
          Dst:             validate_scope
    - functionName:    validate_genfs
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1420
      functionLinenumberEnd: 1441
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          164
      EdgeCount:       38
      CyclomaticComplexity: 10
      functionsReached:
        - validate_context
        - validate_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1426,8'
          Dst:             validate_context
        - Src:             'policydb_validate.c:1428,26'
          Dst:             validate_value
    - functionName:    validate_ocontexts
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1338
      functionLinenumberEnd: 1417
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         86
      ICount:          432
      EdgeCount:       106
      CyclomaticComplexity: 22
      functionsReached:
        - validate_context
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:1348,5'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:1365,6'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:1388,5'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:1344,8'
          Dst:             validate_context
        - Src:             'policydb_validate.c:1355,10'
          Dst:             validate_context
    - functionName:    validate_avrule_blocks
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1569
      functionLinenumberEnd: 1608
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          248
      EdgeCount:       56
      CyclomaticComplexity: 14
      functionsReached:
        - validate_avrules
        - validate_cond_list
        - validate_datum_array_entries
        - validate_filename_trans_rules
        - validate_range_trans_rules
        - validate_role_allow_rules
        - validate_role_trans_rules
        - validate_scope_index
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:1594,3'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:1574,8'
          Dst:             validate_cond_list
        - Src:             'policydb_validate.c:1576,8'
          Dst:             validate_avrules
        - Src:             'policydb_validate.c:1578,8'
          Dst:             validate_role_trans_rules
        - Src:             'policydb_validate.c:1580,8'
          Dst:             validate_role_allow_rules
        - Src:             'policydb_validate.c:1582,8'
          Dst:             validate_range_trans_rules
        - Src:             'policydb_validate.c:1584,8'
          Dst:             validate_scope_index
        - Src:             'policydb_validate.c:1586,8'
          Dst:             validate_scope_index
        - Src:             'policydb_validate.c:1588,8'
          Dst:             validate_filename_trans_rules
        - Src:             'policydb_validate.c:1590,8'
          Dst:             validate_datum_array_entries
    - functionName:    validate_cond_list
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1209
      functionLinenumberEnd: 1246
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          217
      EdgeCount:       46
      CyclomaticComplexity: 9
      functionsReached:
        - validate_avrules
        - validate_bool_id_array
        - validate_cond_av_list
        - validate_cond_expr
      functionUses:    2
      BranchProfiles:
        - Branch String:   'policydb_validate.c:1224,3'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:1232,3'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:1211,7'
          Dst:             validate_cond_expr
        - Src:             'policydb_validate.c:1213,7'
          Dst:             validate_cond_av_list
        - Src:             'policydb_validate.c:1215,7'
          Dst:             validate_cond_av_list
        - Src:             'policydb_validate.c:1217,7'
          Dst:             validate_avrules
        - Src:             'policydb_validate.c:1219,7'
          Dst:             validate_avrules
        - Src:             'policydb_validate.c:1221,7'
          Dst:             validate_bool_id_array
    - functionName:    validate_filename_trans_hashtab
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1312
      functionLinenumberEnd: 1321
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - hashtab_map
        - validate_filename_trans
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1315,6'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:1315,6'
          Dst:             validate_filename_trans
    - functionName:    validate_role_allows
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1269
      functionLinenumberEnd: 1282
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          116
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - validate_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1271,7'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1273,7'
          Dst:             validate_value
    - functionName:    validate_role_transes
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1249
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          142
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - validate_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1251,7'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1253,7'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1255,7'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1257,7'
          Dst:             validate_value
    - functionName:    validate_avtab
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1029
      functionLinenumberEnd: 1038
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - avtab_map
        - validate_avtab_key_and_datum
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1032,6'
          Dst:             avtab_map
        - Src:             'policydb_validate.c:1032,6'
          Dst:             validate_avtab_key_and_datum
    - functionName:    validate_policycaps
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1771
      functionLinenumberEnd: 1785
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          132
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - sepol_polcap_getname
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1775,2'
          Dst:             ebitmap_start
        - Src:             'policydb_validate.c:1775,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'policydb_validate.c:1776,8'
          Dst:             sepol_polcap_getname
        - Src:             'policydb_validate.c:1775,2'
          Dst:             ebitmap_next
    - functionName:    validate_properties
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1719
      functionLinenumberEnd: 1768
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         55
      ICount:          246
      EdgeCount:       61
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:1720,2'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:1738,2'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:1746,2'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:1754,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    validate_array_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          227
      EdgeCount:       40
      CyclomaticComplexity: 13
      functionsReached:
        - ebitmap_init
        - validate_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:61,6'
          Dst:             validate_init
        - Src:             'policydb_validate.c:63,6'
          Dst:             validate_init
        - Src:             'policydb_validate.c:65,6'
          Dst:             validate_init
        - Src:             'policydb_validate.c:68,7'
          Dst:             validate_init
        - Src:             'policydb_validate.c:77,3'
          Dst:             ebitmap_init
        - Src:             'policydb_validate.c:79,6'
          Dst:             validate_init
        - Src:             'policydb_validate.c:81,6'
          Dst:             validate_init
        - Src:             'policydb_validate.c:83,6'
          Dst:             validate_init
        - Src:             'policydb_validate.c:85,6'
          Dst:             validate_init
    - functionName:    policydb_validate
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1800
      functionLinenumberEnd: 1868
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         60
      ICount:          345
      EdgeCount:       84
      CyclomaticComplexity: 26
      functionsReached:
        - validate_array_destroy
        - validate_array_init
        - validate_attrtype_map
        - validate_avrule_blocks
        - validate_avtab
        - validate_cond_list
        - validate_datum_array_entries
        - validate_datum_array_gaps
        - validate_filename_trans_hashtab
        - validate_genfs
        - validate_neveraudit
        - validate_ocontexts
        - validate_permissives
        - validate_policycaps
        - validate_properties
        - validate_range_transitions
        - validate_role_allows
        - validate_role_transes
        - validate_scopes
        - validate_typeattr_map
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1803,6'
          Dst:             validate_array_init
        - Src:             'policydb_validate.c:1806,6'
          Dst:             validate_properties
        - Src:             'policydb_validate.c:1809,6'
          Dst:             validate_policycaps
        - Src:             'policydb_validate.c:1813,7'
          Dst:             validate_avtab
        - Src:             'policydb_validate.c:1816,8'
          Dst:             validate_cond_list
        - Src:             'policydb_validate.c:1818,7'
          Dst:             validate_role_transes
        - Src:             'policydb_validate.c:1820,7'
          Dst:             validate_role_allows
        - Src:             'policydb_validate.c:1823,8'
          Dst:             validate_filename_trans_hashtab
        - Src:             'policydb_validate.c:1826,7'
          Dst:             validate_avrule_blocks
        - Src:             'policydb_validate.c:1830,6'
          Dst:             validate_ocontexts
        - Src:             'policydb_validate.c:1833,6'
          Dst:             validate_genfs
        - Src:             'policydb_validate.c:1836,6'
          Dst:             validate_scopes
        - Src:             'policydb_validate.c:1839,6'
          Dst:             validate_datum_array_gaps
        - Src:             'policydb_validate.c:1842,6'
          Dst:             validate_datum_array_entries
        - Src:             'policydb_validate.c:1845,6'
          Dst:             validate_permissives
        - Src:             'policydb_validate.c:1848,6'
          Dst:             validate_neveraudit
        - Src:             'policydb_validate.c:1851,6'
          Dst:             validate_range_transitions
        - Src:             'policydb_validate.c:1854,6'
          Dst:             validate_typeattr_map
        - Src:             'policydb_validate.c:1857,6'
          Dst:             validate_attrtype_map
        - Src:             'policydb_validate.c:1860,2'
          Dst:             validate_array_destroy
        - Src:             'policydb_validate.c:1866,2'
          Dst:             validate_array_destroy
    - functionName:    mls_level_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_cpy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:81,6'
          Dst:             ebitmap_cpy
    - functionName:    mls_range_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - mls_level_cpy
        - mls_level_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:125,6'
          Dst:             mls_level_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:128,6'
          Dst:             mls_level_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:134,2'
          Dst:             mls_level_destroy
    - functionName:    mls_level_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - mls_level_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:98,2'
          Dst:             ebitmap_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:99,2'
          Dst:             mls_level_init
    - functionName:    mls_level_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_context_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_range_cpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:49,6'
          Dst:             mls_range_cpy
    - functionName:    convert_context_handle_invalid_context
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1604
      functionLinenumberEnd: 1616
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          73
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - context_to_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1611,3'
          Dst:             context_to_string
    - functionName:    context_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_context_cpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:126,9'
          Dst:             mls_context_cpy
    - functionName:    validate_perm
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1527
      functionLinenumberEnd: 1544
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          133
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - hashtab_search
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1534,31'
          Dst:             hashtab_search
    - functionName:    compute_sid_handle_invalid_context
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1329
      functionLinenumberEnd: 1347
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          105
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - context_to_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1336,3'
          Dst:             context_to_string
        - Src:             'services.c:1337,3'
          Dst:             context_to_string
        - Src:             'services.c:1338,3'
          Dst:             context_to_string
    - functionName:    context_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_range_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:142,2'
          Dst:             mls_level_init
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:143,2'
          Dst:             mls_level_init
    - functionName:    mls_context_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_range_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:42,2'
          Dst:             mls_range_init
    - functionName:    mls_range_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:148,2'
          Dst:             mls_level_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:149,2'
          Dst:             mls_level_destroy
    - functionName:    mls_context_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_context_init
        - mls_range_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:112,2'
          Dst:             mls_range_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:113,2'
          Dst:             mls_context_init
    - functionName:    type_attribute_bounds_av
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 857
      functionLinenumberEnd: 901
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          137
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - context_struct_compute_av
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:882,2'
          Dst:             context_struct_compute_av
    - functionName:    context_struct_compute_av
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 915
      functionLinenumberEnd: 1027
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         96
      ICount:          647
      EdgeCount:       126
      CyclomaticComplexity: 32
      functionsReached:
        - avtab_search_node
        - avtab_search_node_next
        - cond_compute_av
        - constraint_expr_eval_reason
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - type_attribute_bounds_av
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:950,2'
          Dst:             ebitmap_start
        - Src:             'services.c:950,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'services.c:951,3'
          Dst:             ebitmap_start
        - Src:             'services.c:951,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'services.c:955,9'
          Dst:             avtab_search_node
        - Src:             'services.c:958,9'
          Dst:             avtab_search_node_next
        - Src:             'services.c:969,4'
          Dst:             cond_compute_av
        - Src:             'services.c:951,3'
          Dst:             ebitmap_next
        - Src:             'services.c:950,2'
          Dst:             ebitmap_next
        - Src:             'services.c:987,8'
          Dst:             constraint_expr_eval_reason
        - Src:             'services.c:1024,2'
          Dst:             type_attribute_bounds_av
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    constraint_expr_eval_reason
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 839
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         253
      ICount:          2129
      EdgeCount:       302
      CyclomaticComplexity: 51
      functionsReached:
        - calloc
        - cat_expr_buf
        - ebitmap_get_bit
        - get_class_info
        - get_name_list
        - mls_level_dom
        - mls_level_eq
        - msgcat
        - pop
        - push
        - realloc
        - reallocarray
        - snprintf
        - sprintf
        - strdup
        - strlen
        - strncmp
      functionUses:    2
      BranchProfiles:
        - Branch String:   'services.c:479,3'
          Branch Sides:    []
        - Branch String:   'services.c:513,4'
          Branch Sides:    []
        - Branch String:   'services.c:534,5'
          Branch Sides:    []
        - Branch String:   'services.c:591,5'
          Branch Sides:    []
        - Branch String:   'services.c:627,4'
          Branch Sides:    []
        - Branch String:   'services.c:677,4'
          Branch Sides:    []
      Callsites:
        - Src:             'services.c:434,14'
          Dst:             get_class_info
        - Src:             'services.c:454,20'
          Dst:             reallocarray
        - Src:             'services.c:487,4'
          Dst:             cat_expr_buf
        - Src:             'services.c:497,4'
          Dst:             cat_expr_buf
        - Src:             'services.c:507,4'
          Dst:             cat_expr_buf
        - Src:             'services.c:517,22'
          Dst:             strdup
        - Src:             'services.c:518,22'
          Dst:             strdup
        - Src:             'services.c:523,22'
          Dst:             strdup
        - Src:             'services.c:524,22'
          Dst:             strdup
        - Src:             'services.c:531,22'
          Dst:             strdup
        - Src:             'services.c:532,22'
          Dst:             strdup
        - Src:             'services.c:536,16'
          Dst:             ebitmap_get_bit
        - Src:             'services.c:537,6'
          Dst:             msgcat
        - Src:             'services.c:541,16'
          Dst:             ebitmap_get_bit
        - Src:             'services.c:542,6'
          Dst:             msgcat
        - Src:             'services.c:546,18'
          Dst:             ebitmap_get_bit
        - Src:             'services.c:547,12'
          Dst:             ebitmap_get_bit
        - Src:             'services.c:548,6'
          Dst:             msgcat
        - Src:             'services.c:558,22'
          Dst:             strdup
        - Src:             'services.c:559,22'
          Dst:             strdup
        - Src:             'services.c:564,22'
          Dst:             strdup
        - Src:             'services.c:565,22'
          Dst:             strdup
        - Src:             'services.c:570,22'
          Dst:             strdup
        - Src:             'services.c:571,22'
          Dst:             strdup
        - Src:             'services.c:576,22'
          Dst:             strdup
        - Src:             'services.c:577,22'
          Dst:             strdup
        - Src:             'services.c:582,22'
          Dst:             strdup
        - Src:             'services.c:583,22'
          Dst:             strdup
        - Src:             'services.c:588,22'
          Dst:             strdup
        - Src:             'services.c:589,22'
          Dst:             strdup
        - Src:             'services.c:593,16'
          Dst:             mls_level_eq
        - Src:             'services.c:594,6'
          Dst:             msgcat
        - Src:             'services.c:598,17'
          Dst:             mls_level_eq
        - Src:             'services.c:599,6'
          Dst:             msgcat
        - Src:             'services.c:603,16'
          Dst:             mls_level_dom
        - Src:             'services.c:604,6'
          Dst:             msgcat
        - Src:             'services.c:608,16'
          Dst:             mls_level_dom
        - Src:             'services.c:609,6'
          Dst:             msgcat
        - Src:             'services.c:613,16'
          Dst:             mls_level_dom
        - Src:             'services.c:613,16'
          Dst:             mls_level_dom
        - Src:             'services.c:614,6'
          Dst:             msgcat
        - Src:             'services.c:630,5'
          Dst:             msgcat
        - Src:             'services.c:634,5'
          Dst:             msgcat
        - Src:             'services.c:660,5'
          Dst:             snprintf
        - Src:             'services.c:661,22'
          Dst:             strdup
        - Src:             'services.c:665,5'
          Dst:             snprintf
        - Src:             'services.c:666,22'
          Dst:             strdup
        - Src:             'services.c:670,5'
          Dst:             snprintf
        - Src:             'services.c:671,22'
          Dst:             strdup
        - Src:             'services.c:679,15'
          Dst:             ebitmap_get_bit
        - Src:             'services.c:680,5'
          Dst:             get_name_list
        - Src:             'services.c:684,16'
          Dst:             ebitmap_get_bit
        - Src:             'services.c:685,5'
          Dst:             get_name_list
        - Src:             'services.c:717,16'
          Dst:             calloc
        - Src:             'services.c:726,7'
          Dst:             strncmp
        - Src:             'services.c:726,47'
          Dst:             strncmp
        - Src:             'services.c:728,8'
          Dst:             pop
        - Src:             'services.c:729,12'
          Dst:             strlen
        - Src:             'services.c:730,8'
          Dst:             pop
        - Src:             'services.c:731,12'
          Dst:             strlen
        - Src:             'services.c:742,4'
          Dst:             sprintf
        - Src:             'services.c:744,4'
          Dst:             push
        - Src:             'services.c:748,14'
          Dst:             strncmp
        - Src:             'services.c:749,8'
          Dst:             pop
        - Src:             'services.c:750,12'
          Dst:             strlen
        - Src:             'services.c:760,8'
          Dst:             strncmp
        - Src:             'services.c:761,5'
          Dst:             sprintf
        - Src:             'services.c:764,5'
          Dst:             sprintf
        - Src:             'services.c:766,4'
          Dst:             push
        - Src:             'services.c:770,4'
          Dst:             push
        - Src:             'services.c:774,6'
          Dst:             pop
        - Src:             'services.c:778,2'
          Dst:             sprintf
        - Src:             'services.c:803,11'
          Dst:             snprintf
        - Src:             'services.c:807,22'
          Dst:             realloc
    - functionName:    get_class_info
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 363
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          268
      EdgeCount:       51
      CyclomaticComplexity: 14
      functionsReached:
        - realloc
        - sepol_av_to_string
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:323,19'
          Dst:             realloc
        - Src:             'services.c:334,9'
          Dst:             snprintf
        - Src:             'services.c:341,9'
          Dst:             snprintf
        - Src:             'services.c:350,20'
          Dst:             sepol_av_to_string
        - Src:             'services.c:352,10'
          Dst:             snprintf
        - Src:             'services.c:356,10'
          Dst:             snprintf
    - functionName:    cat_expr_buf
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          126
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - realloc
        - snprintf
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:182,9'
          Dst:             snprintf
        - Src:             'services.c:185,14'
          Dst:             realloc
    - functionName:    msgcat
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - cat_expr_buf
        - snprintf
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:278,3'
          Dst:             snprintf
        - Src:             'services.c:281,3'
          Dst:             snprintf
        - Src:             'services.c:283,2'
          Dst:             cat_expr_buf
    - functionName:    mls_level_eq
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_cmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:104,36'
          Dst:             ebitmap_cmp
    - functionName:    mls_level_dom
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_contains
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:109,36'
          Dst:             ebitmap_contains
    - functionName:    get_name_list
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          352
      EdgeCount:       71
      CyclomaticComplexity: 17
      functionsReached:
        - cat_expr_buf
        - ebitmap_get_bit
        - snprintf
      functionUses:    2
      BranchProfiles:
        - Branch String:   'services.c:247,4'
          Branch Sides:    []
      Callsites:
        - Src:             'services.c:227,8'
          Dst:             ebitmap_get_bit
        - Src:             'services.c:233,2'
          Dst:             snprintf
        - Src:             'services.c:234,2'
          Dst:             cat_expr_buf
        - Src:             'services.c:237,3'
          Dst:             cat_expr_buf
        - Src:             'services.c:239,3'
          Dst:             cat_expr_buf
        - Src:             'services.c:242,9'
          Dst:             ebitmap_get_bit
        - Src:             'services.c:249,5'
          Dst:             snprintf
        - Src:             'services.c:253,5'
          Dst:             snprintf
        - Src:             'services.c:257,5'
          Dst:             snprintf
        - Src:             'services.c:261,4'
          Dst:             cat_expr_buf
        - Src:             'services.c:265,3'
          Dst:             cat_expr_buf
        - Src:             'services.c:267,3'
          Dst:             cat_expr_buf
        - Src:             'services.c:269,3'
          Dst:             cat_expr_buf
    - functionName:    strncmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pop
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         11
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    push
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          106
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - reallocarray
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:97,15'
          Dst:             reallocarray
    - functionName:    sepol_fs_use
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2304
      functionLinenumberEnd: 2336
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          126
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - sepol_genfs_sid
        - sepol_sidtab_context_to_sid
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:2310,7'
          Dst:             strcmp
        - Src:             'services.c:2318,9'
          Dst:             sepol_sidtab_context_to_sid
        - Src:             'services.c:2326,8'
          Dst:             sepol_genfs_sid
    - functionName:    sepol_genfs_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2259
      functionLinenumberEnd: 2299
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          199
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - sepol_sidtab_context_to_sid
        - strcmp
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:2266,9'
          Dst:             strcmp
        - Src:             'services.c:2278,9'
          Dst:             strlen
        - Src:             'services.c:2280,8'
          Dst:             strncmp
        - Src:             'services.c:2291,8'
          Dst:             sepol_sidtab_context_to_sid
    - functionName:    sepol_get_user_sids
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2169
      functionLinenumberEnd: 2247
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          336
      EdgeCount:       62
      CyclomaticComplexity: 18
      functionsReached:
        - calloc
        - context_struct_compute_av
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - hashtab_search
        - mls_setup_user_range
        - sepol_sidtab_context_to_sid
        - sepol_sidtab_search
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:2180,12'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:2186,26'
          Dst:             hashtab_search
        - Src:             'services.c:2194,11'
          Dst:             calloc
        - Src:             'services.c:2200,2'
          Dst:             ebitmap_start
        - Src:             'services.c:2200,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'services.c:2203,3'
          Dst:             ebitmap_start
        - Src:             'services.c:2203,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'services.c:2208,8'
          Dst:             mls_setup_user_range
        - Src:             'services.c:2212,9'
          Dst:             context_struct_compute_av
        - Src:             'services.c:2218,9'
          Dst:             sepol_sidtab_context_to_sid
        - Src:             'services.c:2228,15'
          Dst:             calloc
        - Src:             'services.c:2203,3'
          Dst:             ebitmap_next
        - Src:             'services.c:2200,2'
          Dst:             ebitmap_next
    - functionName:    match_ipv6_addrmask
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2075
      functionLinenumberEnd: 2084
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_node_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2096
      functionLinenumberEnd: 2154
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - short
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          181
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - match_ipv6_addrmask
        - sepol_sidtab_context_to_sid
      functionUses:    0
      BranchProfiles:
        - Branch String:   'services.c:2100,2'
          Branch Sides:    []
      Callsites:
        - Src:             'services.c:2128,8'
          Dst:             match_ipv6_addrmask
        - Src:             'services.c:2142,9'
          Dst:             sepol_sidtab_context_to_sid
    - functionName:    sepol_netif_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2038
      functionLinenumberEnd: 2070
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          142
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - sepol_sidtab_context_to_sid
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:2044,7'
          Dst:             strcmp
        - Src:             'services.c:2051,9'
          Dst:             sepol_sidtab_context_to_sid
        - Src:             'services.c:2056,9'
          Dst:             sepol_sidtab_context_to_sid
    - functionName:    sepol_port_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1999
      functionLinenumberEnd: 2025
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - short
        - short
        - char
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          138
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - sepol_sidtab_context_to_sid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:2013,9'
          Dst:             sepol_sidtab_context_to_sid
    - functionName:    sepol_ibendport_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1961
      functionLinenumberEnd: 1987
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          119
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - sepol_sidtab_context_to_sid
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1968,8'
          Dst:             strcmp
        - Src:             'services.c:1975,9'
          Dst:             sepol_sidtab_context_to_sid
    - functionName:    sepol_ibpkey_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1924
      functionLinenumberEnd: 1951
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          132
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - sepol_sidtab_context_to_sid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1939,9'
          Dst:             sepol_sidtab_context_to_sid
    - functionName:    sepol_fs_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1883
      functionLinenumberEnd: 1915
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          142
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - sepol_sidtab_context_to_sid
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1889,7'
          Dst:             strcmp
        - Src:             'services.c:1896,9'
          Dst:             sepol_sidtab_context_to_sid
        - Src:             'services.c:1901,9'
          Dst:             sepol_sidtab_context_to_sid
    - functionName:    convert_context
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1632
      functionLinenumberEnd: 1696
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          242
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - context_cpy
        - context_destroy
        - context_to_string
        - convert_context_handle_invalid_context
        - hashtab_search
        - mls_convert_context
        - policydb_context_isvalid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1644,6'
          Dst:             context_cpy
        - Src:             'services.c:1648,30'
          Dst:             hashtab_search
        - Src:             'services.c:1659,26'
          Dst:             hashtab_search
        - Src:             'services.c:1669,6'
          Dst:             hashtab_search
        - Src:             'services.c:1676,7'
          Dst:             mls_convert_context
        - Src:             'services.c:1681,7'
          Dst:             policydb_context_isvalid
        - Src:             'services.c:1682,8'
          Dst:             convert_context_handle_invalid_context
        - Src:             'services.c:1687,2'
          Dst:             context_destroy
        - Src:             'services.c:1691,2'
          Dst:             context_to_string
        - Src:             'services.c:1692,2'
          Dst:             context_destroy
    - functionName:    context_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_context_destroy
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:135,2'
          Dst:             mls_context_destroy
    - functionName:    clone_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1596
      functionLinenumberEnd: 1599
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_sidtab_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1599,9'
          Dst:             sepol_sidtab_insert
    - functionName:    validate_class
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1552
      functionLinenumberEnd: 1591
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          348
      EdgeCount:       65
      CyclomaticComplexity: 16
      functionsReached:
        - hashtab_map
        - hashtab_search
        - validate_perm
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1560,24'
          Dst:             hashtab_search
        - Src:             'services.c:1576,7'
          Dst:             hashtab_map
        - Src:             'services.c:1576,7'
          Dst:             validate_perm
        - Src:             'services.c:1585,6'
          Dst:             hashtab_map
        - Src:             'services.c:1585,6'
          Dst:             validate_perm
    - functionName:    sepol_load_policy
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1808
      functionLinenumberEnd: 1871
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          145
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - clone_sid
        - convert_context
        - hashtab_map
        - policy_file_init
        - policydb_destroy
        - policydb_init
        - policydb_read
        - sepol_sidtab_destroy
        - sepol_sidtab_init
        - sepol_sidtab_map
        - sepol_sidtab_map_remove_on_error
        - sepol_sidtab_set
        - sepol_sidtab_shutdown
        - validate_class
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1815,2'
          Dst:             policy_file_init
        - Src:             'services.c:1821,6'
          Dst:             policydb_init
        - Src:             'services.c:1824,6'
          Dst:             policydb_read
        - Src:             'services.c:1825,3'
          Dst:             policydb_destroy
        - Src:             'services.c:1829,2'
          Dst:             sepol_sidtab_init
        - Src:             'services.c:1832,6'
          Dst:             hashtab_map
        - Src:             'services.c:1832,6'
          Dst:             validate_class
        - Src:             'services.c:1840,2'
          Dst:             sepol_sidtab_shutdown
        - Src:             'services.c:1841,6'
          Dst:             sepol_sidtab_map
        - Src:             'services.c:1841,6'
          Dst:             clone_sid
        - Src:             'services.c:1850,2'
          Dst:             sepol_sidtab_map_remove_on_error
        - Src:             'services.c:1850,2'
          Dst:             convert_context
        - Src:             'services.c:1854,2'
          Dst:             sepol_sidtab_set
        - Src:             'services.c:1858,2'
          Dst:             sepol_sidtab_set
        - Src:             'services.c:1861,2'
          Dst:             policydb_destroy
        - Src:             'services.c:1862,2'
          Dst:             sepol_sidtab_destroy
        - Src:             'services.c:1867,2'
          Dst:             sepol_sidtab_destroy
        - Src:             'services.c:1868,2'
          Dst:             policydb_destroy
    - functionName:    exceeds_available_bytes
      functionSourceFile: '/src/selinux/libsepol/src/./private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_read
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1765
      functionLinenumberEnd: 1788
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          90
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - exceeds_available_bytes
        - next_entry
      functionUses:    22
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1769,32'
          Dst:             exceeds_available_bytes
        - Src:             'services.c:1770,3'
          Dst:             __errno_location
        - Src:             'services.c:1782,7'
          Dst:             next_entry
    - functionName:    next_entry
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1700
      functionLinenumberEnd: 1724
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          91
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - fread
      functionUses:    107
      BranchProfiles:
        - Branch String:   'services.c:1703,2'
          Branch Sides:    []
      Callsites:
        - Src:             'services.c:1705,11'
          Dst:             fread
        - Src:             'services.c:1712,4'
          Dst:             __errno_location
        - Src:             'services.c:1720,3'
          Dst:             __errno_location
    - functionName:    fread
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    put_entry
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1728
      functionLinenumberEnd: 1754
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          107
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - fwrite
      functionUses:    127
      BranchProfiles:
        - Branch String:   'services.c:1734,2'
          Branch Sides:    []
      Callsites:
        - Src:             'services.c:1736,10'
          Dst:             fwrite
        - Src:             'services.c:1739,4'
          Dst:             __errno_location
    - functionName:    fwrite
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_change_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1517
      functionLinenumberEnd: 1518
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_compute_sid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1518,9'
          Dst:             sepol_compute_sid
    - functionName:    sepol_compute_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1353
      functionLinenumberEnd: 1482
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - short
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         101
      ICount:          607
      EdgeCount:       130
      CyclomaticComplexity: 31
      functionsReached:
        - avtab_search
        - avtab_search_node
        - avtab_search_node_next
        - compute_sid_handle_invalid_context
        - context_destroy
        - context_init
        - mls_compute_sid
        - policydb_context_isvalid
        - sepol_sidtab_context_to_sid
        - sepol_sidtab_search
      functionUses:    3
      BranchProfiles:
        - Branch String:   'services.c:1379,2'
          Branch Sides:    []
      Callsites:
        - Src:             'services.c:1362,13'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:1367,13'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:1376,2'
          Dst:             context_init
        - Src:             'services.c:1428,12'
          Dst:             avtab_search
        - Src:             'services.c:1432,10'
          Dst:             avtab_search_node
        - Src:             'services.c:1434,15'
          Dst:             avtab_search_node_next
        - Src:             'services.c:1464,7'
          Dst:             mls_compute_sid
        - Src:             'services.c:1470,7'
          Dst:             policydb_context_isvalid
        - Src:             'services.c:1471,8'
          Dst:             compute_sid_handle_invalid_context
        - Src:             'services.c:1478,7'
          Dst:             sepol_sidtab_context_to_sid
        - Src:             'services.c:1480,2'
          Dst:             context_destroy
    - functionName:    sepol_member_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1505
      functionLinenumberEnd: 1506
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_compute_sid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1506,9'
          Dst:             sepol_compute_sid
    - functionName:    sepol_transition_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1492
      functionLinenumberEnd: 1493
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_compute_sid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1493,9'
          Dst:             sepol_compute_sid
    - functionName:    sepol_context_to_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1295
      functionLinenumberEnd: 1319
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          117
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - context_destroy
        - context_from_string
        - sepol_sidtab_context_to_sid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1300,6'
          Dst:             context_from_string
        - Src:             'services.c:1305,14'
          Dst:             sepol_sidtab_context_to_sid
        - Src:             'services.c:1308,2'
          Dst:             context_destroy
        - Src:             'services.c:1314,3'
          Dst:             context_destroy
    - functionName:    sepol_sid_to_context
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1273
      functionLinenumberEnd: 1285
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          80
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - context_to_string
        - sepol_sidtab_search
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1277,12'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:1283,7'
          Dst:             context_to_string
    - functionName:    sepol_av_perm_to_string
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1241
      functionLinenumberEnd: 1260
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sepol_av_to_string
        - sprintf
        - strcpy
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1243,16'
          Dst:             sepol_av_to_string
        - Src:             'services.c:1249,9'
          Dst:             strlen
        - Src:             'services.c:1251,4'
          Dst:             strcpy
        - Src:             'services.c:1253,4'
          Dst:             sprintf
        - Src:             'services.c:1257,3'
          Dst:             sprintf
    - functionName:    sepol_string_to_av_perm
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1204
      functionLinenumberEnd: 1237
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          199
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - hashtab_search
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1216,4'
          Dst:             hashtab_search
        - Src:             'services.c:1227,4'
          Dst:             hashtab_search
    - functionName:    sepol_string_to_security_class
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1184
      functionLinenumberEnd: 1195
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          83
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - hashtab_search
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1187,17'
          Dst:             hashtab_search
    - functionName:    sepol_compute_av
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1172
      functionLinenumberEnd: 1174
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - short
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_compute_av_reason
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1174,9'
          Dst:             sepol_compute_av_reason
    - functionName:    sepol_compute_av_reason
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1097
      functionLinenumberEnd: 1117
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - int
        - int
        - short
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          140
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - context_struct_compute_av
        - sepol_sidtab_search
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1101,13'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:1107,13'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:1114,7'
          Dst:             context_struct_compute_av
    - functionName:    sepol_compute_av_reason_buffer
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1133
      functionLinenumberEnd: 1164
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - int
        - int
        - short
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          150
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - context_struct_compute_av
        - sepol_sidtab_search
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1137,13'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:1143,13'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:1161,7'
          Dst:             context_struct_compute_av
    - functionName:    sepol_validate_transition_reason_buffer
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1039
      functionLinenumberEnd: 1089
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - int
        - int
        - int
        - short
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          292
      EdgeCount:       51
      CyclomaticComplexity: 13
      functionsReached:
        - constraint_expr_eval_reason
        - sepol_sidtab_search
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1052,13'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:1058,13'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:1064,13'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:1082,8'
          Dst:             constraint_expr_eval_reason
    - functionName:    sepol_set_policydb_from_file
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          134
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - policy_file_init
        - policydb_destroy
        - policydb_init
        - policydb_read
        - sepol_sidtab_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:137,2'
          Dst:             policy_file_init
        - Src:             'services.c:141,3'
          Dst:             policydb_destroy
        - Src:             'services.c:142,6'
          Dst:             policydb_init
        - Src:             'services.c:146,6'
          Dst:             policydb_read
        - Src:             'services.c:147,3'
          Dst:             policydb_destroy
        - Src:             'services.c:152,9'
          Dst:             sepol_sidtab_init
    - functionName:    sepol_set_policydb
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_set_sidtab
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_level_eq
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_cmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:104,36'
          Dst:             ebitmap_cmp
    - functionName:    mls_context_cmp
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_level_eq
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:102,10'
          Dst:             mls_level_eq
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:103,3'
          Dst:             mls_level_eq
    - functionName:    context_cmp
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          65
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - mls_context_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:142,29'
          Dst:             mls_context_cmp
    - functionName:    mls_range_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:142,2'
          Dst:             mls_level_init
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:143,2'
          Dst:             mls_level_init
    - functionName:    mls_level_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_context_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_range_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:42,2'
          Dst:             mls_range_init
    - functionName:    mls_range_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:148,2'
          Dst:             mls_level_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:149,2'
          Dst:             mls_level_destroy
    - functionName:    mls_level_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - mls_level_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:98,2'
          Dst:             ebitmap_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:99,2'
          Dst:             mls_level_init
    - functionName:    mls_context_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_context_init
        - mls_range_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:112,2'
          Dst:             mls_range_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:113,2'
          Dst:             mls_context_init
    - functionName:    mls_level_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_cpy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:81,6'
          Dst:             ebitmap_cpy
    - functionName:    mls_range_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - mls_level_cpy
        - mls_level_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:125,6'
          Dst:             mls_level_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:128,6'
          Dst:             mls_level_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:134,2'
          Dst:             mls_level_destroy
    - functionName:    mls_context_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_range_cpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:49,6'
          Dst:             mls_range_cpy
    - functionName:    sepol_sidtab_shutdown
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_sidtab_set
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_sidtab_destroy
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          98
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - context_destroy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sidtab.c:266,4'
          Dst:             context_destroy
    - functionName:    context_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_context_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:135,2'
          Dst:             mls_context_destroy
    - functionName:    sepol_sidtab_hash_eval
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          96
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sidtab.c:248,2'
          Dst:             printf
    - functionName:    sepol_sidtab_search_context
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          72
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - context_cmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sidtab.c:182,8'
          Dst:             context_cmp
    - functionName:    sepol_sidtab_context_to_sid
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          119
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - sepol_sidtab_insert
        - sepol_sidtab_search_context
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'sidtab.c:199,8'
          Dst:             sepol_sidtab_search_context
        - Src:             'sidtab.c:203,9'
          Dst:             sepol_sidtab_search_context
        - Src:             'sidtab.c:212,9'
          Dst:             sepol_sidtab_insert
    - functionName:    sepol_sidtab_insert
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          202
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - context_cpy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sidtab.c:57,3'
          Dst:             __errno_location
        - Src:             'sidtab.c:65,6'
          Dst:             context_cpy
    - functionName:    context_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_context_cpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:126,9'
          Dst:             mls_context_cpy
    - functionName:    sepol_sidtab_map_remove_on_error
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          140
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - context_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sidtab.c:159,5'
          Dst:             context_destroy
    - functionName:    sepol_sidtab_map
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          99
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_sidtab_search
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          159
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_sidtab_init
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sidtab.c:29,14'
          Dst:             calloc
    - functionName:    symtab_destroy
      functionSourceFile: '/src/selinux/libsepol/src/symtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - hashtab_destroy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'symtab.c:50,3'
          Dst:             hashtab_destroy
    - functionName:    symcmp
      functionSourceFile: '/src/selinux/libsepol/src/symtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'symtab.c:33,9'
          Dst:             strcmp
    - functionName:    symhash
      functionSourceFile: '/src/selinux/libsepol/src/symtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          40
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    symtab_init
      functionSourceFile: '/src/selinux/libsepol/src/symtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hashtab_create
        - symcmp
        - symhash
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'symtab.c:38,13'
          Dst:             hashtab_create
        - Src:             'symtab.c:38,13'
          Dst:             symhash
        - Src:             'symtab.c:38,13'
          Dst:             symcmp
    - functionName:    tokenize_str
      functionSourceFile: '/src/selinux/libsepol/src/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - char
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          229
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - __ctype_b_loc
        - strndup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'util.c:243,7'
          Dst:             __ctype_b_loc
        - Src:             'util.c:243,25'
          Dst:             __ctype_b_loc
        - Src:             'util.c:246,15'
          Dst:             __ctype_b_loc
        - Src:             'util.c:262,9'
          Dst:             strndup
        - Src:             'util.c:268,26'
          Dst:             __ctype_b_loc
        - Src:             'util.c:268,44'
          Dst:             __ctype_b_loc
    - functionName:    __ctype_b_loc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strndup
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tokenize
      functionSourceFile: '/src/selinux/libsepol/src/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          125
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - strdup
        - tokenize_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'util.c:307,11'
          Dst:             strdup
        - Src:             'util.c:315,8'
          Dst:             tokenize_str
    - functionName:    sepol_extended_perms_to_string
      functionSourceFile: '/src/selinux/libsepol/src/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         73
      ICount:          468
      EdgeCount:       99
      CyclomaticComplexity: 28
      functionsReached:
        - realloc
        - snprintf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'util.c:156,6'
          Dst:             realloc
        - Src:             'util.c:164,9'
          Dst:             snprintf
        - Src:             'util.c:166,9'
          Dst:             snprintf
        - Src:             'util.c:192,11'
          Dst:             snprintf
        - Src:             'util.c:194,11'
          Dst:             snprintf
        - Src:             'util.c:200,11'
          Dst:             snprintf
        - Src:             'util.c:202,11'
          Dst:             snprintf
        - Src:             'util.c:218,8'
          Dst:             snprintf
    - functionName:    perm_name
      functionSourceFile: '/src/selinux/libsepol/src/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          42
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_av_to_string
      functionSourceFile: '/src/selinux/libsepol/src/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          198
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - hashtab_map
        - perm_name
        - realloc
        - snprintf
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'util.c:99,6'
          Dst:             realloc
        - Src:             'util.c:109,9'
          Dst:             hashtab_map
        - Src:             'util.c:109,9'
          Dst:             perm_name
        - Src:             'util.c:112,10'
          Dst:             hashtab_map
        - Src:             'util.c:112,10'
          Dst:             perm_name
        - Src:             'util.c:117,11'
          Dst:             snprintf
    - functionName:    add_i_to_a
      functionSourceFile: '/src/selinux/libsepol/src/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          96
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - reallocarray
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'util.c:55,22'
          Dst:             reallocarray
    - functionName:    range_write_helper
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1702
      functionLinenumberEnd: 1739
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          205
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - mls_write_range_helper
        - put_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1725,10'
          Dst:             put_entry
        - Src:             'write.c:1730,11'
          Dst:             put_entry
        - Src:             'write.c:1734,7'
          Dst:             mls_write_range_helper
    - functionName:    mls_write_range_helper
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 432
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          124
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_write
        - mls_level_eq
        - put_entry
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:437,7'
          Dst:             mls_level_eq
        - Src:             'write.c:445,11'
          Dst:             put_entry
        - Src:             'write.c:449,6'
          Dst:             ebitmap_write
        - Src:             'write.c:452,7'
          Dst:             ebitmap_write
    - functionName:    mls_level_eq
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:104,36'
          Dst:             ebitmap_cmp
    - functionName:    ebitmap_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          121
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - put_entry
      functionUses:    22
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:77,10'
          Dst:             put_entry
        - Src:             'write.c:83,11'
          Dst:             put_entry
        - Src:             'write.c:87,11'
          Dst:             put_entry
    - functionName:    rangetrans_count
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1688
      functionLinenumberEnd: 1698
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    context_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 902
      functionLinenumberEnd: 921
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          128
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - mls_write_range_helper
        - put_entry
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:910,11'
          Dst:             put_entry
        - Src:             'write.c:917,7'
          Dst:             mls_write_range_helper
    - functionName:    ocontext_write_xen
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1377
      functionLinenumberEnd: 1481
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         94
      ICount:          629
      EdgeCount:       123
      CyclomaticComplexity: 31
      functionsReached:
        - context_write
        - put_entry
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'write.c:1398,4'
          Branch Sides:    []
      Callsites:
        - Src:             'write.c:1394,11'
          Dst:             put_entry
        - Src:             'write.c:1403,13'
          Dst:             put_entry
        - Src:             'write.c:1406,9'
          Dst:             context_write
        - Src:             'write.c:1411,13'
          Dst:             put_entry
        - Src:             'write.c:1414,9'
          Dst:             context_write
        - Src:             'write.c:1422,13'
          Dst:             put_entry
        - Src:             'write.c:1425,9'
          Dst:             context_write
        - Src:             'write.c:1435,14'
          Dst:             put_entry
        - Src:             'write.c:1450,14'
          Dst:             put_entry
        - Src:             'write.c:1454,9'
          Dst:             context_write
        - Src:             'write.c:1459,13'
          Dst:             put_entry
        - Src:             'write.c:1462,9'
          Dst:             context_write
        - Src:             'write.c:1466,11'
          Dst:             strlen
        - Src:             'write.c:1468,13'
          Dst:             put_entry
        - Src:             'write.c:1471,13'
          Dst:             put_entry
        - Src:             'write.c:1474,9'
          Dst:             context_write
    - functionName:    ocontext_write_selinux
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1485
      functionLinenumberEnd: 1611
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         97
      ICount:          696
      EdgeCount:       128
      CyclomaticComplexity: 33
      functionsReached:
        - context_write
        - put_entry
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'write.c:1506,4'
          Branch Sides:    []
      Callsites:
        - Src:             'write.c:1502,11'
          Dst:             put_entry
        - Src:             'write.c:1511,13'
          Dst:             put_entry
        - Src:             'write.c:1514,9'
          Dst:             context_write
        - Src:             'write.c:1519,11'
          Dst:             strlen
        - Src:             'write.c:1521,13'
          Dst:             put_entry
        - Src:             'write.c:1524,13'
          Dst:             put_entry
        - Src:             'write.c:1527,9'
          Dst:             context_write
        - Src:             'write.c:1529,9'
          Dst:             context_write
        - Src:             'write.c:1540,13'
          Dst:             put_entry
        - Src:             'write.c:1544,9'
          Dst:             context_write
        - Src:             'write.c:1548,11'
          Dst:             strlen
        - Src:             'write.c:1551,13'
          Dst:             put_entry
        - Src:             'write.c:1554,13'
          Dst:             put_entry
        - Src:             'write.c:1558,9'
          Dst:             context_write
        - Src:             'write.c:1568,13'
          Dst:             put_entry
        - Src:             'write.c:1571,9'
          Dst:             context_write
        - Src:             'write.c:1577,13'
          Dst:             put_entry
        - Src:             'write.c:1580,9'
          Dst:             context_write
        - Src:             'write.c:1585,11'
          Dst:             strlen
        - Src:             'write.c:1587,13'
          Dst:             put_entry
        - Src:             'write.c:1590,13'
          Dst:             put_entry
        - Src:             'write.c:1593,9'
          Dst:             context_write
        - Src:             'write.c:1601,13'
          Dst:             put_entry
        - Src:             'write.c:1604,9'
          Dst:             context_write
    - functionName:    only_process
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1895
      functionLinenumberEnd: 1909
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          99
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1904,2'
          Dst:             ebitmap_start
        - Src:             'write.c:1904,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'write.c:1904,2'
          Dst:             ebitmap_next
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    scope_index_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2058
      functionLinenumberEnd: 2076
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          106
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_write
        - put_entry
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:2062,7'
          Dst:             ebitmap_write
        - Src:             'write.c:2067,6'
          Dst:             put_entry
        - Src:             'write.c:2071,7'
          Dst:             ebitmap_write
    - functionName:    range_trans_rule_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2030
      functionLinenumberEnd: 2053
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          124
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - ebitmap_write
        - mls_write_semantic_range_helper
        - put_entry
        - type_set_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:2039,10'
          Dst:             put_entry
        - Src:             'write.c:2043,7'
          Dst:             type_set_write
        - Src:             'write.c:2045,7'
          Dst:             type_set_write
        - Src:             'write.c:2047,7'
          Dst:             ebitmap_write
        - Src:             'write.c:2049,7'
          Dst:             mls_write_semantic_range_helper
    - functionName:    type_set_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 709
      functionLinenumberEnd: 724
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - ebitmap_write
        - put_entry
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:713,6'
          Dst:             ebitmap_write
        - Src:             'write.c:715,6'
          Dst:             ebitmap_write
        - Src:             'write.c:719,10'
          Dst:             put_entry
    - functionName:    mls_write_semantic_range_helper
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_write_semantic_level_helper
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:398,7'
          Dst:             mls_write_semantic_level_helper
        - Src:             'write.c:402,7'
          Dst:             mls_write_semantic_level_helper
    - functionName:    mls_write_semantic_level_helper
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 364
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          108
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - put_entry
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:374,10'
          Dst:             put_entry
        - Src:             'write.c:381,11'
          Dst:             put_entry
    - functionName:    filename_trans_rule_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1977
      functionLinenumberEnd: 2026
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          254
      EdgeCount:       50
      CyclomaticComplexity: 14
      functionsReached:
        - put_entry
        - strlen
        - type_set_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1987,10'
          Dst:             put_entry
        - Src:             'write.c:1992,9'
          Dst:             strlen
        - Src:             'write.c:1994,11'
          Dst:             put_entry
        - Src:             'write.c:1998,11'
          Dst:             put_entry
        - Src:             'write.c:2002,7'
          Dst:             type_set_write
        - Src:             'write.c:2004,7'
          Dst:             type_set_write
        - Src:             'write.c:2021,11'
          Dst:             put_entry
    - functionName:    role_allow_rule_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1954
      functionLinenumberEnd: 1973
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          100
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - put_entry
        - role_set_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1963,10'
          Dst:             put_entry
        - Src:             'write.c:1967,7'
          Dst:             role_set_write
        - Src:             'write.c:1969,7'
          Dst:             role_set_write
    - functionName:    role_set_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 693
      functionLinenumberEnd: 706
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_write
        - put_entry
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:697,6'
          Dst:             ebitmap_write
        - Src:             'write.c:701,10'
          Dst:             put_entry
    - functionName:    role_trans_rule_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1913
      functionLinenumberEnd: 1951
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          261
      EdgeCount:       62
      CyclomaticComplexity: 17
      functionsReached:
        - ebitmap_write
        - only_process
        - put_entry
        - role_set_write
        - type_set_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1922,19'
          Dst:             only_process
        - Src:             'write.c:1926,10'
          Dst:             put_entry
        - Src:             'write.c:1930,21'
          Dst:             only_process
        - Src:             'write.c:1938,7'
          Dst:             role_set_write
        - Src:             'write.c:1940,7'
          Dst:             type_set_write
        - Src:             'write.c:1943,8'
          Dst:             ebitmap_write
        - Src:             'write.c:1946,11'
          Dst:             put_entry
    - functionName:    avrule_decl_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2080
      functionLinenumberEnd: 2121
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          256
      EdgeCount:       52
      CyclomaticComplexity: 16
      functionsReached:
        - avrule_write_list
        - cond_write_list
        - filename_trans_rule_write
        - hashtab_map
        - put_entry
        - range_trans_rule_write
        - role_allow_rule_write
        - role_trans_rule_write
        - scope_index_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:2086,6'
          Dst:             put_entry
        - Src:             'write.c:2089,6'
          Dst:             cond_write_list
        - Src:             'write.c:2090,6'
          Dst:             avrule_write_list
        - Src:             'write.c:2091,6'
          Dst:             role_trans_rule_write
        - Src:             'write.c:2092,6'
          Dst:             role_allow_rule_write
        - Src:             'write.c:2097,6'
          Dst:             filename_trans_rule_write
        - Src:             'write.c:2101,6'
          Dst:             range_trans_rule_write
        - Src:             'write.c:2104,6'
          Dst:             scope_index_write
        - Src:             'write.c:2105,6'
          Dst:             scope_index_write
        - Src:             'write.c:2113,7'
          Dst:             put_entry
        - Src:             'write.c:2116,7'
          Dst:             hashtab_map
    - functionName:    cond_write_list
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 876
      functionLinenumberEnd: 894
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          91
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - cond_write_node
        - put_entry
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:885,10'
          Dst:             put_entry
        - Src:             'write.c:890,7'
          Dst:             cond_write_node
    - functionName:    avrule_write_list
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1869
      functionLinenumberEnd: 1892
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          87
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - avrule_write
        - put_entry
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1881,6'
          Dst:             put_entry
        - Src:             'write.c:1886,7'
          Dst:             avrule_write
    - functionName:    common_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 955
      functionLinenumberEnd: 982
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          123
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - hashtab_map
        - perm_write
        - put_entry
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:964,8'
          Dst:             strlen
        - Src:             'write.c:970,11'
          Dst:             put_entry
        - Src:             'write.c:974,10'
          Dst:             put_entry
        - Src:             'write.c:978,6'
          Dst:             hashtab_map
        - Src:             'write.c:978,6'
          Dst:             perm_write
    - functionName:    class_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1036
      functionLinenumberEnd: 1138
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         93
      ICount:          645
      EdgeCount:       126
      CyclomaticComplexity: 35
      functionsReached:
        - hashtab_map
        - perm_write
        - put_entry
        - strlen
        - write_cons_helper
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1047,8'
          Dst:             strlen
        - Src:             'write.c:1049,10'
          Dst:             strlen
        - Src:             'write.c:1068,11'
          Dst:             put_entry
        - Src:             'write.c:1072,10'
          Dst:             put_entry
        - Src:             'write.c:1077,11'
          Dst:             put_entry
        - Src:             'write.c:1081,6'
          Dst:             hashtab_map
        - Src:             'write.c:1081,6'
          Dst:             perm_write
        - Src:             'write.c:1084,6'
          Dst:             write_cons_helper
        - Src:             'write.c:1097,11'
          Dst:             put_entry
        - Src:             'write.c:1100,7'
          Dst:             write_cons_helper
        - Src:             'write.c:1122,11'
          Dst:             put_entry
        - Src:             'write.c:1132,11'
          Dst:             put_entry
    - functionName:    role_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1141
      functionLinenumberEnd: 1217
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          323
      EdgeCount:       72
      CyclomaticComplexity: 22
      functionsReached:
        - ebitmap_init
        - ebitmap_write
        - put_entry
        - strlen
        - type_set_write
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1164,8'
          Dst:             strlen
        - Src:             'write.c:1170,11'
          Dst:             put_entry
        - Src:             'write.c:1174,10'
          Dst:             put_entry
        - Src:             'write.c:1178,6'
          Dst:             ebitmap_write
        - Src:             'write.c:1193,4'
          Dst:             ebitmap_init
        - Src:             'write.c:1194,8'
          Dst:             ebitmap_write
        - Src:             'write.c:1197,8'
          Dst:             ebitmap_write
        - Src:             'write.c:1201,7'
          Dst:             type_set_write
        - Src:             'write.c:1208,11'
          Dst:             put_entry
        - Src:             'write.c:1212,7'
          Dst:             ebitmap_write
    - functionName:    type_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1220
      functionLinenumberEnd: 1310
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         92
      ICount:          580
      EdgeCount:       124
      CyclomaticComplexity: 34
      functionsReached:
        - ebitmap_write
        - put_entry
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1239,8'
          Dst:             strlen
        - Src:             'write.c:1296,11'
          Dst:             put_entry
        - Src:             'write.c:1301,7'
          Dst:             ebitmap_write
        - Src:             'write.c:1305,10'
          Dst:             put_entry
    - functionName:    user_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1313
      functionLinenumberEnd: 1368
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         66
      ICount:          384
      EdgeCount:       91
      CyclomaticComplexity: 27
      functionsReached:
        - ebitmap_write
        - mls_write_level
        - mls_write_range_helper
        - mls_write_semantic_level_helper
        - mls_write_semantic_range_helper
        - put_entry
        - role_set_write
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1323,8'
          Dst:             strlen
        - Src:             'write.c:1329,11'
          Dst:             put_entry
        - Src:             'write.c:1333,10'
          Dst:             put_entry
        - Src:             'write.c:1338,7'
          Dst:             ebitmap_write
        - Src:             'write.c:1341,7'
          Dst:             role_set_write
        - Src:             'write.c:1353,7'
          Dst:             mls_write_range_helper
        - Src:             'write.c:1355,7'
          Dst:             mls_write_level
        - Src:             'write.c:1361,7'
          Dst:             mls_write_semantic_range_helper
        - Src:             'write.c:1363,7'
          Dst:             mls_write_semantic_level_helper
    - functionName:    cond_write_bool
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 727
      functionLinenumberEnd: 758
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          149
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - put_entry
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:737,8'
          Dst:             strlen
        - Src:             'write.c:742,11'
          Dst:             put_entry
        - Src:             'write.c:745,10'
          Dst:             put_entry
        - Src:             'write.c:752,11'
          Dst:             put_entry
    - functionName:    sens_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 459
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          102
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - mls_write_level
        - put_entry
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:468,8'
          Dst:             strlen
        - Src:             'write.c:472,11'
          Dst:             put_entry
        - Src:             'write.c:476,10'
          Dst:             put_entry
        - Src:             'write.c:480,6'
          Dst:             mls_write_level
    - functionName:    cat_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 510
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          98
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - put_entry
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:496,8'
          Dst:             strlen
        - Src:             'write.c:501,11'
          Dst:             put_entry
        - Src:             'write.c:505,10'
          Dst:             put_entry
    - functionName:    mls_write_level
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 425
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_write
        - put_entry
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:417,10'
          Dst:             put_entry
        - Src:             'write.c:421,6'
          Dst:             ebitmap_write
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    perm_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 930
      functionLinenumberEnd: 952
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          89
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - put_entry
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:939,8'
          Dst:             strlen
        - Src:             'write.c:943,11'
          Dst:             put_entry
        - Src:             'write.c:947,10'
          Dst:             put_entry
    - functionName:    write_cons_helper
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 987
      functionLinenumberEnd: 1033
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          246
      EdgeCount:       55
      CyclomaticComplexity: 14
      functionsReached:
        - ebitmap_write
        - put_entry
        - type_set_write
      functionUses:    2
      BranchProfiles:
        - Branch String:   'write.c:1011,4'
          Branch Sides:    []
      Callsites:
        - Src:             'write.c:1000,11'
          Dst:             put_entry
        - Src:             'write.c:1007,12'
          Dst:             put_entry
        - Src:             'write.c:1015,9'
          Dst:             ebitmap_write
        - Src:             'write.c:1019,7'
          Dst:             type_set_write
        - Src:             'write.c:1022,7'
          Dst:             type_set_write
    - functionName:    avrule_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1770
      functionLinenumberEnd: 1865
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         96
      ICount:          635
      EdgeCount:       124
      CyclomaticComplexity: 30
      functionsReached:
        - put_entry
        - type_set_write
      functionUses:    1
      BranchProfiles:
        - Branch String:   ''
          Branch Sides:    []
      Callsites:
        - Src:             'write.c:1786,11'
          Dst:             put_entry
        - Src:             'write.c:1790,6'
          Dst:             type_set_write
        - Src:             'write.c:1793,6'
          Dst:             type_set_write
        - Src:             'write.c:1804,11'
          Dst:             put_entry
        - Src:             'write.c:1812,12'
          Dst:             put_entry
        - Src:             'write.c:1850,11'
          Dst:             put_entry
        - Src:             'write.c:1854,11'
          Dst:             put_entry
        - Src:             'write.c:1859,11'
          Dst:             put_entry
    - functionName:    cond_write_node
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 822
      functionLinenumberEnd: 872
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          249
      EdgeCount:       49
      CyclomaticComplexity: 15
      functionsReached:
        - avrule_write_list
        - cond_write_av_list
        - put_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:828,10'
          Dst:             put_entry
        - Src:             'write.c:838,10'
          Dst:             put_entry
        - Src:             'write.c:846,12'
          Dst:             put_entry
        - Src:             'write.c:852,7'
          Dst:             cond_write_av_list
        - Src:             'write.c:854,7'
          Dst:             cond_write_av_list
        - Src:             'write.c:857,7'
          Dst:             avrule_write_list
        - Src:             'write.c:859,7'
          Dst:             avrule_write_list
        - Src:             'write.c:866,11'
          Dst:             put_entry
    - functionName:    cond_write_av_list
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 771
      functionLinenumberEnd: 818
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          209
      EdgeCount:       50
      CyclomaticComplexity: 14
      functionsReached:
        - avtab_destroy
        - avtab_init
        - avtab_write_item
        - cond_av_list_destroy
        - expand_cond_av_list
        - put_entry
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:781,7'
          Dst:             avtab_init
        - Src:             'write.c:783,7'
          Dst:             expand_cond_av_list
        - Src:             'write.c:795,10'
          Dst:             put_entry
        - Src:             'write.c:806,8'
          Dst:             avtab_write_item
        - Src:             'write.c:813,3'
          Dst:             cond_av_list_destroy
        - Src:             'write.c:814,3'
          Dst:             avtab_destroy
    - functionName:    avtab_write_item
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         163
      ICount:          1094
      EdgeCount:       216
      CyclomaticComplexity: 55
      functionsReached:
        - avtab_search_node_next
        - put_entry
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:151,16'
          Dst:             avtab_search_node_next
        - Src:             'write.c:153,16'
          Dst:             avtab_search_node_next
        - Src:             'write.c:184,11'
          Dst:             avtab_search_node_next
        - Src:             'write.c:216,13'
          Dst:             put_entry
        - Src:             'write.c:229,10'
          Dst:             put_entry
        - Src:             'write.c:255,11'
          Dst:             put_entry
        - Src:             'write.c:259,11'
          Dst:             put_entry
        - Src:             'write.c:264,11'
          Dst:             put_entry
        - Src:             'write.c:269,11'
          Dst:             put_entry
    - functionName:    filename_write_one
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 617
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          165
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - ebitmap_write
        - put_entry
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:624,8'
          Dst:             strlen
        - Src:             'write.c:626,10'
          Dst:             put_entry
        - Src:             'write.c:630,10'
          Dst:             put_entry
        - Src:             'write.c:644,10'
          Dst:             put_entry
        - Src:             'write.c:650,7'
          Dst:             ebitmap_write
        - Src:             'write.c:654,11'
          Dst:             put_entry
    - functionName:    filename_write_one_compat
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 581
      functionLinenumberEnd: 614
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          172
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - put_entry
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:589,8'
          Dst:             strlen
        - Src:             'write.c:591,3'
          Dst:             ebitmap_start
        - Src:             'write.c:591,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'write.c:593,12'
          Dst:             put_entry
        - Src:             'write.c:597,12'
          Dst:             put_entry
        - Src:             'write.c:605,12'
          Dst:             put_entry
        - Src:             'write.c:591,3'
          Dst:             ebitmap_next
    - functionName:    avtab_reset_merged
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    range_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1742
      functionLinenumberEnd: 1764
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          97
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - hashtab_map
        - put_entry
        - range_write_helper
        - rangetrans_count
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1754,7'
          Dst:             hashtab_map
        - Src:             'write.c:1754,7'
          Dst:             rangetrans_count
        - Src:             'write.c:1759,10'
          Dst:             put_entry
        - Src:             'write.c:1763,9'
          Dst:             hashtab_map
        - Src:             'write.c:1763,9'
          Dst:             range_write_helper
    - functionName:    genfs_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1629
      functionLinenumberEnd: 1675
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          248
      EdgeCount:       48
      CyclomaticComplexity: 14
      functionsReached:
        - context_write
        - put_entry
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1638,10'
          Dst:             put_entry
        - Src:             'write.c:1642,9'
          Dst:             strlen
        - Src:             'write.c:1644,11'
          Dst:             put_entry
        - Src:             'write.c:1647,11'
          Dst:             put_entry
        - Src:             'write.c:1654,11'
          Dst:             put_entry
        - Src:             'write.c:1658,10'
          Dst:             strlen
        - Src:             'write.c:1660,12'
          Dst:             put_entry
        - Src:             'write.c:1663,12'
          Dst:             put_entry
        - Src:             'write.c:1667,12'
          Dst:             put_entry
        - Src:             'write.c:1670,8'
          Dst:             context_write
    - functionName:    ocontext_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1615
      functionLinenumberEnd: 1625
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          48
      EdgeCount:       13
      CyclomaticComplexity: 8
      functionsReached:
        - ocontext_write_selinux
        - ocontext_write_xen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'write.c:1617,2'
          Branch Sides:    []
      Callsites:
        - Src:             'write.c:1619,8'
          Dst:             ocontext_write_selinux
        - Src:             'write.c:1622,8'
          Dst:             ocontext_write_xen
    - functionName:    scope_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2160
      functionLinenumberEnd: 2198
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          167
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - calloc
        - put_entry
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:2165,19'
          Dst:             strlen
        - Src:             'write.c:2175,13'
          Dst:             calloc
        - Src:             'write.c:2183,6'
          Dst:             put_entry
        - Src:             'write.c:2184,6'
          Dst:             put_entry
        - Src:             'write.c:2193,6'
          Dst:             put_entry
    - functionName:    avrule_block_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2125
      functionLinenumberEnd: 2157
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          144
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - avrule_decl_write
        - put_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:2133,6'
          Dst:             put_entry
        - Src:             'write.c:2146,7'
          Dst:             put_entry
        - Src:             'write.c:2150,8'
          Dst:             avrule_decl_write
    - functionName:    filename_trans_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 665
      functionLinenumberEnd: 690
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          98
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - filename_write_one
        - filename_write_one_compat
        - hashtab_map
        - put_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:675,11'
          Dst:             put_entry
        - Src:             'write.c:679,8'
          Dst:             hashtab_map
        - Src:             'write.c:679,8'
          Dst:             filename_write_one_compat
        - Src:             'write.c:683,11'
          Dst:             put_entry
        - Src:             'write.c:687,8'
          Dst:             hashtab_map
        - Src:             'write.c:687,8'
          Dst:             filename_write_one
    - functionName:    role_allow_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 558
      functionLinenumberEnd: 578
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          100
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - put_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:567,10'
          Dst:             put_entry
        - Src:             'write.c:573,11'
          Dst:             put_entry
    - functionName:    role_trans_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          275
      EdgeCount:       60
      CyclomaticComplexity: 16
      functionsReached:
        - put_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:528,10'
          Dst:             put_entry
        - Src:             'write.c:543,11'
          Dst:             put_entry
        - Src:             'write.c:548,12'
          Dst:             put_entry
    - functionName:    avtab_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          254
      EdgeCount:       59
      CyclomaticComplexity: 16
      functionsReached:
        - avtab_destroy
        - avtab_init
        - avtab_reset_merged
        - avtab_write_item
        - expand_avtab
        - put_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:303,7'
          Dst:             avtab_init
        - Src:             'write.c:305,7'
          Dst:             expand_avtab
        - Src:             'write.c:310,3'
          Dst:             avtab_reset_merged
        - Src:             'write.c:315,11'
          Dst:             put_entry
        - Src:             'write.c:324,8'
          Dst:             avtab_write_item
        - Src:             'write.c:335,11'
          Dst:             put_entry
        - Src:             'write.c:340,3'
          Dst:             avtab_reset_merged
        - Src:             'write.c:343,9'
          Dst:             avtab_write_item
        - Src:             'write.c:354,3'
          Dst:             avtab_destroy
    - functionName:    role_attr_uncount
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2216
      functionLinenumberEnd: 2224
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    type_attr_uncount
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2203
      functionLinenumberEnd: 2211
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    policydb_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2233
      functionLinenumberEnd: 2461
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         240
      ICount:          1499
      EdgeCount:       325
      CyclomaticComplexity: 87
      functionsReached:
        - avrule_block_write
        - avtab_write
        - cond_write_list
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - ebitmap_write
        - filename_trans_write
        - genfs_write
        - hashtab_map
        - ocontext_write
        - policydb_lookup_compat
        - put_entry
        - range_write
        - role_allow_write
        - role_attr_uncount
        - role_trans_write
        - scope_write
        - strlen
        - type_attr_uncount
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:2269,9'
          Dst:             strlen
        - Src:             'write.c:2277,11'
          Dst:             put_entry
        - Src:             'write.c:2280,10'
          Dst:             put_entry
        - Src:             'write.c:2286,9'
          Dst:             policydb_lookup_compat
        - Src:             'write.c:2304,11'
          Dst:             put_entry
        - Src:             'write.c:2310,9'
          Dst:             strlen
        - Src:             'write.c:2312,11'
          Dst:             put_entry
        - Src:             'write.c:2315,11'
          Dst:             put_entry
        - Src:             'write.c:2318,9'
          Dst:             strlen
        - Src:             'write.c:2320,11'
          Dst:             put_entry
        - Src:             'write.c:2323,11'
          Dst:             put_entry
        - Src:             'write.c:2334,7'
          Dst:             ebitmap_write
        - Src:             'write.c:2342,4'
          Dst:             ebitmap_start
        - Src:             'write.c:2342,4'
          Dst:             ebitmap_node_get_bit
        - Src:             'write.c:2342,4'
          Dst:             ebitmap_next
        - Src:             'write.c:2348,14'
          Dst:             ebitmap_write
        - Src:             'write.c:2354,4'
          Dst:             ebitmap_start
        - Src:             'write.c:2354,4'
          Dst:             ebitmap_node_get_bit
        - Src:             'write.c:2354,4'
          Dst:             ebitmap_next
        - Src:             'write.c:2360,14'
          Dst:             ebitmap_write
        - Src:             'write.c:2378,4'
          Dst:             hashtab_map
        - Src:             'write.c:2378,4'
          Dst:             type_attr_uncount
        - Src:             'write.c:2391,10'
          Dst:             hashtab_map
        - Src:             'write.c:2391,10'
          Dst:             role_attr_uncount
        - Src:             'write.c:2394,11'
          Dst:             put_entry
        - Src:             'write.c:2397,7'
          Dst:             hashtab_map
        - Src:             'write.c:2402,7'
          Dst:             avtab_write
        - Src:             'write.c:2409,8'
          Dst:             cond_write_list
        - Src:             'write.c:2412,7'
          Dst:             role_trans_write
        - Src:             'write.c:2414,7'
          Dst:             role_allow_write
        - Src:             'write.c:2417,8'
          Dst:             filename_trans_write
        - Src:             'write.c:2424,7'
          Dst:             avrule_block_write
        - Src:             'write.c:2430,8'
          Dst:             put_entry
        - Src:             'write.c:2433,8'
          Dst:             hashtab_map
        - Src:             'write.c:2433,8'
          Dst:             scope_write
        - Src:             'write.c:2438,6'
          Dst:             ocontext_write
        - Src:             'write.c:2438,43'
          Dst:             genfs_write
        - Src:             'write.c:2447,7'
          Dst:             range_write
        - Src:             'write.c:2455,8'
          Dst:             ebitmap_write
    - functionName:    is_perm_existent
      functionSourceFile: '/src/selinux/libsepol/src/avrule_block.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - hashtab_search
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'avrule_block.c:199,9'
          Dst:             hashtab_search
        - Src:             'avrule_block.c:204,7'
          Dst:             hashtab_search
    - functionName:    is_id_enabled
      functionSourceFile: '/src/selinux/libsepol/src/avrule_block.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          178
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - hashtab_search
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'avrule_block.c:158,24'
          Dst:             hashtab_search
    - functionName:    get_decl_cond_list
      functionSourceFile: '/src/selinux/libsepol/src/avrule_block.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - cond_node_find
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'avrule_block.c:143,11'
          Dst:             cond_node_find
    - functionName:    avrule_block_list_destroy
      functionSourceFile: '/src/selinux/libsepol/src/avrule_block.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - avrule_block_destroy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'avrule_block.c:131,3'
          Dst:             avrule_block_destroy
    - functionName:    avrule_block_destroy
      functionSourceFile: '/src/selinux/libsepol/src/avrule_block.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - avrule_decl_destroy
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'avrule_block.c:121,3'
          Dst:             avrule_decl_destroy
    - functionName:    avrule_decl_destroy
      functionSourceFile: '/src/selinux/libsepol/src/avrule_block.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - avrule_list_destroy
        - cond_list_destroy
        - filename_trans_rule_list_destroy
        - range_trans_rule_list_destroy
        - role_allow_rule_list_destroy
        - role_trans_rule_list_destroy
        - scope_index_destroy
        - symtabs_destroy
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'avrule_block.c:99,2'
          Dst:             cond_list_destroy
        - Src:             'avrule_block.c:100,2'
          Dst:             avrule_list_destroy
        - Src:             'avrule_block.c:101,2'
          Dst:             role_trans_rule_list_destroy
        - Src:             'avrule_block.c:102,2'
          Dst:             filename_trans_rule_list_destroy
        - Src:             'avrule_block.c:103,2'
          Dst:             role_allow_rule_list_destroy
        - Src:             'avrule_block.c:104,2'
          Dst:             range_trans_rule_list_destroy
        - Src:             'avrule_block.c:105,2'
          Dst:             scope_index_destroy
        - Src:             'avrule_block.c:106,2'
          Dst:             scope_index_destroy
        - Src:             'avrule_block.c:107,2'
          Dst:             symtabs_destroy
    - functionName:    scope_index_destroy
      functionSourceFile: '/src/selinux/libsepol/src/avrule_block.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          84
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - ebitmap_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'avrule_block.c:84,3'
          Dst:             ebitmap_destroy
        - Src:             'avrule_block.c:88,4'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avrule_decl_create
      functionSourceFile: '/src/selinux/libsepol/src/avrule_block.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          98
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - avrule_decl_destroy
        - calloc
        - ebitmap_init
        - symtab_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'avrule_block.c:57,14'
          Dst:             calloc
        - Src:             'avrule_block.c:62,7'
          Dst:             symtab_init
        - Src:             'avrule_block.c:63,4'
          Dst:             avrule_decl_destroy
        - Src:             'avrule_block.c:69,3'
          Dst:             ebitmap_init
        - Src:             'avrule_block.c:70,3'
          Dst:             ebitmap_init
    - functionName:    avrule_block_create
      functionSourceFile: '/src/selinux/libsepol/src/avrule_block.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'avrule_block.c:47,15'
          Dst:             calloc
    - functionName:    cond_insertf
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 622
      functionLinenumberEnd: 694
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          392
      EdgeCount:       77
      CyclomaticComplexity: 19
      functionsReached:
        - avtab_insert_nonunique
        - avtab_search
        - avtab_search_node
        - avtab_search_node_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:635,7'
          Dst:             avtab_search
        - Src:             'conditional.c:648,15'
          Dst:             avtab_search_node
        - Src:             'conditional.c:650,9'
          Dst:             avtab_search_node_next
        - Src:             'conditional.c:668,8'
          Dst:             avtab_search
        - Src:             'conditional.c:675,13'
          Dst:             avtab_insert_nonunique
    - functionName:    cond_read_av_list
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 698
      functionLinenumberEnd: 731
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          108
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - avtab_read_item
        - cond_av_list_destroy
        - cond_insertf
        - next_entry
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:706,7'
          Dst:             next_entry
        - Src:             'conditional.c:720,8'
          Dst:             avtab_read_item
        - Src:             'conditional.c:720,8'
          Dst:             cond_insertf
        - Src:             'conditional.c:723,4'
          Dst:             cond_av_list_destroy
    - functionName:    cond_av_list_destroy
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 464
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    expr_isvalid
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 734
      functionLinenumberEnd: 745
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          135
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cond_av_list_search
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 891
      functionLinenumberEnd: 906
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          94
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cond_compute_av
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 863
      functionLinenumberEnd: 887
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          142
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - avtab_search_node
        - avtab_search_node_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:869,14'
          Dst:             avtab_search_node
        - Src:             'conditional.c:870,14'
          Dst:             avtab_search_node_next
    - functionName:    cond_read_node
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 748
      functionLinenumberEnd: 819
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          255
      EdgeCount:       55
      CyclomaticComplexity: 17
      functionsReached:
        - avrule_read_list
        - cond_node_destroy
        - cond_read_av_list
        - expr_isvalid
        - next_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:753,7'
          Dst:             next_entry
        - Src:             'conditional.c:759,7'
          Dst:             next_entry
        - Src:             'conditional.c:767,8'
          Dst:             next_entry
        - Src:             'conditional.c:780,8'
          Dst:             expr_isvalid
        - Src:             'conditional.c:794,7'
          Dst:             cond_read_av_list
        - Src:             'conditional.c:796,7'
          Dst:             cond_read_av_list
        - Src:             'conditional.c:800,7'
          Dst:             avrule_read_list
        - Src:             'conditional.c:802,7'
          Dst:             avrule_read_list
        - Src:             'conditional.c:808,8'
          Dst:             next_entry
        - Src:             'conditional.c:816,2'
          Dst:             cond_node_destroy
    - functionName:    cond_node_destroy
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - avrule_list_destroy
        - cond_av_list_destroy
        - cond_expr_destroy
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:491,2'
          Dst:             cond_expr_destroy
        - Src:             'conditional.c:492,2'
          Dst:             avrule_list_destroy
        - Src:             'conditional.c:493,2'
          Dst:             avrule_list_destroy
        - Src:             'conditional.c:494,2'
          Dst:             cond_av_list_destroy
        - Src:             'conditional.c:495,2'
          Dst:             cond_av_list_destroy
    - functionName:    cond_expr_destroy
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 474
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          45
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cond_read_list
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 822
      functionLinenumberEnd: 856
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          123
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - avtab_alloc
        - cond_read_node
        - next_entry
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:827,7'
          Dst:             next_entry
        - Src:             'conditional.c:833,7'
          Dst:             avtab_alloc
        - Src:             'conditional.c:843,7'
          Dst:             cond_read_node
    - functionName:    bool_isvalid
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 561
      functionLinenumberEnd: 565
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          35
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cond_read_bool
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 570
      functionLinenumberEnd: 610
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          145
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - bool_isvalid
        - cond_destroy_bool
        - hashtab_insert
        - next_entry
        - str_read
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:581,7'
          Dst:             next_entry
        - Src:             'conditional.c:588,7'
          Dst:             bool_isvalid
        - Src:             'conditional.c:592,6'
          Dst:             str_read
        - Src:             'conditional.c:597,8'
          Dst:             next_entry
        - Src:             'conditional.c:603,6'
          Dst:             hashtab_insert
        - Src:             'conditional.c:608,2'
          Dst:             cond_destroy_bool
    - functionName:    cond_destroy_bool
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 533
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cond_index_bool
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 558
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          96
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cond_init_bool_indexes
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 521
      functionLinenumberEnd: 529
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:525,6'
          Dst:             calloc
    - functionName:    cond_policydb_destroy
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 518
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - avtab_destroy
        - cond_list_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:516,2'
          Dst:             avtab_destroy
        - Src:             'conditional.c:517,2'
          Dst:             cond_list_destroy
    - functionName:    cond_list_destroy
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 510
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          47
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - cond_node_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:507,3'
          Dst:             cond_node_destroy
    - functionName:    cond_policydb_init
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 454
      functionLinenumberEnd: 461
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - avtab_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:457,6'
          Dst:             avtab_init
    - functionName:    evaluate_cond_node
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          188
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - cond_evaluate_expr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:314,14'
          Dst:             cond_evaluate_expr
    - functionName:    cond_evaluate_expr
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          251
      EdgeCount:       35
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    4
      BranchProfiles:
        - Branch String:   'conditional.c:221,3'
          Branch Sides:    []
      Callsites:       []
    - functionName:    evaluate_conds
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 451
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - evaluate_cond_node
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:446,9'
          Dst:             evaluate_cond_node
    - functionName:    bool_present
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          73
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cond_normalize_expr
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 438
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         60
      ICount:          444
      EdgeCount:       74
      CyclomaticComplexity: 16
      functionsReached:
        - bool_present
        - cond_evaluate_expr
      functionUses:    3
      BranchProfiles:
        - Branch String:   'conditional.c:388,3'
          Branch Sides:    []
      Callsites:
        - Src:             'conditional.c:391,9'
          Dst:             bool_present
        - Src:             'conditional.c:421,8'
          Dst:             cond_evaluate_expr
    - functionName:    cond_node_search
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - cond_node_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:196,24'
          Dst:             cond_node_find
    - functionName:    cond_node_find
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - cond_expr_equal
        - cond_node_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:180,7'
          Dst:             cond_expr_equal
        - Src:             'conditional.c:188,9'
          Dst:             cond_node_create
    - functionName:    cond_expr_equal
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          190
      EdgeCount:       50
      CyclomaticComplexity: 15
      functionsReached:
        - same_bools
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:112,8'
          Dst:             same_bools
    - functionName:    cond_node_create
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          134
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - cond_copy_expr
        - cond_evaluate_expr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:154,20'
          Dst:             cond_copy_expr
        - Src:             'conditional.c:159,25'
          Dst:             cond_evaluate_expr
    - functionName:    cond_copy_expr
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          109
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    same_bools
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          74
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - bool_present
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:90,8'
          Dst:             bool_present
    - functionName:    cond_optimize
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          75
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cond_optimize_lists
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - cond_optimize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:57,3'
          Dst:             cond_optimize
        - Src:             'conditional.c:58,3'
          Dst:             cond_optimize
    - functionName:    constraint_expr_destroy
      functionSourceFile: '/src/selinux/libsepol/src/constraint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - type_set_destroy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'constraint.c:45,3'
          Dst:             ebitmap_destroy
        - Src:             'constraint.c:46,3'
          Dst:             type_set_destroy
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    constraint_expr_init
      functionSourceFile: '/src/selinux/libsepol/src/constraint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_init
        - type_set_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'constraint.c:31,2'
          Dst:             ebitmap_init
        - Src:             'constraint.c:35,2'
          Dst:             type_set_init
    - functionName:    mls_range_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:142,2'
          Dst:             mls_level_init
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:143,2'
          Dst:             mls_level_init
    - functionName:    mls_level_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_level_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - mls_level_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:98,2'
          Dst:             ebitmap_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:99,2'
          Dst:             mls_level_init
    - functionName:    mls_context_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_range_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:42,2'
          Dst:             mls_range_init
    - functionName:    mls_range_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:148,2'
          Dst:             mls_level_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:149,2'
          Dst:             mls_level_destroy
    - functionName:    mls_context_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_context_init
        - mls_range_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:112,2'
          Dst:             mls_range_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:113,2'
          Dst:             mls_context_init
    - functionName:    sepol_context_check
      functionSourceFile: '/src/selinux/libsepol/src/context.c'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 342
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - context_destroy
        - context_from_record
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'context.c:339,12'
          Dst:             context_from_record
        - Src:             'context.c:340,2'
          Dst:             context_destroy
    - functionName:    context_from_record
      functionSourceFile: '/src/selinux/libsepol/src/context.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         117
      ICount:          720
      EdgeCount:       151
      CyclomaticComplexity: 36
      functionsReached:
        - __errno_location
        - context_destroy
        - context_init
        - context_is_valid
        - hashtab_search
        - mls_from_string
        - sepol_context_get_mls
        - sepol_context_get_role
        - sepol_context_get_type
        - sepol_context_get_user
        - strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'context.c:155,22'
          Dst:             sepol_context_get_user
        - Src:             'context.c:155,15'
          Dst:             strdup
        - Src:             'context.c:156,22'
          Dst:             sepol_context_get_role
        - Src:             'context.c:156,15'
          Dst:             strdup
        - Src:             'context.c:157,22'
          Dst:             sepol_context_get_type
        - Src:             'context.c:157,15'
          Dst:             strdup
        - Src:             'context.c:158,20'
          Dst:             sepol_context_get_mls
        - Src:             'context.c:165,2'
          Dst:             context_init
        - Src:             'context.c:168,30'
          Dst:             hashtab_search
        - Src:             'context.c:177,30'
          Dst:             hashtab_search
        - Src:             'context.c:186,30'
          Dst:             hashtab_search
        - Src:             'context.c:203,14'
          Dst:             mls_from_string
        - Src:             'context.c:207,7'
          Dst:             context_is_valid
        - Src:             'context.c:227,2'
          Dst:             __errno_location
        - Src:             'context.c:228,2'
          Dst:             context_destroy
    - functionName:    context_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_context_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:135,2'
          Dst:             mls_context_destroy
    - functionName:    context_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    context_is_valid
      functionSourceFile: '/src/selinux/libsepol/src/context.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          202
      EdgeCount:       45
      CyclomaticComplexity: 14
      functionsReached:
        - ebitmap_get_bit
        - ebitmap_init
        - mls_context_isvalid
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'context.c:42,2'
          Dst:             ebitmap_init
        - Src:             'context.c:43,2'
          Dst:             ebitmap_init
        - Src:             'context.c:58,17'
          Dst:             ebitmap_get_bit
        - Src:             'context.c:69,8'
          Dst:             ebitmap_get_bit
        - Src:             'context.c:74,7'
          Dst:             mls_context_isvalid
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    context_from_string
      functionSourceFile: '/src/selinux/libsepol/src/context.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          250
      EdgeCount:       51
      CyclomaticComplexity: 13
      functionsReached:
        - context_from_record
        - sepol_context_free
        - sepol_context_from_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'context.c:315,6'
          Dst:             sepol_context_from_string
        - Src:             'context.c:319,6'
          Dst:             context_from_record
        - Src:             'context.c:323,2'
          Dst:             sepol_context_free
        - Src:             'context.c:329,2'
          Dst:             sepol_context_free
    - functionName:    context_to_record
      functionSourceFile: '/src/selinux/libsepol/src/context.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          197
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - mls_to_string
        - sepol_context_create
        - sepol_context_free
        - sepol_context_set_mls
        - sepol_context_set_role
        - sepol_context_set_type
        - sepol_context_set_user
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'context.c:251,6'
          Dst:             sepol_context_create
        - Src:             'context.c:254,6'
          Dst:             sepol_context_set_user
        - Src:             'context.c:259,6'
          Dst:             sepol_context_set_role
        - Src:             'context.c:264,6'
          Dst:             sepol_context_set_type
        - Src:             'context.c:270,7'
          Dst:             mls_to_string
        - Src:             'context.c:273,7'
          Dst:             sepol_context_set_mls
        - Src:             'context.c:283,2'
          Dst:             sepol_context_free
    - functionName:    context_to_string
      functionSourceFile: '/src/selinux/libsepol/src/context.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          246
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - mls_compute_context_len
        - mls_sid_to_context
        - sprintf
        - strlen
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'context.c:99,6'
          Dst:             strlen
        - Src:             'context.c:101,6'
          Dst:             strlen
        - Src:             'context.c:102,18'
          Dst:             strlen
        - Src:             'context.c:103,18'
          Dst:             mls_compute_context_len
        - Src:             'context.c:118,2'
          Dst:             sprintf
        - Src:             'context.c:124,6'
          Dst:             strlen
        - Src:             'context.c:125,6'
          Dst:             strlen
        - Src:             'context.c:126,6'
          Dst:             strlen
        - Src:             'context.c:128,2'
          Dst:             mls_sid_to_context
    - functionName:    sepol_check_context
      functionSourceFile: '/src/selinux/libsepol/src/context.c'
      linkageType:     InternalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_context_to_sid
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'context.c:26,9'
          Dst:             strlen
        - Src:             'context.c:25,9'
          Dst:             sepol_context_to_sid
    - functionName:    policydb_context_isvalid
      functionSourceFile: '/src/selinux/libsepol/src/context.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 19
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - context_is_valid
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'context.c:19,9'
          Dst:             context_is_valid
    - functionName:    sepol_context_to_string
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          382
      EdgeCount:       71
      CyclomaticComplexity: 17
      functionsReached:
        - snprintf
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'context_record.c:278,4'
          Dst:             strlen
        - Src:             'context_record.c:279,4'
          Dst:             strlen
        - Src:             'context_record.c:280,4'
          Dst:             strlen
        - Src:             'context_record.c:281,17'
          Dst:             strlen
        - Src:             'context_record.c:298,8'
          Dst:             snprintf
        - Src:             'context_record.c:301,8'
          Dst:             snprintf
    - functionName:    sepol_context_from_string
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         55
      ICount:          331
      EdgeCount:       72
      CyclomaticComplexity: 19
      functionsReached:
        - __errno_location
        - sepol_context_create
        - sepol_context_free
        - sepol_context_set_mls
        - sepol_context_set_role
        - sepol_context_set_type
        - sepol_context_set_user
        - strchr
        - strcmp
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'context_record.c:205,7'
          Dst:             strcmp
        - Src:             'context_record.c:210,6'
          Dst:             sepol_context_create
        - Src:             'context_record.c:214,8'
          Dst:             strdup
        - Src:             'context_record.c:224,15'
          Dst:             strchr
        - Src:             'context_record.c:228,6'
          Dst:             sepol_context_set_user
        - Src:             'context_record.c:233,15'
          Dst:             strchr
        - Src:             'context_record.c:237,6'
          Dst:             sepol_context_set_role
        - Src:             'context_record.c:242,15'
          Dst:             strchr
        - Src:             'context_record.c:243,7'
          Dst:             sepol_context_set_type
        - Src:             'context_record.c:247,7'
          Dst:             sepol_context_set_type
        - Src:             'context_record.c:250,7'
          Dst:             sepol_context_set_mls
        - Src:             'context_record.c:260,2'
          Dst:             __errno_location
        - Src:             'context_record.c:266,2'
          Dst:             sepol_context_free
    - functionName:    sepol_context_create
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          96
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_context_set_user
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'context_record.c:37,19'
          Dst:             strdup
    - functionName:    sepol_context_set_role
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'context_record.c:62,19'
          Dst:             strdup
    - functionName:    sepol_context_set_type
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - strdup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'context_record.c:86,19'
          Dst:             strdup
    - functionName:    sepol_context_set_mls
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'context_record.c:110,18'
          Dst:             strdup
    - functionName:    sepol_context_free
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_context_clone
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          217
      EdgeCount:       48
      CyclomaticComplexity: 13
      functionsReached:
        - sepol_context_create
        - sepol_context_free
        - strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'context_record.c:155,6'
          Dst:             sepol_context_create
        - Src:             'context_record.c:158,24'
          Dst:             strdup
        - Src:             'context_record.c:161,24'
          Dst:             strdup
        - Src:             'context_record.c:164,24'
          Dst:             strdup
        - Src:             'context_record.c:167,35'
          Dst:             strdup
        - Src:             'context_record.c:178,2'
          Dst:             sepol_context_free
    - functionName:    sepol_context_get_mls
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_context_get_type
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_context_get_role
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_context_get_user
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
...
