---
Fuzzer filename: '/src/krb5/src/tests/fuzzing/fuzz_profile.c'
All functions:
  Function list name: All functions
  Elements:
    - functionName:    LLVMFuzzerTestOneInput
      functionSourceFile: '/src/krb5/src/tests/fuzzing/fuzz_profile.c'
      linkageType:     externalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          112
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - fclose
        - fopen
        - fwrite
        - getpid
        - initialize_prof_error_table
        - profile_free_node
        - profile_parse_file
        - profile_verify_node
        - profile_write_tree_to_buffer
        - snprintf
        - unlink
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzz_profile.c:57,65'
          Dst:             getpid
        - Src:             'fuzz_profile.c:57,5'
          Dst:             snprintf
        - Src:             'fuzz_profile.c:60,12'
          Dst:             fopen
        - Src:             'fuzz_profile.c:63,5'
          Dst:             fwrite
        - Src:             'fuzz_profile.c:64,5'
          Dst:             fclose
        - Src:             'fuzz_profile.c:67,12'
          Dst:             fopen
        - Src:             'fuzz_profile.c:71,5'
          Dst:             initialize_prof_error_table
        - Src:             'fuzz_profile.c:73,11'
          Dst:             profile_parse_file
        - Src:             'fuzz_profile.c:75,15'
          Dst:             profile_write_tree_to_buffer
        - Src:             'fuzz_profile.c:79,9'
          Dst:             profile_verify_node
        - Src:             'fuzz_profile.c:80,9'
          Dst:             profile_free_node
        - Src:             'fuzz_profile.c:83,5'
          Dst:             fclose
        - Src:             'fuzz_profile.c:84,5'
          Dst:             unlink
    - functionName:    getpid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fopen
      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:    5
      BranchProfiles:  []
      Callsites:       []
    - 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:    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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unlink
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    profile_rename_node
      functionSourceFile: '/src/krb5/src/util/profile/prof_tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 703
      functionLinenumberEnd: 759
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          214
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - strcmp
        - strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_tree.c:709,9'
          Dst:             strcmp
        - Src:             'prof_tree.c:715,18'
          Dst:             strdup
        - Src:             'prof_tree.c:725,13'
          Dst:             strcmp
    - 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:    12
      BranchProfiles:  []
      Callsites:       []
    - 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:    14
      BranchProfiles:  []
      Callsites:       []
    - functionName:    profile_set_relation_value
      functionSourceFile: '/src/krb5/src/util/profile/prof_tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 679
      functionLinenumberEnd: 695
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_tree.c:687,10'
          Dst:             strdup
    - functionName:    profile_remove_node
      functionSourceFile: '/src/krb5/src/util/profile/prof_tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 661
      functionLinenumberEnd: 670
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    k5_mutex_unlock
      functionSourceFile: '/src/krb5/src/util/profile/../../include/k5-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 380
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - fprintf
        - k5_os_mutex_unlock
        - strerror
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '../../include/k5-thread.h:381,13'
          Dst:             k5_os_mutex_unlock
        - Src:             '../../include/k5-thread.h:385,20'
          Dst:             strerror
        - Src:             '../../include/k5-thread.h:384,9'
          Dst:             fprintf
        - Src:             '../../include/k5-thread.h:388,5'
          Dst:             __assert_fail
    - functionName:    strerror
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    13
      BranchProfiles:  []
      Callsites:       []
    - 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:    12
      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:    31
      BranchProfiles:  []
      Callsites:       []
    - functionName:    k5_mutex_lock
      functionSourceFile: '/src/krb5/src/util/profile/../../include/k5-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - fprintf
        - k5_os_mutex_lock
        - strerror
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../include/k5-thread.h:369,13'
          Dst:             k5_os_mutex_lock
        - Src:             '../../include/k5-thread.h:373,20'
          Dst:             strerror
        - Src:             '../../include/k5-thread.h:372,9'
          Dst:             fprintf
        - Src:             '../../include/k5-thread.h:376,5'
          Dst:             __assert_fail
    - functionName:    profile_node_iterator
      functionSourceFile: '/src/krb5/src/util/profile/prof_tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 520
      functionLinenumberEnd: 653
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         140
      ICount:          838
      EdgeCount:       188
      CyclomaticComplexity: 50
      functionsReached:
        - __assert_fail
        - k5_mutex_lock
        - k5_mutex_unlock
        - profile_node_iterator_free
        - profile_update_file_data_locked
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_tree.c:538,9'
          Dst:             k5_mutex_lock
        - Src:             'prof_tree.c:546,13'
          Dst:             k5_mutex_unlock
        - Src:             'prof_tree.c:554,17'
          Dst:             k5_mutex_unlock
        - Src:             'prof_tree.c:555,13'
          Dst:             profile_node_iterator_free
        - Src:             'prof_tree.c:564,23'
          Dst:             profile_update_file_data_locked
        - Src:             'prof_tree.c:565,13'
          Dst:             k5_mutex_unlock
        - Src:             'prof_tree.c:570,21'
          Dst:             k5_mutex_lock
        - Src:             'prof_tree.c:575,17'
          Dst:             profile_node_iterator_free
        - Src:             'prof_tree.c:585,9'
          Dst:             __assert_fail
        - Src:             'prof_tree.c:588,22'
          Dst:             strcmp
        - Src:             'prof_tree.c:600,13'
          Dst:             k5_mutex_unlock
        - Src:             'prof_tree.c:603,17'
          Dst:             k5_mutex_lock
        - Src:             'prof_tree.c:615,27'
          Dst:             strcmp
        - Src:             'prof_tree.c:635,9'
          Dst:             k5_mutex_unlock
        - Src:             'prof_tree.c:638,13'
          Dst:             k5_mutex_lock
        - Src:             'prof_tree.c:643,5'
          Dst:             k5_mutex_unlock
    - functionName:    profile_node_iterator_free
      functionSourceFile: '/src/krb5/src/util/profile/prof_tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 498
      functionLinenumberEnd: 508
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          50
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    profile_node_iterator_create
      functionSourceFile: '/src/krb5/src/util/profile/prof_tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 495
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          120
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    profile_get_node_parent
      functionSourceFile: '/src/krb5/src/util/profile/prof_tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 444
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    profile_find_node_subsection
      functionSourceFile: '/src/krb5/src/util/profile/prof_tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 420
      functionLinenumberEnd: 435
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          80
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - profile_find_node
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_tree.c:424,14'
          Dst:             profile_find_node
    - functionName:    profile_find_node
      functionSourceFile: '/src/krb5/src/util/profile/prof_tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          307
      EdgeCount:       87
      CyclomaticComplexity: 25
      functionsReached:
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_tree.c:319,22'
          Dst:             strcmp
        - Src:             'prof_tree.c:327,27'
          Dst:             strcmp
        - Src:             'prof_tree.c:347,22'
          Dst:             strcmp
        - Src:             'prof_tree.c:355,27'
          Dst:             strcmp
    - functionName:    profile_find_node_relation
      functionSourceFile: '/src/krb5/src/util/profile/prof_tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 402
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          102
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - profile_find_node
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_tree.c:389,14'
          Dst:             profile_find_node
    - functionName:    profile_get_node_value
      functionSourceFile: '/src/krb5/src/util/profile/prof_tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    profile_get_node_name
      functionSourceFile: '/src/krb5/src/util/profile/prof_tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    profile_is_node_final
      functionSourceFile: '/src/krb5/src/util/profile/prof_tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    profile_make_node_final
      functionSourceFile: '/src/krb5/src/util/profile/prof_tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          30
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    profile_add_node
      functionSourceFile: '/src/krb5/src/util/profile/prof_tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          274
      EdgeCount:       67
      CyclomaticComplexity: 19
      functionsReached:
        - profile_create_node
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_tree.c:216,15'
          Dst:             strcmp
        - Src:             'prof_tree.c:233,14'
          Dst:             profile_create_node
    - functionName:    profile_create_node
      functionSourceFile: '/src/krb5/src/util/profile/prof_tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          85
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - profile_free_node
        - strdup
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_tree.c:98,17'
          Dst:             strdup
        - Src:             'prof_tree.c:100,9'
          Dst:             profile_free_node
        - Src:             'prof_tree.c:104,22'
          Dst:             strdup
        - Src:             'prof_tree.c:106,13'
          Dst:             profile_free_node
    - functionName:    profile_free_node
      functionSourceFile: '/src/krb5/src/util/profile/prof_tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          89
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - profile_free_node
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_tree.c:64,9'
          Dst:             profile_free_node
    - functionName:    profile_verify_node
      functionSourceFile: '/src/krb5/src/util/profile/prof_tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          149
      EdgeCount:       38
      CyclomaticComplexity: 12
      functionsReached:
        - profile_verify_node
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_tree.c:185,18'
          Dst:             profile_verify_node
    - functionName:    profile_copy_node
      functionSourceFile: '/src/krb5/src/util/profile/prof_tree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          175
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - calloc
        - profile_copy_node
        - profile_free_node
        - strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_tree.c:124,12'
          Dst:             calloc
        - Src:             'prof_tree.c:126,18'
          Dst:             strdup
        - Src:             'prof_tree.c:130,23'
          Dst:             strdup
        - Src:             'prof_tree.c:141,13'
          Dst:             profile_copy_node
        - Src:             'prof_tree.c:156,5'
          Dst:             profile_free_node
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    make_hard_link
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 402
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - link
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:402,12'
          Dst:             link
    - functionName:    link
      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:    k5_mutex_finish_init
      functionSourceFile: '/src/krb5/src/util/profile/../../include/k5-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    profile_library_initializer
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - add_error_table
        - k5_mutex_finish_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:59,5'
          Dst:             add_error_table
        - Src:             'prof_file.c:61,12'
          Dst:             k5_mutex_finish_init
    - functionName:    profile_library_initializer__aux
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - profile_library_initializer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:51,1'
          Dst:             profile_library_initializer
    - functionName:    profile_free_file
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 598
      functionLinenumberEnd: 601
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - profile_dereference_data
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:599,5'
          Dst:             profile_dereference_data
    - functionName:    profile_dereference_data
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 538
      functionLinenumberEnd: 542
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - k5_mutex_lock
        - k5_mutex_unlock
        - profile_dereference_data_locked
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:539,5'
          Dst:             k5_mutex_lock
        - Src:             'prof_file.c:540,5'
          Dst:             profile_dereference_data_locked
        - Src:             'prof_file.c:541,5'
          Dst:             k5_mutex_unlock
    - functionName:    k5_mutex_lock
      functionSourceFile: '/src/krb5/src/util/profile/../../include/k5-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - fprintf
        - k5_os_mutex_lock
        - strerror
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             '../../include/k5-thread.h:369,13'
          Dst:             k5_os_mutex_lock
        - Src:             '../../include/k5-thread.h:373,20'
          Dst:             strerror
        - Src:             '../../include/k5-thread.h:372,9'
          Dst:             fprintf
        - Src:             '../../include/k5-thread.h:376,5'
          Dst:             __assert_fail
    - functionName:    profile_dereference_data_locked
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 544
      functionLinenumberEnd: 548
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - profile_free_file_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:547,9'
          Dst:             profile_free_file_data
    - functionName:    k5_mutex_unlock
      functionSourceFile: '/src/krb5/src/util/profile/../../include/k5-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 380
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - fprintf
        - k5_os_mutex_unlock
        - strerror
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             '../../include/k5-thread.h:381,13'
          Dst:             k5_os_mutex_unlock
        - Src:             '../../include/k5-thread.h:385,20'
          Dst:             strerror
        - Src:             '../../include/k5-thread.h:384,9'
          Dst:             fprintf
        - Src:             '../../include/k5-thread.h:388,5'
          Dst:             __assert_fail
    - functionName:    profile_free_file_data
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 629
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          103
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - k5_os_mutex_destroy
        - profile_free_node
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:625,9'
          Dst:             profile_free_node
        - Src:             'prof_file.c:627,5'
          Dst:             k5_os_mutex_destroy
    - functionName:    profile_copy_file
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 560
      functionLinenumberEnd: 595
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          151
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
        - k5_mutex_lock
        - k5_mutex_unlock
        - profile_copy_node
        - profile_free_file
        - profile_lock_global
        - profile_make_prf_data
        - profile_unlock_global
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:563,12'
          Dst:             calloc
        - Src:             'prof_file.c:570,9'
          Dst:             profile_lock_global
        - Src:             'prof_file.c:572,9'
          Dst:             profile_unlock_global
        - Src:             'prof_file.c:578,18'
          Dst:             profile_make_prf_data
        - Src:             'prof_file.c:583,5'
          Dst:             k5_mutex_lock
        - Src:             'prof_file.c:587,24'
          Dst:             profile_copy_node
        - Src:             'prof_file.c:588,5'
          Dst:             k5_mutex_unlock
        - Src:             'prof_file.c:590,9'
          Dst:             profile_free_file
    - functionName:    profile_lock_global
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 551
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - k5_mutex_lock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:552,5'
          Dst:             k5_mutex_lock
    - functionName:    profile_unlock_global
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 555
      functionLinenumberEnd: 557
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - k5_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:556,5'
          Dst:             k5_mutex_unlock
    - functionName:    profile_make_prf_data
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          112
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - k5_mutex_init
        - krb5int_strlcpy
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:145,12'
          Dst:             strlen
        - Src:             'prof_file.c:155,5'
          Dst:             __assert_fail
        - Src:             'prof_file.c:156,5'
          Dst:             krb5int_strlcpy
        - Src:             'prof_file.c:162,9'
          Dst:             k5_mutex_init
    - 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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    k5_mutex_init
      functionSourceFile: '/src/krb5/src/util/profile/../../include/k5-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - k5_os_mutex_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../include/k5-thread.h:358,12'
          Dst:             k5_os_mutex_init
    - functionName:    profile_flush_file_data_to_file
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 523
      functionLinenumberEnd: 533
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - k5_mutex_lock
        - k5_mutex_unlock
        - write_data_to_file
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:529,5'
          Dst:             k5_mutex_lock
        - Src:             'prof_file.c:530,14'
          Dst:             write_data_to_file
        - Src:             'prof_file.c:531,5'
          Dst:             k5_mutex_unlock
    - functionName:    write_data_to_file
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 485
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          219
      EdgeCount:       52
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - asprintf
        - fclose
        - fcntl
        - fileno
        - fopen
        - make_hard_link
        - profile_write_tree_file
        - rename
        - sync
        - unlink
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:417,9'
          Dst:             asprintf
        - Src:             'prof_file.c:421,9'
          Dst:             asprintf
        - Src:             'prof_file.c:426,5'
          Dst:             __errno_location
        - Src:             'prof_file.c:428,9'
          Dst:             fopen
        - Src:             'prof_file.c:430,18'
          Dst:             __errno_location
        - Src:             'prof_file.c:436,5'
          Dst:             fileno
        - Src:             'prof_file.c:436,5'
          Dst:             fcntl
        - Src:             'prof_file.c:437,5'
          Dst:             profile_write_tree_file
        - Src:             'prof_file.c:438,9'
          Dst:             fclose
        - Src:             'prof_file.c:439,18'
          Dst:             __errno_location
        - Src:             'prof_file.c:443,5'
          Dst:             unlink
        - Src:             'prof_file.c:444,9'
          Dst:             make_hard_link
        - Src:             'prof_file.c:448,13'
          Dst:             rename
        - Src:             'prof_file.c:452,22'
          Dst:             __errno_location
        - Src:             'prof_file.c:455,16'
          Dst:             __errno_location
        - Src:             'prof_file.c:456,13'
          Dst:             rename
        - Src:             'prof_file.c:457,22'
          Dst:             __errno_location
        - Src:             'prof_file.c:465,9'
          Dst:             sync
        - Src:             'prof_file.c:467,13'
          Dst:             rename
        - Src:             'prof_file.c:468,22'
          Dst:             __errno_location
        - Src:             'prof_file.c:471,13'
          Dst:             rename
        - Src:             'prof_file.c:472,22'
          Dst:             __errno_location
        - Src:             'prof_file.c:473,13'
          Dst:             rename
    - functionName:    asprintf
      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:    4
      BranchProfiles:  []
      Callsites:       []
    - 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:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fileno
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fcntl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rename
      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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sync
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    profile_flush_file_data
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 520
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          87
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - k5_mutex_lock
        - k5_mutex_unlock
        - write_data_to_file
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:509,5'
          Dst:             k5_mutex_lock
        - Src:             'prof_file.c:512,9'
          Dst:             k5_mutex_unlock
        - Src:             'prof_file.c:516,14'
          Dst:             write_data_to_file
        - Src:             'prof_file.c:518,5'
          Dst:             k5_mutex_unlock
    - functionName:    profile_flush_file_data_to_buffer
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 495
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - k5_mutex_lock
        - k5_mutex_unlock
        - profile_write_tree_to_buffer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:492,5'
          Dst:             k5_mutex_lock
        - Src:             'prof_file.c:493,14'
          Dst:             profile_write_tree_to_buffer
        - Src:             'prof_file.c:494,5'
          Dst:             k5_mutex_unlock
    - functionName:    profile_open_memory
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 265
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         14
      ICount:          84
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
        - profile_create_node
        - profile_free_node
        - profile_make_prf_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:270,12'
          Dst:             calloc
        - Src:             'prof_file.c:275,9'
          Dst:             profile_create_node
        - Src:             'prof_file.c:278,12'
          Dst:             profile_make_prf_data
        - Src:             'prof_file.c:291,9'
          Dst:             profile_free_node
    - functionName:    profile_close_file
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 632
      functionLinenumberEnd: 640
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          61
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - profile_flush_file_data
        - profile_free_file
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:635,14'
          Dst:             profile_flush_file_data
        - Src:             'prof_file.c:638,5'
          Dst:             profile_free_file
    - functionName:    profile_update_file_data
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - k5_mutex_lock
        - k5_mutex_unlock
        - profile_update_file_data_locked
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:390,5'
          Dst:             k5_mutex_lock
        - Src:             'prof_file.c:391,14'
          Dst:             profile_update_file_data_locked
        - Src:             'prof_file.c:392,5'
          Dst:             k5_mutex_unlock
    - functionName:    profile_update_file_data_locked
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 384
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         47
      ICount:          307
      EdgeCount:       63
      CyclomaticComplexity: 18
      functionsReached:
        - __assert_fail
        - __errno_location
        - fclose
        - fcntl
        - fileno
        - fopen
        - profile_free_node
        - profile_parse_file
        - profile_process_directory
        - stat
        - time
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:315,11'
          Dst:             time
        - Src:             'prof_file.c:319,9'
          Dst:             stat
        - Src:             'prof_file.c:320,16'
          Dst:             __errno_location
        - Src:             'prof_file.c:338,9'
          Dst:             profile_free_node
        - Src:             'prof_file.c:360,9'
          Dst:             __errno_location
        - Src:             'prof_file.c:361,13'
          Dst:             fopen
        - Src:             'prof_file.c:363,21'
          Dst:             __errno_location
        - Src:             'prof_file.c:363,35'
          Dst:             __errno_location
        - Src:             'prof_file.c:364,9'
          Dst:             fileno
        - Src:             'prof_file.c:364,9'
          Dst:             fcntl
        - Src:             'prof_file.c:370,18'
          Dst:             profile_process_directory
        - Src:             'prof_file.c:372,18'
          Dst:             profile_parse_file
        - Src:             'prof_file.c:373,15'
          Dst:             fclose
        - Src:             'prof_file.c:378,5'
          Dst:             __assert_fail
    - functionName:    time
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stat
      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:    r_access
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - access
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:108,9'
          Dst:             access
    - functionName:    access
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    profile_open_file
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          391
      EdgeCount:       87
      CyclomaticComplexity: 25
      functionsReached:
        - __assert_fail
        - asprintf
        - getpwuid_r
        - getuid
        - k5_mutex_lock
        - k5_mutex_unlock
        - k5_once
        - profile_close_file
        - profile_dereference_data
        - profile_make_prf_data
        - profile_update_file_data
        - profile_update_file_data_locked
        - r_access
        - secure_getenv
        - strcmp
        - strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:178,14'
          Dst:             k5_once
        - Src:             'prof_file.c:178,14'
          Dst:             __assert_fail
        - Src:             'prof_file.c:189,20'
          Dst:             secure_getenv
        - Src:             'prof_file.c:196,19'
          Dst:             getuid
        - Src:             'prof_file.c:197,18'
          Dst:             getpwuid_r
        - Src:             'prof_file.c:204,13'
          Dst:             asprintf
        - Src:             'prof_file.c:208,29'
          Dst:             strdup
        - Src:             'prof_file.c:214,5'
          Dst:             k5_mutex_lock
        - Src:             'prof_file.c:216,14'
          Dst:             strcmp
        - Src:             'prof_file.c:218,16'
          Dst:             r_access
        - Src:             'prof_file.c:223,9'
          Dst:             k5_mutex_unlock
        - Src:             'prof_file.c:224,9'
          Dst:             k5_mutex_lock
        - Src:             'prof_file.c:226,18'
          Dst:             profile_update_file_data_locked
        - Src:             'prof_file.c:227,9'
          Dst:             k5_mutex_unlock
        - Src:             'prof_file.c:230,13'
          Dst:             profile_dereference_data
        - Src:             'prof_file.c:238,5'
          Dst:             k5_mutex_unlock
        - Src:             'prof_file.c:239,12'
          Dst:             profile_make_prf_data
        - Src:             'prof_file.c:248,14'
          Dst:             profile_update_file_data
        - Src:             'prof_file.c:250,9'
          Dst:             profile_close_file
        - Src:             'prof_file.c:254,5'
          Dst:             k5_mutex_lock
        - Src:             'prof_file.c:258,5'
          Dst:             k5_mutex_unlock
    - functionName:    secure_getenv
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getuid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getpwuid_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rw_access
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - access
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:84,9'
          Dst:             access
    - functionName:    profile_file_is_writable
      functionSourceFile: '/src/krb5/src/util/profile/prof_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - rw_access
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_file.c:132,16'
          Dst:             rw_access
    - functionName:    output_quoted_string
      functionSourceFile: '/src/krb5/src/util/profile/prof_parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 481
      functionLinenumberEnd: 515
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          111
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'prof_parse.c:492,9'
          Branch Sides:    []
      Callsites:       []
    - functionName:    need_double_quotes
      functionSourceFile: '/src/krb5/src/util/profile/prof_parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 463
      functionLinenumberEnd: 473
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          106
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - __ctype_b_loc
        - strchr
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_parse.c:468,9'
          Dst:             __ctype_b_loc
        - Src:             'prof_parse.c:468,33'
          Dst:             __ctype_b_loc
        - Src:             'prof_parse.c:468,33'
          Dst:             strlen
        - Src:             'prof_parse.c:470,9'
          Dst:             strchr
        - Src:             'prof_parse.c:470,30'
          Dst:             strchr
        - Src:             'prof_parse.c:470,51'
          Dst:             strchr
    - 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:    8
      BranchProfiles:  []
      Callsites:       []
    - 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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_include_file
      functionSourceFile: '/src/krb5/src/util/profile/prof_parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fclose
        - fopen
        - parse_file
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_parse.c:229,10'
          Dst:             fopen
        - Src:             'prof_parse.c:232,14'
          Dst:             parse_file
        - Src:             'prof_parse.c:233,5'
          Dst:             fclose
    - functionName:    parse_file
      functionSourceFile: '/src/krb5/src/util/profile/prof_parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          75
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - feof
        - fgets
        - parse_line
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_parse.c:351,13'
          Dst:             feof
        - Src:             'prof_parse.c:352,13'
          Dst:             fgets
        - Src:             'prof_parse.c:355,18'
          Dst:             parse_line
    - functionName:    feof
      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:    fgets
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_line
      functionSourceFile: '/src/krb5/src/util/profile/prof_parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          140
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - __ctype_b_loc
        - parse_std_line
        - skip_over_blanks
        - strdup
        - strip_line
        - strncmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'prof_parse.c:307,5'
          Branch Sides:    []
      Callsites:
        - Src:             'prof_parse.c:309,13'
          Dst:             strncmp
        - Src:             'prof_parse.c:309,48'
          Dst:             __ctype_b_loc
        - Src:             'prof_parse.c:318,22'
          Dst:             skip_over_blanks
        - Src:             'prof_parse.c:319,17'
          Dst:             strip_line
        - Src:             'prof_parse.c:320,32'
          Dst:             strdup
        - Src:             'prof_parse.c:330,16'
          Dst:             parse_std_line
        - Src:             'prof_parse.c:332,14'
          Dst:             skip_over_blanks
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    skip_over_blanks
      functionSourceFile: '/src/krb5/src/util/profile/prof_parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __ctype_b_loc
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_parse.c:35,19'
          Dst:             __ctype_b_loc
    - functionName:    strip_line
      functionSourceFile: '/src/krb5/src/util/profile/prof_parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          64
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_parse.c:42,22'
          Dst:             strlen
    - functionName:    parse_std_line
      functionSourceFile: '/src/krb5/src/util/profile/prof_parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         104
      ICount:          647
      EdgeCount:       143
      CyclomaticComplexity: 41
      functionsReached:
        - __ctype_b_loc
        - parse_quoted_string
        - profile_add_node
        - profile_get_node_parent
        - profile_is_node_final
        - profile_make_node_final
        - skip_over_blanks
        - strchr
        - strip_line
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_parse.c:85,10'
          Dst:             skip_over_blanks
        - Src:             'prof_parse.c:88,5'
          Dst:             strip_line
        - Src:             'prof_parse.c:96,13'
          Dst:             strchr
        - Src:             'prof_parse.c:100,18'
          Dst:             profile_add_node
        - Src:             'prof_parse.c:107,26'
          Dst:             profile_is_node_final
        - Src:             'prof_parse.c:115,13'
          Dst:             profile_make_node_final
        - Src:             'prof_parse.c:121,14'
          Dst:             skip_over_blanks
        - Src:             'prof_parse.c:130,13'
          Dst:             profile_make_node_final
        - Src:             'prof_parse.c:138,22'
          Dst:             profile_get_node_parent
        - Src:             'prof_parse.c:149,10'
          Dst:             strchr
        - Src:             'prof_parse.c:157,23'
          Dst:             __ctype_b_loc
        - Src:             'prof_parse.c:164,18'
          Dst:             __ctype_b_loc
        - Src:             'prof_parse.c:169,10'
          Dst:             skip_over_blanks
        - Src:             'prof_parse.c:173,9'
          Dst:             parse_quoted_string
        - Src:             'prof_parse.c:177,37'
          Dst:             skip_over_blanks
        - Src:             'prof_parse.c:180,22'
          Dst:             strlen
        - Src:             'prof_parse.c:181,32'
          Dst:             __ctype_b_loc
        - Src:             'prof_parse.c:185,13'
          Dst:             strchr
        - Src:             'prof_parse.c:190,22'
          Dst:             profile_add_node
        - Src:             'prof_parse.c:196,17'
          Dst:             profile_is_node_final
        - Src:             'prof_parse.c:199,17'
          Dst:             profile_make_node_final
        - Src:             'prof_parse.c:203,9'
          Dst:             strchr
        - Src:             'prof_parse.c:207,9'
          Dst:             profile_add_node
        - Src:             'prof_parse.c:209,13'
          Dst:             profile_make_node_final
    - functionName:    parse_quoted_string
      functionSourceFile: '/src/krb5/src/util/profile/prof_parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          107
      EdgeCount:       20
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'prof_parse.c:54,13'
          Branch Sides:    []
      Callsites:       []
    - functionName:    valid_name
      functionSourceFile: '/src/krb5/src/util/profile/prof_parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          120
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __ctype_b_loc
        - strcmp
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_parse.c:242,18'
          Dst:             strlen
        - Src:             'prof_parse.c:248,22'
          Dst:             strcmp
        - Src:             'prof_parse.c:252,14'
          Dst:             __ctype_b_loc
    - functionName:    add_data_to_buffer
      functionSourceFile: '/src/krb5/src/util/profile/prof_parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 603
      functionLinenumberEnd: 621
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - realloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_parse.c:611,18'
          Dst:             realloc
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dump_profile_to_buffer_cb
      functionSourceFile: '/src/krb5/src/util/profile/prof_parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 624
      functionLinenumberEnd: 626
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - add_data_to_buffer
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_parse.c:625,54'
          Dst:             strlen
        - Src:             'prof_parse.c:625,5'
          Dst:             add_data_to_buffer
    - functionName:    profile_write_tree_to_buffer
      functionSourceFile: '/src/krb5/src/util/profile/prof_parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 630
      functionLinenumberEnd: 646
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          77
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - add_data_to_buffer
        - dump_profile
        - dump_profile_to_buffer_cb
        - realloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_parse.c:633,5'
          Dst:             dump_profile
        - Src:             'prof_parse.c:633,5'
          Dst:             dump_profile_to_buffer_cb
        - Src:             'prof_parse.c:638,5'
          Dst:             add_data_to_buffer
        - Src:             'prof_parse.c:640,24'
          Dst:             realloc
    - functionName:    dump_profile
      functionSourceFile: '/src/krb5/src/util/profile/prof_parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 530
      functionLinenumberEnd: 583
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          283
      EdgeCount:       44
      CyclomaticComplexity: 11
      functionsReached:
        - dump_profile
        - need_double_quotes
        - output_quoted_string
        - profile_find_node_relation
        - profile_find_node_subsection
        - profile_is_node_final
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_parse.c:539,18'
          Dst:             profile_find_node_relation
        - Src:             'prof_parse.c:548,13'
          Dst:             need_double_quotes
        - Src:             'prof_parse.c:549,13'
          Dst:             output_quoted_string
        - Src:             'prof_parse.c:557,18'
          Dst:             profile_find_node_subsection
        - Src:             'prof_parse.c:565,16'
          Dst:             profile_is_node_final
        - Src:             'prof_parse.c:567,13'
          Dst:             dump_profile
        - Src:             'prof_parse.c:575,13'
          Dst:             dump_profile
        - Src:             'prof_parse.c:579,16'
          Dst:             profile_is_node_final
    - functionName:    dump_profile_to_file_cb
      functionSourceFile: '/src/krb5/src/util/profile/prof_parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 586
      functionLinenumberEnd: 588
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fputs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_parse.c:587,5'
          Dst:             fputs
    - functionName:    fputs
      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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    profile_write_tree_file
      functionSourceFile: '/src/krb5/src/util/profile/prof_parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 591
      functionLinenumberEnd: 593
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dump_profile
        - dump_profile_to_file_cb
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_parse.c:592,5'
          Dst:             dump_profile
        - Src:             'prof_parse.c:592,5'
          Dst:             dump_profile_to_file_cb
    - functionName:    parse_include_dir
      functionSourceFile: '/src/krb5/src/util/profile/prof_parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          112
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - asprintf
        - k5_dir_filenames
        - k5_free_filenames
        - parse_include_file
        - valid_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_parse.c:271,9'
          Dst:             k5_dir_filenames
        - Src:             'prof_parse.c:275,14'
          Dst:             valid_name
        - Src:             'prof_parse.c:277,13'
          Dst:             asprintf
        - Src:             'prof_parse.c:281,18'
          Dst:             parse_include_file
        - Src:             'prof_parse.c:286,5'
          Dst:             k5_free_filenames
    - functionName:    profile_process_directory
      functionSourceFile: '/src/krb5/src/util/profile/prof_parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 457
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - parse_include_dir
        - profile_create_node
        - profile_free_node
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_parse.c:447,14'
          Dst:             profile_create_node
        - Src:             'prof_parse.c:450,14'
          Dst:             parse_include_dir
        - Src:             'prof_parse.c:452,9'
          Dst:             profile_free_node
    - functionName:    profile_parse_file
      functionSourceFile: '/src/krb5/src/util/profile/prof_parse.c'
      linkageType:     InternalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 438
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          70
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - parse_file
        - profile_create_node
        - profile_free_node
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_parse.c:427,14'
          Dst:             profile_create_node
        - Src:             'prof_parse.c:431,14'
          Dst:             parse_file
        - Src:             'prof_parse.c:433,9'
          Dst:             profile_free_node
    - functionName:    initialize_prof_error_table
      functionSourceFile: '/src/krb5/src/util/profile/prof_err.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - add_error_table
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'prof_err.c:73,12'
          Dst:             add_error_table
    - functionName:    k5_mutex_finish_init
      functionSourceFile: '/src/krb5/src/util/et/../../include/k5-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    com_err_initialize
      functionSourceFile: '/src/krb5/src/util/et/error_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          56
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - k5_mutex_finish_init
        - krb5int_key_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error_message.c:41,11'
          Dst:             k5_mutex_finish_init
        - Src:             'error_message.c:44,11'
          Dst:             k5_mutex_finish_init
        - Src:             'error_message.c:47,11'
          Dst:             krb5int_key_register
    - functionName:    com_err_initialize__aux
      functionSourceFile: '/src/krb5/src/util/et/error_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - com_err_initialize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error_message.c:31,1'
          Dst:             com_err_initialize
    - functionName:    com_err_finish_init
      functionSourceFile: '/src/krb5/src/util/et/error_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - k5_once
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'error_message.c:308,12'
          Dst:             k5_once
        - Src:             'error_message.c:308,12'
          Dst:             __assert_fail
    - functionName:    remove_error_table
      functionSourceFile: '/src/krb5/src/util/et/error_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          121
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - k5_mutex_lock
        - k5_mutex_unlock
        - k5_once
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error_message.c:288,9'
          Dst:             k5_once
        - Src:             'error_message.c:288,9'
          Dst:             __assert_fail
        - Src:             'error_message.c:290,5'
          Dst:             k5_mutex_lock
        - Src:             'error_message.c:298,13'
          Dst:             k5_mutex_unlock
        - Src:             'error_message.c:302,5'
          Dst:             k5_mutex_unlock
    - functionName:    k5_mutex_lock
      functionSourceFile: '/src/krb5/src/util/et/../../include/k5-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - fprintf
        - k5_os_mutex_lock
        - strerror
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../include/k5-thread.h:369,13'
          Dst:             k5_os_mutex_lock
        - Src:             '../../include/k5-thread.h:373,20'
          Dst:             strerror
        - Src:             '../../include/k5-thread.h:372,9'
          Dst:             fprintf
        - Src:             '../../include/k5-thread.h:376,5'
          Dst:             __assert_fail
    - functionName:    k5_mutex_unlock
      functionSourceFile: '/src/krb5/src/util/et/../../include/k5-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 380
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - fprintf
        - k5_os_mutex_unlock
        - strerror
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '../../include/k5-thread.h:381,13'
          Dst:             k5_os_mutex_unlock
        - Src:             '../../include/k5-thread.h:385,20'
          Dst:             strerror
        - Src:             '../../include/k5-thread.h:384,9'
          Dst:             fprintf
        - Src:             '../../include/k5-thread.h:388,5'
          Dst:             __assert_fail
    - functionName:    add_error_table
      functionSourceFile: '/src/krb5/src/util/et/error_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          145
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - bindtextdomain
        - k5_mutex_lock
        - k5_mutex_unlock
        - k5_once
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'error_message.c:257,9'
          Dst:             k5_once
        - Src:             'error_message.c:257,9'
          Dst:             __assert_fail
        - Src:             'error_message.c:266,5'
          Dst:             k5_mutex_lock
        - Src:             'error_message.c:273,9'
          Dst:             bindtextdomain
        - Src:             'error_message.c:275,5'
          Dst:             k5_mutex_unlock
    - functionName:    bindtextdomain
      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:    get_thread_buffer
      functionSourceFile: '/src/krb5/src/util/et/error_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         11
      ICount:          52
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - krb5int_getspecific
        - krb5int_setspecific
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'error_message.c:88,10'
          Dst:             krb5int_getspecific
        - Src:             'error_message.c:94,13'
          Dst:             krb5int_setspecific
    - functionName:    error_message
      functionSourceFile: '/src/krb5/src/util/et/error_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         55
      ICount:          359
      EdgeCount:       72
      CyclomaticComplexity: 19
      functionsReached:
        - __assert_fail
        - abort
        - dgettext
        - error_table_name_r
        - get_thread_buffer
        - k5_mutex_lock
        - k5_mutex_unlock
        - k5_once
        - k5_strerror_r
        - krb5int_strlcpy
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error_message.c:114,9'
          Dst:             k5_once
        - Src:             'error_message.c:114,9'
          Dst:             __assert_fail
        - Src:             'error_message.c:134,13'
          Dst:             abort
        - Src:             'error_message.c:135,14'
          Dst:             get_thread_buffer
        - Src:             'error_message.c:136,19'
          Dst:             k5_strerror_r
        - Src:             'error_message.c:138,16'
          Dst:             strerror
        - Src:             'error_message.c:141,5'
          Dst:             k5_mutex_lock
        - Src:             'error_message.c:154,5'
          Dst:             k5_mutex_unlock
        - Src:             'error_message.c:167,16'
          Dst:             dgettext
        - Src:             'error_message.c:172,5'
          Dst:             k5_mutex_unlock
        - Src:             'error_message.c:227,10'
          Dst:             get_thread_buffer
        - Src:             'error_message.c:231,5'
          Dst:             krb5int_strlcpy
        - Src:             'error_message.c:234,16'
          Dst:             error_table_name_r
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dgettext
      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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    error_table_name
      functionSourceFile: '/src/krb5/src/util/et/et_name.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - error_table_name_r
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'et_name.c:56,12'
          Dst:             error_table_name_r
    - functionName:    error_table_name_r
      functionSourceFile: '/src/krb5/src/util/et/et_name.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reset_com_err_hook
      functionSourceFile: '/src/krb5/src/util/et/com_err.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         5
      ICount:          30
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - abort
        - com_err_finish_init
        - com_err_lock_hook_handle
        - k5_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'com_err.c:169,9'
          Dst:             com_err_finish_init
        - Src:             'com_err.c:170,9'
          Dst:             abort
        - Src:             'com_err.c:171,5'
          Dst:             com_err_lock_hook_handle
        - Src:             'com_err.c:174,5'
          Dst:             k5_mutex_unlock
    - functionName:    com_err_lock_hook_handle
      functionSourceFile: '/src/krb5/src/util/et/com_err.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - k5_mutex_lock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'com_err.c:147,5'
          Dst:             k5_mutex_lock
    - functionName:    k5_mutex_unlock
      functionSourceFile: '/src/krb5/src/util/et/../../include/k5-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 380
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - fprintf
        - k5_os_mutex_unlock
        - strerror
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '../../include/k5-thread.h:381,13'
          Dst:             k5_os_mutex_unlock
        - Src:             '../../include/k5-thread.h:385,20'
          Dst:             strerror
        - Src:             '../../include/k5-thread.h:384,9'
          Dst:             fprintf
        - Src:             '../../include/k5-thread.h:388,5'
          Dst:             __assert_fail
    - functionName:    k5_mutex_lock
      functionSourceFile: '/src/krb5/src/util/et/../../include/k5-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - fprintf
        - k5_os_mutex_lock
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../include/k5-thread.h:369,13'
          Dst:             k5_os_mutex_lock
        - Src:             '../../include/k5-thread.h:373,20'
          Dst:             strerror
        - Src:             '../../include/k5-thread.h:372,9'
          Dst:             fprintf
        - Src:             '../../include/k5-thread.h:376,5'
          Dst:             __assert_fail
    - functionName:    set_com_err_hook
      functionSourceFile: '/src/krb5/src/util/et/com_err.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          33
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - abort
        - com_err_finish_init
        - com_err_lock_hook_handle
        - k5_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'com_err.c:155,9'
          Dst:             com_err_finish_init
        - Src:             'com_err.c:156,9'
          Dst:             abort
        - Src:             'com_err.c:157,5'
          Dst:             com_err_lock_hook_handle
        - Src:             'com_err.c:160,5'
          Dst:             k5_mutex_unlock
    - functionName:    com_err
      functionSourceFile: '/src/krb5/src/util/et/com_err.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - com_err_va
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'com_err.c:138,5'
          Dst:             com_err_va
    - functionName:    com_err_va
      functionSourceFile: '/src/krb5/src/util/et/com_err.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          91
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - abort
        - com_err_finish_init
        - default_com_err_proc
        - k5_mutex_lock
        - k5_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'com_err.c:106,11'
          Dst:             com_err_finish_init
        - Src:             'com_err.c:109,5'
          Dst:             k5_mutex_lock
        - Src:             'com_err.c:112,5'
          Dst:             k5_mutex_unlock
        - Src:             'com_err.c:123,9'
          Dst:             default_com_err_proc
        - Src:             'com_err.c:126,5'
          Dst:             __assert_fail
        - Src:             'com_err.c:127,5'
          Dst:             abort
    - functionName:    default_com_err_proc
      functionSourceFile: '/src/krb5/src/util/et/com_err.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          74
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - error_message
        - fflush
        - fputs
        - putc
        - vfprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'com_err.c:80,9'
          Dst:             fputs
        - Src:             'com_err.c:81,9'
          Dst:             fputs
        - Src:             'com_err.c:84,15'
          Dst:             error_message
        - Src:             'com_err.c:84,9'
          Dst:             fputs
        - Src:             'com_err.c:85,9'
          Dst:             fputs
        - Src:             'com_err.c:88,9'
          Dst:             vfprintf
        - Src:             'com_err.c:91,5'
          Dst:             putc
        - Src:             'com_err.c:92,5'
          Dst:             putc
        - Src:             'com_err.c:93,5'
          Dst:             fflush
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    putc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fflush
      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:    thread_termination
      functionSourceFile: '/src/krb5/src/util/support/threads.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          126
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - k5_mutex_lock
        - k5_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'threads.c:196,5'
          Dst:             k5_mutex_lock
        - Src:             'threads.c:222,5'
          Dst:             k5_mutex_unlock
    - functionName:    k5_mutex_lock
      functionSourceFile: '/src/krb5/src/util/support/../../include/k5-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - fprintf
        - k5_os_mutex_lock
        - strerror
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../include/k5-thread.h:369,13'
          Dst:             k5_os_mutex_lock
        - Src:             '../../include/k5-thread.h:373,20'
          Dst:             strerror
        - Src:             '../../include/k5-thread.h:372,9'
          Dst:             fprintf
        - Src:             '../../include/k5-thread.h:376,5'
          Dst:             __assert_fail
    - functionName:    k5_mutex_unlock
      functionSourceFile: '/src/krb5/src/util/support/../../include/k5-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 380
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - fprintf
        - k5_os_mutex_unlock
        - strerror
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../include/k5-thread.h:381,13'
          Dst:             k5_os_mutex_unlock
        - Src:             '../../include/k5-thread.h:385,20'
          Dst:             strerror
        - Src:             '../../include/k5-thread.h:384,9'
          Dst:             fprintf
        - Src:             '../../include/k5-thread.h:388,5'
          Dst:             __assert_fail
    - functionName:    k5_os_mutex_unlock
      functionSourceFile: '/src/krb5/src/util/support/threads.c'
      linkageType:     InternalLinkage
      functionLinenumber: 549
      functionLinenumberEnd: 554
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - krb5int_pthread_loaded
        - pthread_mutex_unlock
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'threads.c:550,9'
          Dst:             krb5int_pthread_loaded
        - Src:             'threads.c:551,16'
          Dst:             pthread_mutex_unlock
    - functionName:    krb5int_pthread_loaded
      functionSourceFile: '/src/krb5/src/util/support/threads.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         37
      ICount:          131
      EdgeCount:       53
      CyclomaticComplexity: 18
      functionsReached:
        - loaded_test_aux
        - pthread_once
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'threads.c:161,12'
          Dst:             pthread_once
        - Src:             'threads.c:161,12'
          Dst:             loaded_test_aux
        - Src:             'threads.c:162,12'
          Dst:             pthread_once
        - Src:             'threads.c:162,12'
          Dst:             loaded_test_aux
    - functionName:    pthread_mutex_unlock
      functionSourceFile: ''
      linkageType:     ExternalWeakLinkage
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_getspecific
      functionSourceFile: ''
      linkageType:     ExternalWeakLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_setspecific
      functionSourceFile: ''
      linkageType:     ExternalWeakLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_key_create
      functionSourceFile: ''
      linkageType:     ExternalWeakLinkage
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_key_delete
      functionSourceFile: ''
      linkageType:     ExternalWeakLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_once
      functionSourceFile: ''
      linkageType:     ExternalWeakLinkage
      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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_mutex_lock
      functionSourceFile: ''
      linkageType:     ExternalWeakLinkage
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_mutex_destroy
      functionSourceFile: ''
      linkageType:     ExternalWeakLinkage
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_mutex_init
      functionSourceFile: ''
      linkageType:     ExternalWeakLinkage
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_self
      functionSourceFile: ''
      linkageType:     ExternalWeakLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_create
      functionSourceFile: ''
      linkageType:     ExternalWeakLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_join
      functionSourceFile: ''
      linkageType:     ExternalWeakLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    loaded_test_aux
      functionSourceFile: '/src/krb5/src/util/support/threads.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         4
      ICount:          18
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    k5_os_mutex_lock
      functionSourceFile: '/src/krb5/src/util/support/threads.c'
      linkageType:     InternalLinkage
      functionLinenumber: 540
      functionLinenumberEnd: 545
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - krb5int_pthread_loaded
        - pthread_mutex_lock
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'threads.c:541,9'
          Dst:             krb5int_pthread_loaded
        - Src:             'threads.c:542,16'
          Dst:             pthread_mutex_lock
    - functionName:    k5_mutex_finish_init
      functionSourceFile: '/src/krb5/src/util/support/../../include/k5-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5int_thread_support_init
      functionSourceFile: '/src/krb5/src/util/support/threads.c'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 444
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          79
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - k5_mutex_finish_init
        - krb5int_err_init
        - krb5int_init_fac
        - krb5int_pthread_loaded
        - pthread_key_create
        - thread_termination
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'threads.c:424,11'
          Dst:             k5_mutex_finish_init
        - Src:             'threads.c:427,9'
          Dst:             krb5int_pthread_loaded
        - Src:             'threads.c:428,15'
          Dst:             pthread_key_create
        - Src:             'threads.c:428,15'
          Dst:             thread_termination
        - Src:             'threads.c:435,11'
          Dst:             krb5int_init_fac
        - Src:             'threads.c:439,11'
          Dst:             krb5int_err_init
    - functionName:    krb5int_thread_support_init__aux
      functionSourceFile: '/src/krb5/src/util/support/threads.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - krb5int_thread_support_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'threads.c:32,1'
          Dst:             krb5int_thread_support_init
    - functionName:    k5_os_mutex_init
      functionSourceFile: '/src/krb5/src/util/support/threads.c'
      linkageType:     InternalLinkage
      functionLinenumber: 522
      functionLinenumberEnd: 527
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - krb5int_pthread_loaded
        - pthread_mutex_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'threads.c:523,9'
          Dst:             krb5int_pthread_loaded
        - Src:             'threads.c:524,16'
          Dst:             pthread_mutex_init
    - functionName:    krb5int_mutex_unlock
      functionSourceFile: '/src/krb5/src/util/support/threads.c'
      linkageType:     InternalLinkage
      functionLinenumber: 514
      functionLinenumberEnd: 516
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - k5_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'threads.c:515,5'
          Dst:             k5_mutex_unlock
    - functionName:    krb5int_mutex_lock
      functionSourceFile: '/src/krb5/src/util/support/threads.c'
      linkageType:     InternalLinkage
      functionLinenumber: 509
      functionLinenumberEnd: 511
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - k5_mutex_lock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'threads.c:510,5'
          Dst:             k5_mutex_lock
    - functionName:    k5_os_mutex_destroy
      functionSourceFile: '/src/krb5/src/util/support/threads.c'
      linkageType:     InternalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - krb5int_pthread_loaded
        - pthread_mutex_destroy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'threads.c:532,9'
          Dst:             krb5int_pthread_loaded
        - Src:             'threads.c:533,16'
          Dst:             pthread_mutex_destroy
    - functionName:    krb5int_mutex_free
      functionSourceFile: '/src/krb5/src/util/support/threads.c'
      linkageType:     InternalLinkage
      functionLinenumber: 501
      functionLinenumberEnd: 504
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - k5_os_mutex_destroy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'threads.c:502,12'
          Dst:             k5_os_mutex_destroy
    - functionName:    k5_mutex_init
      functionSourceFile: '/src/krb5/src/util/support/../../include/k5-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - k5_os_mutex_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '../../include/k5-thread.h:358,12'
          Dst:             k5_os_mutex_init
    - functionName:    krb5int_mutex_alloc
      functionSourceFile: '/src/krb5/src/util/support/threads.c'
      linkageType:     InternalLinkage
      functionLinenumber: 483
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - k5_mutex_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'threads.c:490,11'
          Dst:             k5_mutex_init
    - functionName:    krb5int_call_thread_support_init
      functionSourceFile: '/src/krb5/src/util/support/threads.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - k5_once
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'threads.c:399,12'
          Dst:             k5_once
        - Src:             'threads.c:399,12'
          Dst:             __assert_fail
    - functionName:    k5_once
      functionSourceFile: '/src/krb5/src/util/support/threads.c'
      linkageType:     InternalLinkage
      functionLinenumber: 558
      functionLinenumberEnd: 563
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          112
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
        - krb5int_pthread_loaded
        - pthread_once
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'threads.c:559,9'
          Dst:             krb5int_pthread_loaded
        - Src:             'threads.c:560,16'
          Dst:             pthread_once
        - Src:             'threads.c:562,16'
          Dst:             __assert_fail
        - Src:             'threads.c:562,16'
          Dst:             __assert_fail
    - functionName:    krb5int_key_delete
      functionSourceFile: '/src/krb5/src/util/support/threads.c'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - k5_mutex_lock
        - k5_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'threads.c:386,5'
          Dst:             k5_mutex_lock
        - Src:             'threads.c:387,5'
          Dst:             __assert_fail
        - Src:             'threads.c:390,5'
          Dst:             k5_mutex_unlock
    - functionName:    krb5int_key_register
      functionSourceFile: '/src/krb5/src/util/support/threads.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          101
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - k5_mutex_lock
        - k5_mutex_unlock
        - k5_once
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'threads.c:329,11'
          Dst:             k5_once
        - Src:             'threads.c:329,11'
          Dst:             __assert_fail
        - Src:             'threads.c:350,5'
          Dst:             k5_mutex_lock
        - Src:             'threads.c:351,5'
          Dst:             __assert_fail
        - Src:             'threads.c:354,5'
          Dst:             k5_mutex_unlock
    - functionName:    krb5int_setspecific
      functionSourceFile: '/src/krb5/src/util/support/threads.c'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          169
      EdgeCount:       36
      CyclomaticComplexity: 9
      functionsReached:
        - __assert_fail
        - k5_once
        - krb5int_pthread_loaded
        - pthread_getspecific
        - pthread_setspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'threads.c:267,11'
          Dst:             k5_once
        - Src:             'threads.c:267,11'
          Dst:             __assert_fail
        - Src:             'threads.c:271,5'
          Dst:             __assert_fail
        - Src:             'threads.c:298,9'
          Dst:             krb5int_pthread_loaded
        - Src:             'threads.c:299,13'
          Dst:             pthread_getspecific
        - Src:             'threads.c:309,19'
          Dst:             pthread_setspecific
    - functionName:    krb5int_getspecific
      functionSourceFile: '/src/krb5/src/util/support/threads.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          118
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
        - k5_once
        - krb5int_pthread_loaded
        - pthread_getspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'threads.c:234,11'
          Dst:             k5_once
        - Src:             'threads.c:234,11'
          Dst:             __assert_fail
        - Src:             'threads.c:238,5'
          Dst:             __assert_fail
        - Src:             'threads.c:250,9'
          Dst:             krb5int_pthread_loaded
        - Src:             'threads.c:251,13'
          Dst:             pthread_getspecific
    - functionName:    krb5int_fini_fac
      functionSourceFile: '/src/krb5/src/util/support/init-addrinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - k5_os_mutex_destroy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'init-addrinfo.c:67,5'
          Dst:             k5_os_mutex_destroy
    - functionName:    k5_mutex_finish_init
      functionSourceFile: '/src/krb5/src/util/support/../../include/k5-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5int_init_fac
      functionSourceFile: '/src/krb5/src/util/support/init-addrinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - k5_mutex_finish_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'init-addrinfo.c:62,12'
          Dst:             k5_mutex_finish_init
    - functionName:    k5_set_error_info_callout_fn
      functionSourceFile: '/src/krb5/src/util/support/errors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - k5_mutex_lock
        - k5_mutex_unlock
        - krb5int_call_thread_support_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'errors.c:118,5'
          Dst:             krb5int_call_thread_support_init
        - Src:             'errors.c:119,5'
          Dst:             k5_mutex_lock
        - Src:             'errors.c:121,5'
          Dst:             k5_mutex_unlock
    - functionName:    k5_mutex_lock
      functionSourceFile: '/src/krb5/src/util/support/../../include/k5-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - fprintf
        - k5_os_mutex_lock
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '../../include/k5-thread.h:369,13'
          Dst:             k5_os_mutex_lock
        - Src:             '../../include/k5-thread.h:373,20'
          Dst:             strerror
        - Src:             '../../include/k5-thread.h:372,9'
          Dst:             fprintf
        - Src:             '../../include/k5-thread.h:376,5'
          Dst:             __assert_fail
    - functionName:    k5_mutex_unlock
      functionSourceFile: '/src/krb5/src/util/support/../../include/k5-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 380
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - fprintf
        - k5_os_mutex_unlock
        - strerror
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '../../include/k5-thread.h:381,13'
          Dst:             k5_os_mutex_unlock
        - Src:             '../../include/k5-thread.h:385,20'
          Dst:             strerror
        - Src:             '../../include/k5-thread.h:384,9'
          Dst:             fprintf
        - Src:             '../../include/k5-thread.h:388,5'
          Dst:             __assert_fail
    - functionName:    k5_free_error
      functionSourceFile: '/src/krb5/src/util/support/errors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    oom_check
      functionSourceFile: '/src/krb5/src/util/support/errors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 64
      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:    k5_get_error
      functionSourceFile: '/src/krb5/src/util/support/errors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          107
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - dgettext
        - k5_mutex_lock
        - k5_mutex_unlock
        - krb5int_call_thread_support_init
        - oom_check
        - snprintf
        - strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'errors.c:74,26'
          Dst:             strdup
        - Src:             'errors.c:74,16'
          Dst:             oom_check
        - Src:             'errors.c:76,9'
          Dst:             krb5int_call_thread_support_init
        - Src:             'errors.c:77,33'
          Dst:             dgettext
        - Src:             'errors.c:77,26'
          Dst:             strdup
        - Src:             'errors.c:77,16'
          Dst:             oom_check
        - Src:             'errors.c:79,5'
          Dst:             k5_mutex_lock
        - Src:             'errors.c:82,9'
          Dst:             k5_mutex_unlock
        - Src:             'errors.c:83,33'
          Dst:             dgettext
        - Src:             'errors.c:83,26'
          Dst:             strdup
        - Src:             'errors.c:83,16'
          Dst:             oom_check
        - Src:             'errors.c:91,9'
          Dst:             k5_mutex_unlock
        - Src:             'errors.c:92,36'
          Dst:             dgettext
        - Src:             'errors.c:92,9'
          Dst:             snprintf
        - Src:             'errors.c:93,26'
          Dst:             strdup
        - Src:             'errors.c:93,16'
          Dst:             oom_check
        - Src:             'errors.c:96,9'
          Dst:             strdup
        - Src:             'errors.c:97,5'
          Dst:             k5_mutex_unlock
        - Src:             'errors.c:98,12'
          Dst:             oom_check
    - functionName:    k5_clear_error
      functionSourceFile: '/src/krb5/src/util/support/errors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - k5_free_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'errors.c:111,5'
          Dst:             k5_free_error
    - functionName:    k5_vset_error
      functionSourceFile: '/src/krb5/src/util/support/errors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - k5_clear_error
        - vasprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'errors.c:53,5'
          Dst:             k5_clear_error
        - Src:             'errors.c:56,9'
          Dst:             vasprintf
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    k5_set_error
      functionSourceFile: '/src/krb5/src/util/support/errors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - k5_vset_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'errors.c:44,5'
          Dst:             k5_vset_error
    - functionName:    k5_mutex_finish_init
      functionSourceFile: '/src/krb5/src/util/support/../../include/k5-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5int_err_init
      functionSourceFile: '/src/krb5/src/util/support/errors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - k5_mutex_finish_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'errors.c:32,12'
          Dst:             k5_mutex_finish_init
    - functionName:    k5_strerror_r
      functionSourceFile: '/src/krb5/src/util/support/strerror_r.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - krb5int_strlcpy
        - strerror_r
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'strerror_r.c:77,11'
          Dst:             strerror_r
        - Src:             'strerror_r.c:79,13'
          Dst:             krb5int_strlcpy
        - Src:             'strerror_r.c:80,13'
          Dst:             __errno_location
    - functionName:    strerror_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    compare_with_strcmp
      functionSourceFile: '/src/krb5/src/util/support/dir_filenames.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dir_filenames.c:66,12'
          Dst:             strcmp
    - functionName:    add_filename
      functionSourceFile: '/src/krb5/src/util/support/dir_filenames.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          76
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - realloc
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dir_filenames.c:51,15'
          Dst:             realloc
        - Src:             'dir_filenames.c:55,26'
          Dst:             strdup
    - functionName:    k5_dir_filenames
      functionSourceFile: '/src/krb5/src/util/support/dir_filenames.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          75
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - add_filename
        - closedir
        - compare_with_strcmp
        - k5_free_filenames
        - opendir
        - qsort
        - readdir
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dir_filenames.c:117,11'
          Dst:             opendir
        - Src:             'dir_filenames.c:121,19'
          Dst:             readdir
        - Src:             'dir_filenames.c:122,13'
          Dst:             add_filename
        - Src:             'dir_filenames.c:123,13'
          Dst:             k5_free_filenames
        - Src:             'dir_filenames.c:124,13'
          Dst:             closedir
        - Src:             'dir_filenames.c:129,5'
          Dst:             closedir
        - Src:             'dir_filenames.c:130,5'
          Dst:             qsort
        - Src:             'dir_filenames.c:130,5'
          Dst:             compare_with_strcmp
    - functionName:    opendir
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    readdir
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    k5_free_filenames
      functionSourceFile: '/src/krb5/src/util/support/dir_filenames.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          49
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    closedir
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5int_strlcat
      functionSourceFile: '/src/krb5/src/util/support/strlcpy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          127
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'strlcpy.c:77,17'
          Dst:             strlen
    - functionName:    krb5int_strlcpy
      functionSourceFile: '/src/krb5/src/util/support/strlcpy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          101
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
...
