---
Fuzzer filename: '/src/fuzzer.c'
All functions:
  Function list name: All functions
  Elements:
    - functionName:    LLVMFuzzerTestOneInput
      functionSourceFile: '/src/fuzzer.c'
      linkageType:     externalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          103
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - destroy_pool
        - finish_json
        - init_json
        - make_sub_pool
        - pr_json_object_free
        - pr_json_object_from_text
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzer.c:44,7'
          Dst:             make_sub_pool
        - Src:             'fuzzer.c:50,3'
          Dst:             init_json
        - Src:             'fuzzer.c:52,10'
          Dst:             pr_json_object_from_text
        - Src:             'fuzzer.c:53,3'
          Dst:             pr_json_object_free
        - Src:             'fuzzer.c:56,10'
          Dst:             pr_json_object_from_text
        - Src:             'fuzzer.c:57,3'
          Dst:             pr_json_object_free
        - Src:             'fuzzer.c:60,10'
          Dst:             pr_json_object_from_text
        - Src:             'fuzzer.c:61,3'
          Dst:             pr_json_object_free
        - Src:             'fuzzer.c:64,10'
          Dst:             pr_json_object_from_text
        - Src:             'fuzzer.c:65,3'
          Dst:             pr_json_object_free
        - Src:             'fuzzer.c:69,10'
          Dst:             pr_json_object_from_text
        - Src:             'fuzzer.c:70,3'
          Dst:             pr_json_object_free
        - Src:             'fuzzer.c:72,3'
          Dst:             finish_json
        - Src:             'fuzzer.c:73,3'
          Dst:             destroy_pool
    - functionName:    scoreboard_valid_pid
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1375
      functionLinenumberEnd: 1398
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          83
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - getpgid
        - kill
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:1378,9'
          Dst:             kill
        - Src:             'scoreboard.c:1380,7'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1387,9'
          Dst:             getpgid
        - Src:             'scoreboard.c:1388,7'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1391,7'
          Dst:             __errno_location
    - functionName:    kill
      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:    3
      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:    2529
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getpgid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_scoreboard_scrub
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1400
      functionLinenumberEnd: 1581
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         41
      ICount:          292
      EdgeCount:       56
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - close
        - getpgrp
        - lseek
        - open
        - pr_get_scoreboard
        - pr_log_debug
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
        - pr_signals_handle
        - pr_trace_msg
        - read
        - scoreboard_valid_pid
        - strerror
        - unlock_entry
        - unlock_scoreboard
        - wlock_entry
        - wlock_scoreboard
        - write
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:1410,3'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:1411,3'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1416,3'
          Dst:             pr_privs_root
        - Src:             'scoreboard.c:1417,13'
          Dst:             pr_get_scoreboard
        - Src:             'scoreboard.c:1417,8'
          Dst:             open
        - Src:             'scoreboard.c:1418,12'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1419,3'
          Dst:             pr_privs_relinquish
        - Src:             'scoreboard.c:1423,7'
          Dst:             pr_get_scoreboard
        - Src:             'scoreboard.c:1423,28'
          Dst:             strerror
        - Src:             'scoreboard.c:1422,5'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:1425,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1430,3'
          Dst:             wlock_scoreboard
        - Src:             'scoreboard.c:1432,14'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1434,12'
          Dst:             close
        - Src:             'scoreboard.c:1436,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1441,15'
          Dst:             getpgrp
        - Src:             'scoreboard.c:1447,17'
          Dst:             lseek
        - Src:             'scoreboard.c:1449,14'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1451,5'
          Dst:             unlock_scoreboard
        - Src:             'scoreboard.c:1452,12'
          Dst:             close
        - Src:             'scoreboard.c:1454,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1460,3'
          Dst:             pr_privs_root
        - Src:             'scoreboard.c:1463,5'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:1469,9'
          Dst:             wlock_entry
        - Src:             'scoreboard.c:1473,21'
          Dst:             lseek
        - Src:             'scoreboard.c:1479,11'
          Dst:             strerror
        - Src:             'scoreboard.c:1477,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1487,11'
          Dst:             read
        - Src:             'scoreboard.c:1490,7'
          Dst:             unlock_entry
        - Src:             'scoreboard.c:1500,11'
          Dst:             scoreboard_valid_pid
        - Src:             'scoreboard.c:1506,9'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:1510,13'
          Dst:             lseek
        - Src:             'scoreboard.c:1511,20'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1514,13'
          Dst:             strerror
        - Src:             'scoreboard.c:1513,11'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:1519,13'
          Dst:             strerror
        - Src:             'scoreboard.c:1516,11'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1530,15'
          Dst:             write
        - Src:             'scoreboard.c:1533,22'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1536,15'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:1537,21'
          Dst:             write
        - Src:             'scoreboard.c:1542,15'
          Dst:             strerror
        - Src:             'scoreboard.c:1541,13'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:1545,41'
          Dst:             strerror
        - Src:             'scoreboard.c:1543,13'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1549,13'
          Dst:             pr_log_pri
        - Src:             'scoreboard.c:1557,7'
          Dst:             unlock_entry
        - Src:             'scoreboard.c:1560,21'
          Dst:             lseek
        - Src:             'scoreboard.c:1569,3'
          Dst:             pr_privs_relinquish
        - Src:             'scoreboard.c:1572,3'
          Dst:             unlock_scoreboard
        - Src:             'scoreboard.c:1575,10'
          Dst:             close
        - Src:             'scoreboard.c:1577,3'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:1578,3'
          Dst:             pr_trace_msg
    - functionName:    pr_get_scoreboard
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 464
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    open
      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:    12
      BranchProfiles:  []
      Callsites:       []
    - 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:    761
      BranchProfiles:  []
      Callsites:       []
    - functionName:    wlock_scoreboard
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_lock_scoreboard
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:241,9'
          Dst:             pr_lock_scoreboard
    - functionName:    close
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    103
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getpgrp
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lseek
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unlock_scoreboard
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_lock_scoreboard
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:252,9'
          Dst:             pr_lock_scoreboard
    - functionName:    wlock_entry
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 329
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_scoreboard_entry_lock
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:328,9'
          Dst:             pr_scoreboard_entry_lock
    - functionName:    read
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unlock_entry
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 322
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_scoreboard_entry_lock
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:321,9'
          Dst:             pr_scoreboard_entry_lock
    - functionName:    write
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    15
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_scoreboard_entry_lock
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 316
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          108
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - fcntl
        - get_lock_type
        - pr_signals_handle
        - pr_trace_msg
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:268,16'
          Dst:             get_lock_type
        - Src:             'scoreboard.c:273,3'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:276,10'
          Dst:             fcntl
        - Src:             'scoreboard.c:277,18'
          Dst:             __errno_location
        - Src:             'scoreboard.c:280,7'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:292,9'
          Dst:             __errno_location
        - Src:             'scoreboard.c:294,9'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:296,9'
          Dst:             __errno_location
        - Src:             'scoreboard.c:297,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:305,23'
          Dst:             strerror
        - Src:             'scoreboard.c:304,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:307,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:311,3'
          Dst:             pr_trace_msg
    - functionName:    get_lock_type
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       15
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
      functionUses:    3
      BranchProfiles:
        - Branch String:   'scoreboard.c:130,3'
          Branch Sides:    []
      Callsites:
        - Src:             'scoreboard.c:144,7'
          Dst:             __errno_location
    - 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:    56
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_lock_scoreboard
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          166
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - fcntl
        - get_lock_type
        - pr_signals_handle
        - pr_trace_msg
        - strerror
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:161,16'
          Dst:             get_lock_type
        - Src:             'scoreboard.c:166,3'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:169,10'
          Dst:             fcntl
        - Src:             'scoreboard.c:170,18'
          Dst:             __errno_location
        - Src:             'scoreboard.c:173,7'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:179,28'
          Dst:             strerror
        - Src:             'scoreboard.c:177,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:184,11'
          Dst:             fcntl
        - Src:             'scoreboard.c:187,11'
          Dst:             get_lock_type
        - Src:             'scoreboard.c:185,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:200,9'
          Dst:             __errno_location
        - Src:             'scoreboard.c:202,9'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:204,9'
          Dst:             __errno_location
        - Src:             'scoreboard.c:205,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:213,9'
          Dst:             strerror
        - Src:             'scoreboard.c:211,7'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:216,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:220,3'
          Dst:             pr_trace_msg
    - functionName:    handle_score_str
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vsnprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:68,3'
          Dst:             vsnprintf
    - functionName:    vsnprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_getlen
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1099
      functionLinenumberEnd: 1147
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_scoreboard_entry_update
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1151
      functionLinenumberEnd: 1366
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         107
      ICount:          801
      EdgeCount:       135
      CyclomaticComplexity: 30
      functionsReached:
        - __errno_location
        - handle_score_str
        - pr_log_pri
        - pr_netaddr_get_ipstr
        - pr_signals_handle
        - pr_snprintf
        - pr_trace_msg
        - snprintf
        - sstrncpy
        - str_getlen
        - strerror
        - time
        - unlock_entry
        - wlock_entry
        - write_entry
      functionUses:    16
      BranchProfiles:
        - Branch String:   'scoreboard.c:1177,5'
          Branch Sides:    []
      Callsites:
        - Src:             'scoreboard.c:1161,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1166,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1170,3'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1175,5'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:1182,11'
          Dst:             str_getlen
        - Src:             'scoreboard.c:1181,9'
          Dst:             sstrncpy
        - Src:             'scoreboard.c:1184,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1192,33'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'scoreboard.c:1191,11'
          Dst:             pr_snprintf
        - Src:             'scoreboard.c:1196,11'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1211,13'
          Dst:             str_getlen
        - Src:             'scoreboard.c:1210,11'
          Dst:             snprintf
        - Src:             'scoreboard.c:1215,11'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1223,9'
          Dst:             sstrncpy
        - Src:             'scoreboard.c:1225,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1233,11'
          Dst:             str_getlen
        - Src:             'scoreboard.c:1232,9'
          Dst:             sstrncpy
        - Src:             'scoreboard.c:1235,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1242,18'
          Dst:             handle_score_str
        - Src:             'scoreboard.c:1245,9'
          Dst:             sstrncpy
        - Src:             'scoreboard.c:1248,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1256,18'
          Dst:             handle_score_str
        - Src:             'scoreboard.c:1260,11'
          Dst:             str_getlen
        - Src:             'scoreboard.c:1259,9'
          Dst:             sstrncpy
        - Src:             'scoreboard.c:1263,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1270,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1279,34'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'scoreboard.c:1278,9'
          Dst:             pr_snprintf
        - Src:             'scoreboard.c:1283,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1291,9'
          Dst:             sstrncpy
        - Src:             'scoreboard.c:1293,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1301,9'
          Dst:             time
        - Src:             'scoreboard.c:1302,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1310,9'
          Dst:             time
        - Src:             'scoreboard.c:1311,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1317,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1323,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1329,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1335,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1342,9'
          Dst:             sstrncpy
        - Src:             'scoreboard.c:1343,9'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1349,9'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1357,3'
          Dst:             wlock_entry
        - Src:             'scoreboard.c:1358,7'
          Dst:             write_entry
        - Src:             'scoreboard.c:1360,16'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1360,7'
          Dst:             strerror
        - Src:             'scoreboard.c:1359,5'
          Dst:             pr_log_pri
        - Src:             'scoreboard.c:1362,3'
          Dst:             unlock_entry
        - Src:             'scoreboard.c:1364,3'
          Dst:             pr_trace_msg
    - 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:    27
      BranchProfiles:  []
      Callsites:       []
    - 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:    39
      BranchProfiles:  []
      Callsites:       []
    - functionName:    write_entry
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 332
      functionLinenumberEnd: 383
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_log_pri
        - pr_signals_handle
        - pwrite
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:336,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:347,9'
          Dst:             pwrite
        - Src:             'scoreboard.c:354,11'
          Dst:             __errno_location
        - Src:             'scoreboard.c:355,9'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:357,15'
          Dst:             pwrite
        - Src:             'scoreboard.c:368,5'
          Dst:             pr_log_pri
        - Src:             'scoreboard.c:371,5'
          Dst:             __errno_location
    - functionName:    pwrite
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_scoreboard_entry_kill
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1058
      functionLinenumberEnd: 1092
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          83
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - getpgid
        - getpgrp
        - kill
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:1066,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1075,17'
          Dst:             getpgrp
        - Src:             'scoreboard.c:1080,9'
          Dst:             getpgid
        - Src:             'scoreboard.c:1081,7'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:1084,7'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1090,9'
          Dst:             kill
    - functionName:    pr_scoreboard_entry_get
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1009
      functionLinenumberEnd: 1056
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          100
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
      functionUses:    3
      BranchProfiles:
        - Branch String:   'scoreboard.c:1025,3'
          Branch Sides:    []
      Callsites:
        - Src:             'scoreboard.c:1011,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1016,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1021,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:1054,3'
          Dst:             __errno_location
    - functionName:    rlock_scoreboard
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_lock_scoreboard
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:230,9'
          Dst:             pr_lock_scoreboard
    - functionName:    pr_scoreboard_entry_read
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 952
      functionLinenumberEnd: 1003
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         24
      ICount:          113
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - pr_signals_handle
        - pr_trace_msg
        - read
        - rlock_scoreboard
        - unlock_scoreboard
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:961,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:969,11'
          Dst:             rlock_scoreboard
        - Src:             'scoreboard.c:975,3'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:981,19'
          Dst:             read
        - Src:             'scoreboard.c:982,20'
          Dst:             __errno_location
        - Src:             'scoreboard.c:986,9'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:990,7'
          Dst:             unlock_scoreboard
        - Src:             'scoreboard.c:991,7'
          Dst:             __errno_location
        - Src:             'scoreboard.c:996,7'
          Dst:             unlock_scoreboard
    - functionName:    pr_scoreboard_get_daemon_uptime
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 944
      functionLinenumberEnd: 950
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         4
      ICount:          21
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_scoreboard_get_daemon_pid
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 936
      functionLinenumberEnd: 942
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         4
      ICount:          21
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_scoreboard_entry_del
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 896
      functionLinenumberEnd: 934
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          84
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_log_pri
        - pr_trace_msg
        - strerror
        - unlock_entry
        - unlock_scoreboard
        - wlock_entry
        - wlock_scoreboard
        - write_entry
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:902,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:907,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:911,3'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:916,3'
          Dst:             wlock_entry
        - Src:             'scoreboard.c:921,3'
          Dst:             wlock_scoreboard
        - Src:             'scoreboard.c:923,7'
          Dst:             write_entry
        - Src:             'scoreboard.c:926,16'
          Dst:             __errno_location
        - Src:             'scoreboard.c:926,7'
          Dst:             strerror
        - Src:             'scoreboard.c:925,5'
          Dst:             pr_log_pri
        - Src:             'scoreboard.c:930,3'
          Dst:             unlock_scoreboard
        - Src:             'scoreboard.c:931,3'
          Dst:             unlock_entry
    - functionName:    pr_scoreboard_entry_add
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 815
      functionLinenumberEnd: 894
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         31
      ICount:          163
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - getegid
        - geteuid
        - getpid
        - lseek
        - pr_log_pri
        - pr_signals_block
        - pr_signals_unblock
        - pr_trace_msg
        - read
        - strerror
        - unlock_scoreboard
        - wlock_scoreboard
        - write_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:824,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:829,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:831,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:835,3'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:838,3'
          Dst:             wlock_scoreboard
        - Src:             'scoreboard.c:844,3'
          Dst:             pr_signals_block
        - Src:             'scoreboard.c:850,19'
          Dst:             read
        - Src:             'scoreboard.c:857,30'
          Dst:             lseek
        - Src:             'scoreboard.c:864,28'
          Dst:             lseek
        - Src:             'scoreboard.c:875,47'
          Dst:             getpid
        - Src:             'scoreboard.c:876,19'
          Dst:             geteuid
        - Src:             'scoreboard.c:877,19'
          Dst:             getegid
        - Src:             'scoreboard.c:879,9'
          Dst:             write_entry
        - Src:             'scoreboard.c:882,16'
          Dst:             __errno_location
        - Src:             'scoreboard.c:882,7'
          Dst:             strerror
        - Src:             'scoreboard.c:881,5'
          Dst:             pr_log_pri
        - Src:             'scoreboard.c:888,3'
          Dst:             pr_signals_unblock
        - Src:             'scoreboard.c:891,3'
          Dst:             unlock_scoreboard
    - 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:    23
      BranchProfiles:  []
      Callsites:       []
    - functionName:    geteuid
      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:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getegid
      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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_set_scoreboard_mutex
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 805
      functionLinenumberEnd: 813
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - sstrncpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:807,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:811,3'
          Dst:             sstrncpy
    - functionName:    set_scoreboard_path
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 707
      functionLinenumberEnd: 753
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          109
      EdgeCount:       22
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - sstrncpy
        - stat
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:713,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:717,3'
          Dst:             sstrncpy
        - Src:             'scoreboard.c:719,9'
          Dst:             strrchr
        - Src:             'scoreboard.c:721,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:732,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:738,7'
          Dst:             stat
        - Src:             'scoreboard.c:743,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:748,5'
          Dst:             __errno_location
    - functionName:    strrchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    21
      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:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_set_scoreboard
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 755
      functionLinenumberEnd: 803
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          92
      EdgeCount:       19
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_str_is_boolean
        - pr_trace_msg
        - set_scoreboard_path
        - sstrncpy
        - strcasecmp
        - strcmp
        - strlen
        - strncat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:761,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:769,7'
          Dst:             pr_str_is_boolean
        - Src:             'scoreboard.c:770,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:776,7'
          Dst:             strcasecmp
        - Src:             'scoreboard.c:777,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:783,7'
          Dst:             strcmp
        - Src:             'scoreboard.c:784,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:790,7'
          Dst:             set_scoreboard_path
        - Src:             'scoreboard.c:794,3'
          Dst:             sstrncpy
        - Src:             'scoreboard.c:799,3'
          Dst:             sstrncpy
        - Src:             'scoreboard.c:800,62'
          Dst:             strlen
        - Src:             'scoreboard.c:800,3'
          Dst:             strncat
    - functionName:    strcasecmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    285
      BranchProfiles:  []
      Callsites:       []
    - 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:    263
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strlen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    246
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strncat
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      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:    pr_rewind_scoreboard
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 677
      functionLinenumberEnd: 705
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         12
      ICount:          63
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - lseek
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:685,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:689,9'
          Dst:             lseek
        - Src:             'scoreboard.c:699,7'
          Dst:             lseek
    - functionName:    pr_restore_scoreboard
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 649
      functionLinenumberEnd: 675
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         12
      ICount:          60
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - lseek
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:655,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:663,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:670,7'
          Dst:             lseek
    - functionName:    read_scoreboard_header
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          111
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pr_close_scoreboard
        - pr_signals_handle
        - pr_trace_msg
        - read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:77,3'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:82,9'
          Dst:             read
        - Src:             'scoreboard.c:85,7'
          Dst:             __errno_location
        - Src:             'scoreboard.c:89,9'
          Dst:             __errno_location
        - Src:             'scoreboard.c:90,7'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:102,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:104,12'
          Dst:             pr_close_scoreboard
        - Src:             'scoreboard.c:109,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:112,12'
          Dst:             pr_close_scoreboard
        - Src:             'scoreboard.c:117,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:120,12'
          Dst:             pr_close_scoreboard
    - functionName:    pr_close_scoreboard
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 416
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          84
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - close
        - pr_trace_msg
        - unlock_scoreboard
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:398,5'
          Dst:             unlock_scoreboard
        - Src:             'scoreboard.c:401,3'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:403,10'
          Dst:             close
        - Src:             'scoreboard.c:407,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:410,12'
          Dst:             close
    - functionName:    pr_open_scoreboard
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 472
      functionLinenumberEnd: 647
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         60
      ICount:          350
      EdgeCount:       82
      CyclomaticComplexity: 24
      functionsReached:
        - __errno_location
        - close
        - fchmod
        - getpid
        - lstat
        - open
        - pr_fs_get_usable_fd2
        - pr_log_debug
        - pr_signals_handle
        - pr_trace_msg
        - read_scoreboard_header
        - strerror
        - time
        - unlock_scoreboard
        - wlock_scoreboard
        - write
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:481,5'
          Dst:             __errno_location
        - Src:             'scoreboard.c:490,28'
          Dst:             getpid
        - Src:             'scoreboard.c:491,5'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:496,7'
          Dst:             lstat
        - Src:             'scoreboard.c:499,7'
          Dst:             __errno_location
        - Src:             'scoreboard.c:504,7'
          Dst:             lstat
        - Src:             'scoreboard.c:506,7'
          Dst:             __errno_location
        - Src:             'scoreboard.c:511,3'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:513,19'
          Dst:             open
        - Src:             'scoreboard.c:515,9'
          Dst:             __errno_location
        - Src:             'scoreboard.c:516,7'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:517,23'
          Dst:             open
        - Src:             'scoreboard.c:525,7'
          Dst:             pr_fs_get_usable_fd2
        - Src:             'scoreboard.c:527,44'
          Dst:             __errno_location
        - Src:             'scoreboard.c:527,35'
          Dst:             strerror
        - Src:             'scoreboard.c:526,5'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:534,10'
          Dst:             fchmod
        - Src:             'scoreboard.c:535,9'
          Dst:             __errno_location
        - Src:             'scoreboard.c:536,7'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:552,27'
          Dst:             open
        - Src:             'scoreboard.c:555,20'
          Dst:             __errno_location
        - Src:             'scoreboard.c:557,11'
          Dst:             __errno_location
        - Src:             'scoreboard.c:558,9'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:559,31'
          Dst:             open
        - Src:             'scoreboard.c:564,14'
          Dst:             close
        - Src:             'scoreboard.c:568,27'
          Dst:             strerror
        - Src:             'scoreboard.c:567,7'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:570,7'
          Dst:             __errno_location
        - Src:             'scoreboard.c:575,9'
          Dst:             pr_fs_get_usable_fd2
        - Src:             'scoreboard.c:577,68'
          Dst:             __errno_location
        - Src:             'scoreboard.c:577,59'
          Dst:             strerror
        - Src:             'scoreboard.c:576,7'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:581,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:585,23'
          Dst:             getpid
        - Src:             'scoreboard.c:588,9'
          Dst:             read_scoreboard_header
        - Src:             'scoreboard.c:597,24'
          Dst:             getpid
        - Src:             'scoreboard.c:598,27'
          Dst:             time
        - Src:             'scoreboard.c:606,5'
          Dst:             wlock_scoreboard
        - Src:             'scoreboard.c:608,20'
          Dst:             __errno_location
        - Src:             'scoreboard.c:610,14'
          Dst:             close
        - Src:             'scoreboard.c:613,14'
          Dst:             close
        - Src:             'scoreboard.c:616,7'
          Dst:             __errno_location
        - Src:             'scoreboard.c:620,5'
          Dst:             pr_trace_msg
        - Src:             'scoreboard.c:622,12'
          Dst:             write
        - Src:             'scoreboard.c:623,20'
          Dst:             __errno_location
        - Src:             'scoreboard.c:625,11'
          Dst:             __errno_location
        - Src:             'scoreboard.c:626,9'
          Dst:             pr_signals_handle
        - Src:             'scoreboard.c:630,7'
          Dst:             unlock_scoreboard
        - Src:             'scoreboard.c:632,14'
          Dst:             close
        - Src:             'scoreboard.c:635,14'
          Dst:             close
        - Src:             'scoreboard.c:638,7'
          Dst:             __errno_location
        - Src:             'scoreboard.c:642,5'
          Dst:             unlock_scoreboard
    - functionName:    lstat
      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:    fchmod
      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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_get_scoreboard_mutex
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_delete_scoreboard
      functionSourceFile: '/src/proftpd/src/scoreboard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 462
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         25
      ICount:          108
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - close
        - pr_log_debug
        - stat
        - strcmp
        - unlink
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'scoreboard.c:424,12'
          Dst:             close
        - Src:             'scoreboard.c:428,12'
          Dst:             close
        - Src:             'scoreboard.c:440,7'
          Dst:             strcmp
        - Src:             'scoreboard.c:443,9'
          Dst:             stat
        - Src:             'scoreboard.c:444,7'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:448,12'
          Dst:             unlink
        - Src:             'scoreboard.c:449,12'
          Dst:             unlink
        - Src:             'scoreboard.c:455,9'
          Dst:             stat
        - Src:             'scoreboard.c:456,7'
          Dst:             pr_log_debug
        - Src:             'scoreboard.c:460,12'
          Dst:             unlink
    - 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:    17
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sstrncpy
      functionSourceFile: '/src/proftpd/lib/sstrncpy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          129
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
      functionUses:    131
      BranchProfiles:  []
      Callsites:
        - Src:             'sstrncpy.c:51,5'
          Dst:             __errno_location
        - Src:             'sstrncpy.c:56,5'
          Dst:             __errno_location
    - functionName:    get_node_from_val
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          77
      EdgeCount:       21
      CyclomaticComplexity: 12
      functionsReached:
        - json_mkbool
        - json_mknull
        - json_mknumber
        - json_mkstring
      functionUses:    2
      BranchProfiles:
        - Branch String:   'json.c:412,3'
          Branch Sides:    []
      Callsites:
        - Src:             'json.c:414,14'
          Dst:             json_mknull
        - Src:             'json.c:418,14'
          Dst:             json_mkbool
        - Src:             'json.c:422,14'
          Dst:             json_mknumber
        - Src:             'json.c:426,14'
          Dst:             json_mkstring
    - functionName:    finish_json
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1148
      functionLinenumberEnd: 1150
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_set_oom
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:1149,3'
          Dst:             json_set_oom
    - functionName:    init_json
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1143
      functionLinenumberEnd: 1145
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_oom
        - json_set_oom
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:1144,3'
          Dst:             json_set_oom
        - Src:             'json.c:1144,3'
          Dst:             json_oom
    - functionName:    json_oom
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1138
      functionLinenumberEnd: 1139
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          3
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - exit
        - pr_log_pri
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:1138,3'
          Dst:             pr_log_pri
        - Src:             'json.c:1139,3'
          Dst:             exit
    - functionName:    exit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    38
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_json_type_name
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1101
      functionLinenumberEnd: 1134
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          56
      EdgeCount:       21
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:
        - Branch String:   'json.c:1104,3'
          Branch Sides:    []
      Callsites:
        - Src:             'json.c:1130,7'
          Dst:             __errno_location
    - functionName:    pr_json_text_validate
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1091
      functionLinenumberEnd: 1099
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - json_validate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:1094,5'
          Dst:             __errno_location
        - Src:             'json.c:1098,10'
          Dst:             json_validate
    - functionName:    pr_json_array_get_object
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1083
      functionLinenumberEnd: 1089
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - can_get_item
        - get_item
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:1084,7'
          Dst:             can_get_item
        - Src:             'json.c:1088,10'
          Dst:             get_item
    - functionName:    can_get_item
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 914
      functionLinenumberEnd: 929
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          63
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:918,5'
          Dst:             __errno_location
        - Src:             'json.c:924,5'
          Dst:             __errno_location
    - functionName:    get_item
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 943
      functionLinenumberEnd: 958
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          64
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - get_val_from_node
        - json_find_element
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:946,10'
          Dst:             json_find_element
        - Src:             'json.c:948,5'
          Dst:             __errno_location
        - Src:             'json.c:953,5'
          Dst:             __errno_location
        - Src:             'json.c:957,10'
          Dst:             get_val_from_node
    - functionName:    get_val_from_node
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 297
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          176
      EdgeCount:       26
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - alloc_array
        - alloc_object
        - get_count
        - json_decode
        - json_encode
        - json_mkarray
        - json_mkobject
        - pstrdup
      functionUses:    6
      BranchProfiles:
        - Branch String:   'json.c:306,3'
          Branch Sides:    []
      Callsites:
        - Src:             'json.c:302,5'
          Dst:             __errno_location
        - Src:             'json.c:321,26'
          Dst:             pstrdup
        - Src:             'json.c:331,15'
          Dst:             alloc_array
        - Src:             'json.c:343,23'
          Dst:             json_encode
        - Src:             'json.c:344,24'
          Dst:             json_decode
        - Src:             'json.c:348,24'
          Dst:             json_mkarray
        - Src:             'json.c:350,27'
          Dst:             get_count
        - Src:             'json.c:359,16'
          Dst:             alloc_object
        - Src:             'json.c:371,23'
          Dst:             json_encode
        - Src:             'json.c:372,26'
          Dst:             json_decode
        - Src:             'json.c:376,26'
          Dst:             json_mkobject
        - Src:             'json.c:378,30'
          Dst:             get_count
    - functionName:    alloc_array
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:48,14'
          Dst:             make_sub_pool
        - Src:             'json.c:49,3'
          Dst:             pr_pool_tag
        - Src:             'json.c:51,10'
          Dst:             pcalloc
    - functionName:    get_count
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          39
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - json_first_child
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:74,26'
          Dst:             json_first_child
    - functionName:    alloc_object
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:61,14'
          Dst:             make_sub_pool
        - Src:             'json.c:62,3'
          Dst:             pr_pool_tag
        - Src:             'json.c:64,10'
          Dst:             pcalloc
    - functionName:    pr_json_array_append_object
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1069
      functionLinenumberEnd: 1080
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - append_item
        - can_add_item
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:1070,7'
          Dst:             can_add_item
        - Src:             'json.c:1075,5'
          Dst:             __errno_location
        - Src:             'json.c:1079,10'
          Dst:             append_item
    - functionName:    can_add_item
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 931
      functionLinenumberEnd: 940
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:935,5'
          Dst:             __errno_location
    - functionName:    append_item
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 961
      functionLinenumberEnd: 968
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_node_from_val
        - json_append_element
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:964,10'
          Dst:             get_node_from_val
        - Src:             'json.c:965,3'
          Dst:             json_append_element
    - functionName:    pr_json_array_get_array
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1060
      functionLinenumberEnd: 1066
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - can_get_item
        - get_item
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:1061,7'
          Dst:             can_get_item
        - Src:             'json.c:1065,10'
          Dst:             get_item
    - functionName:    pr_json_array_append_array
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1046
      functionLinenumberEnd: 1057
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - append_item
        - can_add_item
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:1047,7'
          Dst:             can_add_item
        - Src:             'json.c:1052,5'
          Dst:             __errno_location
        - Src:             'json.c:1056,10'
          Dst:             append_item
    - functionName:    pr_json_array_get_string
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1037
      functionLinenumberEnd: 1043
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - can_get_item
        - get_item
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:1038,7'
          Dst:             can_get_item
        - Src:             'json.c:1042,10'
          Dst:             get_item
    - functionName:    pr_json_array_append_string
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1023
      functionLinenumberEnd: 1034
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - append_item
        - can_add_item
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:1024,7'
          Dst:             can_add_item
        - Src:             'json.c:1029,5'
          Dst:             __errno_location
        - Src:             'json.c:1033,10'
          Dst:             append_item
    - functionName:    pr_json_array_get_number
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1014
      functionLinenumberEnd: 1020
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - can_get_item
        - get_item
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:1015,7'
          Dst:             can_get_item
        - Src:             'json.c:1019,10'
          Dst:             get_item
    - functionName:    pr_json_array_append_number
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1005
      functionLinenumberEnd: 1011
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - append_item
        - can_add_item
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:1006,7'
          Dst:             can_add_item
        - Src:             'json.c:1010,10'
          Dst:             append_item
    - functionName:    pr_json_array_get_null
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 997
      functionLinenumberEnd: 1003
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - can_get_item
        - get_item
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:998,7'
          Dst:             can_get_item
        - Src:             'json.c:1002,10'
          Dst:             get_item
    - functionName:    pr_json_array_append_null
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 988
      functionLinenumberEnd: 994
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - append_item
        - can_add_item
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:989,7'
          Dst:             can_add_item
        - Src:             'json.c:993,10'
          Dst:             append_item
    - functionName:    pr_json_array_get_bool
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 980
      functionLinenumberEnd: 986
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - can_get_item
        - get_item
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:981,7'
          Dst:             can_get_item
        - Src:             'json.c:985,10'
          Dst:             get_item
    - functionName:    pr_json_array_append_bool
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 971
      functionLinenumberEnd: 977
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - append_item
        - can_add_item
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:972,7'
          Dst:             can_add_item
        - Src:             'json.c:976,10'
          Dst:             append_item
    - functionName:    pr_json_array_exists
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 897
      functionLinenumberEnd: 911
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - json_find_element
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:901,5'
          Dst:             __errno_location
        - Src:             'json.c:905,10'
          Dst:             json_find_element
    - functionName:    pr_json_array_remove
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 876
      functionLinenumberEnd: 895
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - json_delete
        - json_find_element
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:880,5'
          Dst:             __errno_location
        - Src:             'json.c:884,10'
          Dst:             json_find_element
        - Src:             'json.c:887,5'
          Dst:             json_delete
    - functionName:    pr_json_array_count
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 867
      functionLinenumberEnd: 874
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:869,5'
          Dst:             __errno_location
    - functionName:    pr_json_array_to_text
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 858
      functionLinenumberEnd: 865
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - get_text
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:860,5'
          Dst:             __errno_location
        - Src:             'json.c:864,10'
          Dst:             get_text
    - functionName:    get_text
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          79
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - json_stringify
        - pstrdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:88,5'
          Dst:             __errno_location
        - Src:             'json.c:100,9'
          Dst:             json_stringify
        - Src:             'json.c:102,12'
          Dst:             pstrdup
    - functionName:    pr_json_array_from_text
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 824
      functionLinenumberEnd: 855
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          91
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - alloc_array
        - get_count
        - json_decode
        - json_delete
        - json_validate
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:830,5'
          Dst:             __errno_location
        - Src:             'json.c:834,7'
          Dst:             json_validate
        - Src:             'json.c:835,5'
          Dst:             pr_trace_msg
        - Src:             'json.c:837,5'
          Dst:             __errno_location
        - Src:             'json.c:841,10'
          Dst:             json_decode
        - Src:             'json.c:843,5'
          Dst:             json_delete
        - Src:             'json.c:845,5'
          Dst:             pr_trace_msg
        - Src:             'json.c:846,5'
          Dst:             __errno_location
        - Src:             'json.c:850,10'
          Dst:             alloc_array
        - Src:             'json.c:852,22'
          Dst:             get_count
    - functionName:    pr_json_array_foreach
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 822
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          227
      EdgeCount:       43
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - get_type
        - get_val_from_node
        - json_first_child
        - pr_json_array_free
        - pr_json_object_free
        - pr_signals_handle
        - pr_trace_msg
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'json.c:749,5'
          Branch Sides:    []
        - Branch String:   'json.c:802,5'
          Branch Sides:    []
      Callsites:
        - Src:             'json.c:727,5'
          Dst:             __errno_location
        - Src:             'json.c:731,15'
          Dst:             json_first_child
        - Src:             'json.c:736,5'
          Dst:             pr_signals_handle
        - Src:             'json.c:738,16'
          Dst:             get_type
        - Src:             'json.c:740,16'
          Dst:             __errno_location
        - Src:             'json.c:742,7'
          Dst:             pr_trace_msg
        - Src:             'json.c:745,7'
          Dst:             __errno_location
        - Src:             'json.c:767,17'
          Dst:             strlen
        - Src:             'json.c:773,16'
          Dst:             get_val_from_node
        - Src:             'json.c:785,16'
          Dst:             get_val_from_node
        - Src:             'json.c:800,14'
          Dst:             __errno_location
        - Src:             'json.c:804,9'
          Dst:             pr_json_array_free
        - Src:             'json.c:808,9'
          Dst:             pr_json_object_free
        - Src:             'json.c:816,7'
          Dst:             __errno_location
    - functionName:    get_type
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          62
      EdgeCount:       23
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
      functionUses:    2
      BranchProfiles:
        - Branch String:   'json.c:112,3'
          Branch Sides:    []
      Callsites:
        - Src:             'json.c:138,7'
          Dst:             __errno_location
    - functionName:    pr_json_array_free
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 706
      functionLinenumberEnd: 717
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - destroy_pool
        - json_delete
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:708,5'
          Dst:             __errno_location
        - Src:             'json.c:712,3'
          Dst:             json_delete
        - Src:             'json.c:715,3'
          Dst:             destroy_pool
    - functionName:    pr_json_object_free
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 172
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - destroy_pool
        - json_delete
      functionUses:    25
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:163,5'
          Dst:             __errno_location
        - Src:             'json.c:167,3'
          Dst:             json_delete
        - Src:             'json.c:170,3'
          Dst:             destroy_pool
    - functionName:    pr_json_array_alloc
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 692
      functionLinenumberEnd: 704
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - alloc_array
        - json_mkarray
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:696,5'
          Dst:             __errno_location
        - Src:             'json.c:700,10'
          Dst:             alloc_array
        - Src:             'json.c:701,17'
          Dst:             json_mkarray
    - functionName:    pr_json_object_set_object
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 677
      functionLinenumberEnd: 688
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - can_set_member
        - set_member
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:678,7'
          Dst:             can_set_member
        - Src:             'json.c:683,5'
          Dst:             __errno_location
        - Src:             'json.c:687,10'
          Dst:             set_member
    - functionName:    can_set_member
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          49
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:290,5'
          Dst:             __errno_location
    - functionName:    set_member
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 460
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_node_from_val
        - json_append_member
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:456,10'
          Dst:             get_node_from_val
        - Src:             'json.c:457,3'
          Dst:             json_append_member
    - functionName:    pr_json_object_get_object
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 668
      functionLinenumberEnd: 674
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - can_get_member
        - get_member
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:669,7'
          Dst:             can_get_member
        - Src:             'json.c:673,10'
          Dst:             get_member
    - functionName:    can_get_member
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          72
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:271,5'
          Dst:             __errno_location
        - Src:             'json.c:277,5'
          Dst:             __errno_location
    - functionName:    get_member
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 407
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          64
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - get_val_from_node
        - json_find_member
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:395,10'
          Dst:             json_find_member
        - Src:             'json.c:397,5'
          Dst:             __errno_location
        - Src:             'json.c:402,5'
          Dst:             __errno_location
        - Src:             'json.c:406,10'
          Dst:             get_val_from_node
    - functionName:    pr_json_object_set_array
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 654
      functionLinenumberEnd: 665
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - can_set_member
        - set_member
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:655,7'
          Dst:             can_set_member
        - Src:             'json.c:660,5'
          Dst:             __errno_location
        - Src:             'json.c:664,10'
          Dst:             set_member
    - functionName:    pr_json_object_get_array
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 645
      functionLinenumberEnd: 651
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - can_get_member
        - get_member
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:646,7'
          Dst:             can_get_member
        - Src:             'json.c:650,10'
          Dst:             get_member
    - functionName:    pr_json_object_set_string
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 631
      functionLinenumberEnd: 642
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - can_set_member
        - set_member
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:632,7'
          Dst:             can_set_member
        - Src:             'json.c:637,5'
          Dst:             __errno_location
        - Src:             'json.c:641,10'
          Dst:             set_member
    - functionName:    pr_json_object_get_string
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 622
      functionLinenumberEnd: 628
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - can_get_member
        - get_member
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:623,7'
          Dst:             can_get_member
        - Src:             'json.c:627,10'
          Dst:             get_member
    - functionName:    pr_json_object_set_number
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 613
      functionLinenumberEnd: 619
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - can_set_member
        - set_member
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:614,7'
          Dst:             can_set_member
        - Src:             'json.c:618,10'
          Dst:             set_member
    - functionName:    pr_json_object_get_number
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 604
      functionLinenumberEnd: 610
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - can_get_member
        - get_member
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:605,7'
          Dst:             can_get_member
        - Src:             'json.c:609,10'
          Dst:             get_member
    - functionName:    pr_json_object_set_null
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 595
      functionLinenumberEnd: 601
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - can_set_member
        - set_member
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:596,7'
          Dst:             can_set_member
        - Src:             'json.c:600,10'
          Dst:             set_member
    - functionName:    pr_json_object_get_null
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 587
      functionLinenumberEnd: 593
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - can_get_member
        - get_member
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:588,7'
          Dst:             can_get_member
        - Src:             'json.c:592,10'
          Dst:             get_member
    - functionName:    pr_json_object_set_bool
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 578
      functionLinenumberEnd: 584
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - can_set_member
        - set_member
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:579,7'
          Dst:             can_set_member
        - Src:             'json.c:583,10'
          Dst:             set_member
    - functionName:    pr_json_object_get_bool
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 569
      functionLinenumberEnd: 575
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - can_get_member
        - get_member
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:570,7'
          Dst:             can_get_member
        - Src:             'json.c:574,10'
          Dst:             get_member
    - functionName:    pr_json_object_foreach
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 465
      functionLinenumberEnd: 566
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          230
      EdgeCount:       43
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - get_type
        - get_val_from_node
        - json_first_child
        - pr_json_array_free
        - pr_json_object_free
        - pr_signals_handle
        - pr_trace_msg
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'json.c:493,5'
          Branch Sides:    []
        - Branch String:   'json.c:546,5'
          Branch Sides:    []
      Callsites:
        - Src:             'json.c:471,5'
          Dst:             __errno_location
        - Src:             'json.c:475,15'
          Dst:             json_first_child
        - Src:             'json.c:480,5'
          Dst:             pr_signals_handle
        - Src:             'json.c:482,16'
          Dst:             get_type
        - Src:             'json.c:484,16'
          Dst:             __errno_location
        - Src:             'json.c:486,7'
          Dst:             pr_trace_msg
        - Src:             'json.c:489,7'
          Dst:             __errno_location
        - Src:             'json.c:511,17'
          Dst:             strlen
        - Src:             'json.c:517,16'
          Dst:             get_val_from_node
        - Src:             'json.c:529,16'
          Dst:             get_val_from_node
        - Src:             'json.c:544,14'
          Dst:             __errno_location
        - Src:             'json.c:548,9'
          Dst:             pr_json_array_free
        - Src:             'json.c:552,9'
          Dst:             pr_json_object_free
        - Src:             'json.c:560,7'
          Dst:             __errno_location
    - functionName:    pr_json_object_exists
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          55
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - json_find_member
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:253,5'
          Dst:             __errno_location
        - Src:             'json.c:257,10'
          Dst:             json_find_member
    - functionName:    pr_json_object_remove
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          73
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - json_delete
        - json_find_member
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:231,5'
          Dst:             __errno_location
        - Src:             'json.c:235,10'
          Dst:             json_find_member
        - Src:             'json.c:238,5'
          Dst:             json_delete
    - functionName:    pr_json_object_count
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:219,5'
          Dst:             __errno_location
    - functionName:    pr_json_object_to_text
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - get_text
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:210,5'
          Dst:             __errno_location
        - Src:             'json.c:214,10'
          Dst:             get_text
    - functionName:    pr_json_object_from_text
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          91
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - alloc_object
        - get_count
        - json_decode
        - json_delete
        - json_validate
        - pr_trace_msg
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:180,5'
          Dst:             __errno_location
        - Src:             'json.c:184,7'
          Dst:             json_validate
        - Src:             'json.c:185,5'
          Dst:             pr_trace_msg
        - Src:             'json.c:187,5'
          Dst:             __errno_location
        - Src:             'json.c:191,10'
          Dst:             json_decode
        - Src:             'json.c:193,5'
          Dst:             json_delete
        - Src:             'json.c:195,5'
          Dst:             pr_trace_msg
        - Src:             'json.c:196,5'
          Dst:             __errno_location
        - Src:             'json.c:200,10'
          Dst:             alloc_object
        - Src:             'json.c:202,24'
          Dst:             get_count
    - functionName:    pr_json_object_alloc
      functionSourceFile: '/src/proftpd/src/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - alloc_object
        - json_mkobject
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'json.c:151,5'
          Dst:             __errno_location
        - Src:             'json.c:155,10'
          Dst:             alloc_object
        - Src:             'json.c:156,18'
          Dst:             json_mkobject
    - functionName:    trace_write
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          298
      EdgeCount:       49
      CyclomaticComplexity: 14
      functionsReached:
        - destroy_pool
        - getpid
        - gettimeofday
        - make_sub_pool
        - pr_localtime
        - pr_log_event_generate
        - pr_netaddr_get_ipstr
        - pr_netaddr_get_port
        - pr_pool_tag
        - pr_snprintf
        - strftime
        - time
        - write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'trace.c:106,14'
          Dst:             make_sub_pool
        - Src:             'trace.c:107,3'
          Dst:             pr_pool_tag
        - Src:             'trace.c:116,7'
          Dst:             gettimeofday
        - Src:             'trace.c:117,12'
          Dst:             pr_localtime
        - Src:             'trace.c:119,13'
          Dst:             strftime
        - Src:             'trace.c:125,13'
          Dst:             pr_snprintf
        - Src:             'trace.c:131,13'
          Dst:             time
        - Src:             'trace.c:132,12'
          Dst:             pr_localtime
        - Src:             'trace.c:134,13'
          Dst:             strftime
        - Src:             'trace.c:150,51'
          Dst:             getpid
        - Src:             'trace.c:149,11'
          Dst:             pr_snprintf
        - Src:             'trace.c:158,17'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'trace.c:159,17'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'trace.c:160,19'
          Dst:             pr_netaddr_get_port
        - Src:             'trace.c:164,51'
          Dst:             getpid
        - Src:             'trace.c:162,11'
          Dst:             pr_snprintf
        - Src:             'trace.c:170,3'
          Dst:             destroy_pool
        - Src:             'trace.c:185,3'
          Dst:             pr_log_event_generate
        - Src:             'trace.c:196,10'
          Dst:             write
    - functionName:    gettimeofday
      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:    18
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strftime
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_trace_vmsg
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 537
      functionLinenumberEnd: 619
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          244
      EdgeCount:       63
      CyclomaticComplexity: 19
      functionsReached:
        - __errno_location
        - pr_log_event_listening
        - pr_signals_handle
        - pr_vsnprintf
        - trace_get_levels
        - trace_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'trace.c:551,5'
          Dst:             __errno_location
        - Src:             'trace.c:556,5'
          Dst:             __errno_location
        - Src:             'trace.c:565,15'
          Dst:             pr_log_event_listening
        - Src:             'trace.c:567,12'
          Dst:             trace_get_levels
        - Src:             'trace.c:594,12'
          Dst:             pr_vsnprintf
        - Src:             'trace.c:613,5'
          Dst:             pr_signals_handle
        - Src:             'trace.c:618,10'
          Dst:             trace_write
    - functionName:    trace_get_levels
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          65
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_table_get
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'trace.c:212,5'
          Dst:             __errno_location
        - Src:             'trace.c:218,5'
          Dst:             __errno_location
        - Src:             'trace.c:222,11'
          Dst:             pr_table_get
        - Src:             'trace.c:224,5'
          Dst:             __errno_location
    - functionName:    pr_trace_msg
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 512
      functionLinenumberEnd: 534
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          81
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_log_event_listening
        - pr_trace_vmsg
      functionUses:    882
      BranchProfiles:  []
      Callsites:
        - Src:             'trace.c:519,5'
          Dst:             __errno_location
        - Src:             'trace.c:525,7'
          Dst:             pr_log_event_listening
        - Src:             'trace.c:530,9'
          Dst:             pr_trace_vmsg
    - functionName:    pr_trace_use_stderr
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 491
      functionLinenumberEnd: 510
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - close
        - dup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'trace.c:495,11'
          Dst:             dup
        - Src:             'trace.c:501,12'
          Dst:             close
        - Src:             'trace.c:505,12'
          Dst:             close
    - functionName:    dup
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_trace_set_options
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 486
      functionLinenumberEnd: 488
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    trace_restart_ev
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - close
        - destroy_pool
        - pr_event_unregister
        - trace_restart_ev
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'trace.c:82,10'
          Dst:             close
        - Src:             'trace.c:86,5'
          Dst:             destroy_pool
        - Src:             'trace.c:90,5'
          Dst:             pr_event_unregister
        - Src:             'trace.c:90,5'
          Dst:             trace_restart_ev
    - functionName:    pr_trace_set_levels
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          227
      EdgeCount:       56
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - make_sub_pool
        - pcalloc
        - pr_event_register
        - pr_pool_tag
        - pr_table_add
        - pr_table_alloc
        - pr_table_exists
        - pr_table_remove
        - pr_table_set
        - pr_trace_set_levels
        - pstrdup
        - strcmp
        - trace_restart_ev
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'trace.c:411,7'
          Dst:             __errno_location
        - Src:             'trace.c:419,5'
          Dst:             __errno_location
        - Src:             'trace.c:429,18'
          Dst:             make_sub_pool
        - Src:             'trace.c:430,5'
          Dst:             pr_pool_tag
        - Src:             'trace.c:432,17'
          Dst:             pr_table_alloc
        - Src:             'trace.c:435,5'
          Dst:             pr_event_register
        - Src:             'trace.c:435,5'
          Dst:             trace_restart_ev
        - Src:             'trace.c:441,14'
          Dst:             pcalloc
        - Src:             'trace.c:445,9'
          Dst:             strcmp
        - Src:             'trace.c:448,15'
          Dst:             pr_table_exists
        - Src:             'trace.c:450,37'
          Dst:             pstrdup
        - Src:             'trace.c:450,13'
          Dst:             pr_table_add
        - Src:             'trace.c:456,37'
          Dst:             pstrdup
        - Src:             'trace.c:456,13'
          Dst:             pr_table_set
        - Src:             'trace.c:466,16'
          Dst:             pr_trace_set_levels
        - Src:             'trace.c:471,9'
          Dst:             strcmp
        - Src:             'trace.c:472,14'
          Dst:             pr_table_remove
        - Src:             'trace.c:478,16'
          Dst:             pr_table_remove
    - functionName:    pr_trace_set_file
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          106
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - close
        - pr_log_debug
        - pr_log_openfile
        - pr_privs_relinquish
        - pr_privs_root
        - pr_signals_block
        - pr_signals_unblock
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'trace.c:367,7'
          Dst:             __errno_location
        - Src:             'trace.c:371,12'
          Dst:             close
        - Src:             'trace.c:376,3'
          Dst:             pr_signals_block
        - Src:             'trace.c:377,3'
          Dst:             pr_privs_root
        - Src:             'trace.c:378,9'
          Dst:             pr_log_openfile
        - Src:             'trace.c:379,12'
          Dst:             __errno_location
        - Src:             'trace.c:380,3'
          Dst:             pr_privs_relinquish
        - Src:             'trace.c:381,3'
          Dst:             pr_signals_unblock
        - Src:             'trace.c:386,9'
          Dst:             strerror
        - Src:             'trace.c:385,7'
          Dst:             pr_log_debug
        - Src:             'trace.c:387,7'
          Dst:             __errno_location
        - Src:             'trace.c:390,7'
          Dst:             pr_log_debug
        - Src:             'trace.c:393,7'
          Dst:             __errno_location
        - Src:             'trace.c:396,7'
          Dst:             pr_log_debug
        - Src:             'trace.c:399,7'
          Dst:             __errno_location
    - functionName:    pr_trace_parse_levels
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          291
      EdgeCount:       69
      CyclomaticComplexity: 22
      functionsReached:
        - __errno_location
        - strchr
        - strtol
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'trace.c:264,5'
          Dst:             __errno_location
        - Src:             'trace.c:270,5'
          Dst:             __errno_location
        - Src:             'trace.c:276,5'
          Dst:             __errno_location
        - Src:             'trace.c:280,9'
          Dst:             strchr
        - Src:             'trace.c:283,5'
          Dst:             __errno_location
        - Src:             'trace.c:284,18'
          Dst:             strtol
        - Src:             'trace.c:285,9'
          Dst:             __errno_location
        - Src:             'trace.c:286,7'
          Dst:             __errno_location
        - Src:             'trace.c:291,7'
          Dst:             __errno_location
        - Src:             'trace.c:296,7'
          Dst:             __errno_location
        - Src:             'trace.c:317,15'
          Dst:             strtol
        - Src:             'trace.c:318,7'
          Dst:             __errno_location
        - Src:             'trace.c:319,5'
          Dst:             __errno_location
        - Src:             'trace.c:325,5'
          Dst:             __errno_location
        - Src:             'trace.c:331,5'
          Dst:             __errno_location
        - Src:             'trace.c:336,16'
          Dst:             strtol
        - Src:             'trace.c:337,7'
          Dst:             __errno_location
        - Src:             'trace.c:338,5'
          Dst:             __errno_location
        - Src:             'trace.c:343,5'
          Dst:             __errno_location
        - Src:             'trace.c:348,5'
          Dst:             __errno_location
        - Src:             'trace.c:353,5'
          Dst:             __errno_location
    - 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:    71
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strtol
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    41
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_trace_get_min_level
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 255
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - trace_get_levels
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'trace.c:249,12'
          Dst:             trace_get_levels
    - functionName:    pr_trace_get_max_level
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - trace_get_levels
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'trace.c:238,12'
          Dst:             trace_get_levels
    - functionName:    pr_trace_get_level
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_trace_get_max_level
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'trace.c:232,10'
          Dst:             pr_trace_get_max_level
    - functionName:    pr_trace_get_table
      functionSourceFile: '/src/proftpd/src/trace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'trace.c:201,5'
          Dst:             __errno_location
    - functionName:    set_server_privs
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1109
      functionLinenumberEnd: 1143
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         12
      ICount:          83
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - get_param_ptr
        - getegid
        - geteuid
        - pr_privs_root
        - pr_privs_setup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:1114,18'
          Dst:             geteuid
        - Src:             'src/main.c:1115,18'
          Dst:             getegid
        - Src:             'src/main.c:1117,9'
          Dst:             get_param_ptr
        - Src:             'src/main.c:1126,10'
          Dst:             get_param_ptr
        - Src:             'src/main.c:1136,5'
          Dst:             pr_privs_root
        - Src:             'src/main.c:1141,5'
          Dst:             pr_privs_setup
    - functionName:    fork_server
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1145
      functionLinenumberEnd: 1566
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         123
      ICount:          838
      EdgeCount:       159
      CyclomaticComplexity: 38
      functionsReached:
        - __errno_location
        - child_add
        - close
        - destroy_pool
        - exit
        - fcntl
        - find_config
        - fork
        - getpid
        - log_closesyslog
        - log_opensyslog
        - login_check_limits
        - make_sub_pool
        - modules_session_init
        - pipe
        - pr_class_match_addr
        - pr_event_generate
        - pr_fs_get_usable_fd
        - pr_gettimeofday_millis
        - pr_inet_openrw
        - pr_inet_set_async
        - pr_inet_set_proto_opts
        - pr_ipbind_close_listeners
        - pr_ipbind_get_server
        - pr_log_auth
        - pr_log_debug
        - pr_log_pri
        - pr_netaddr_get_dnsstr
        - pr_netaddr_get_ipstr
        - pr_netaddr_set_reverse_dns
        - pr_netaddr_set_sess_addrs
        - pr_pool_tag
        - pr_privs_relinquish
        - pr_privs_root
        - pr_proctitle_set
        - pr_random_init
        - pr_response_send
        - pr_session_disconnect
        - pr_session_get_protocol
        - pr_session_send_banner
        - pr_signals_block
        - pr_signals_handle_disconnect
        - pr_signals_handle_event
        - pr_signals_unblock
        - pr_strtime3
        - pr_table_alloc
        - pstrdup
        - set_server_privs
        - sigaddset
        - sigemptyset
        - signal
        - sigprocmask
        - sreplace
        - strerror
        - time
        - timers_init
      functionUses:    2
      BranchProfiles:
        - Branch String:   'src/main.c:1200,5'
          Branch Sides:    []
      Callsites:
        - Src:             'src/main.c:1165,9'
          Dst:             pipe
        - Src:             'src/main.c:1166,63'
          Dst:             __errno_location
        - Src:             'src/main.c:1166,54'
          Dst:             strerror
        - Src:             'src/main.c:1166,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1167,14'
          Dst:             close
        - Src:             'src/main.c:1174,17'
          Dst:             pr_fs_get_usable_fd
        - Src:             'src/main.c:1179,12'
          Dst:             fcntl
        - Src:             'src/main.c:1186,5'
          Dst:             sigemptyset
        - Src:             'src/main.c:1187,5'
          Dst:             sigaddset
        - Src:             'src/main.c:1188,5'
          Dst:             sigaddset
        - Src:             'src/main.c:1189,5'
          Dst:             sigaddset
        - Src:             'src/main.c:1190,5'
          Dst:             sigaddset
        - Src:             'src/main.c:1192,9'
          Dst:             sigprocmask
        - Src:             'src/main.c:1194,52'
          Dst:             __errno_location
        - Src:             'src/main.c:1194,43'
          Dst:             strerror
        - Src:             'src/main.c:1193,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1197,11'
          Dst:             fork
        - Src:             'src/main.c:1198,14'
          Dst:             __errno_location
        - Src:             'src/main.c:1205,11'
          Dst:             sigprocmask
        - Src:             'src/main.c:1207,56'
          Dst:             __errno_location
        - Src:             'src/main.c:1207,47'
          Dst:             strerror
        - Src:             'src/main.c:1206,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1211,14'
          Dst:             close
        - Src:             'src/main.c:1215,11'
          Dst:             sigprocmask
        - Src:             'src/main.c:1217,56'
          Dst:             __errno_location
        - Src:             'src/main.c:1217,47'
          Dst:             strerror
        - Src:             'src/main.c:1216,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1220,56'
          Dst:             strerror
        - Src:             'src/main.c:1220,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1223,14'
          Dst:             close
        - Src:             'src/main.c:1224,14'
          Dst:             close
        - Src:             'src/main.c:1225,14'
          Dst:             close
        - Src:             'src/main.c:1231,14'
          Dst:             close
        - Src:             'src/main.c:1233,7'
          Dst:             child_add
        - Src:             'src/main.c:1234,14'
          Dst:             close
        - Src:             'src/main.c:1239,11'
          Dst:             sigprocmask
        - Src:             'src/main.c:1241,56'
          Dst:             __errno_location
        - Src:             'src/main.c:1241,47'
          Dst:             strerror
        - Src:             'src/main.c:1240,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1248,17'
          Dst:             getpid
        - Src:             'src/main.c:1251,3'
          Dst:             pr_ipbind_close_listeners
        - Src:             'src/main.c:1272,3'
          Dst:             pr_random_init
        - Src:             'src/main.c:1277,7'
          Dst:             signal
        - Src:             'src/main.c:1277,7'
          Dst:             pr_signals_handle_disconnect
        - Src:             'src/main.c:1280,16'
          Dst:             __errno_location
        - Src:             'src/main.c:1280,7'
          Dst:             strerror
        - Src:             'src/main.c:1278,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1283,7'
          Dst:             signal
        - Src:             'src/main.c:1283,7'
          Dst:             pr_signals_handle_event
        - Src:             'src/main.c:1286,16'
          Dst:             __errno_location
        - Src:             'src/main.c:1286,7'
          Dst:             strerror
        - Src:             'src/main.c:1284,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1289,7'
          Dst:             signal
        - Src:             'src/main.c:1292,16'
          Dst:             __errno_location
        - Src:             'src/main.c:1292,7'
          Dst:             strerror
        - Src:             'src/main.c:1290,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1295,7'
          Dst:             signal
        - Src:             'src/main.c:1298,16'
          Dst:             __errno_location
        - Src:             'src/main.c:1298,7'
          Dst:             strerror
        - Src:             'src/main.c:1296,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1311,3'
          Dst:             log_closesyslog
        - Src:             'src/main.c:1317,10'
          Dst:             pr_inet_openrw
        - Src:             'src/main.c:1322,14'
          Dst:             __errno_location
        - Src:             'src/main.c:1327,3'
          Dst:             pr_signals_block
        - Src:             'src/main.c:1328,3'
          Dst:             pr_privs_root
        - Src:             'src/main.c:1330,3'
          Dst:             log_opensyslog
        - Src:             'src/main.c:1332,3'
          Dst:             pr_privs_relinquish
        - Src:             'src/main.c:1333,3'
          Dst:             pr_signals_unblock
        - Src:             'src/main.c:1349,9'
          Dst:             strerror
        - Src:             'src/main.c:1348,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1353,9'
          Dst:             strerror
        - Src:             'src/main.c:1352,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1356,5'
          Dst:             exit
        - Src:             'src/main.c:1359,3'
          Dst:             pr_gettimeofday_millis
        - Src:             'src/main.c:1360,3'
          Dst:             pr_event_generate
        - Src:             'src/main.c:1363,17'
          Dst:             pr_ipbind_get_server
        - Src:             'src/main.c:1368,18'
          Dst:             make_sub_pool
        - Src:             'src/main.c:1369,3'
          Dst:             pr_pool_tag
        - Src:             'src/main.c:1382,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:1381,5'
          Dst:             pr_log_debug
        - Src:             'src/main.c:1383,5'
          Dst:             pr_log_debug
        - Src:             'src/main.c:1388,7'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'src/main.c:1386,5'
          Dst:             pr_response_send
        - Src:             'src/main.c:1389,5'
          Dst:             exit
        - Src:             'src/main.c:1392,7'
          Dst:             find_config
        - Src:             'src/main.c:1403,3'
          Dst:             pr_inet_set_proto_opts
        - Src:             'src/main.c:1410,10'
          Dst:             close
        - Src:             'src/main.c:1414,11'
          Dst:             pr_netaddr_set_reverse_dns
        - Src:             'src/main.c:1417,27'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'src/main.c:1420,5'
          Dst:             pr_netaddr_set_reverse_dns
        - Src:             'src/main.c:1423,3'
          Dst:             pr_netaddr_set_sess_addrs
        - Src:             'src/main.c:1429,5'
          Dst:             time
        - Src:             'src/main.c:1435,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:1438,11'
          Dst:             find_config
        - Src:             'src/main.c:1448,27'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:1452,18'
          Dst:             make_sub_pool
        - Src:             'src/main.c:1453,7'
          Dst:             pr_pool_tag
        - Src:             'src/main.c:1456,44'
          Dst:             pr_strtime3
        - Src:             'src/main.c:1456,26'
          Dst:             pstrdup
        - Src:             'src/main.c:1457,44'
          Dst:             pr_strtime3
        - Src:             'src/main.c:1457,26'
          Dst:             pstrdup
        - Src:             'src/main.c:1458,44'
          Dst:             pr_strtime3
        - Src:             'src/main.c:1458,26'
          Dst:             pstrdup
        - Src:             'src/main.c:1463,30'
          Dst:             pr_strtime3
        - Src:             'src/main.c:1463,12'
          Dst:             pstrdup
        - Src:             'src/main.c:1455,16'
          Dst:             sreplace
        - Src:             'src/main.c:1470,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:1468,7'
          Dst:             pr_log_auth
        - Src:             'src/main.c:1471,7'
          Dst:             pr_response_send
        - Src:             'src/main.c:1474,7'
          Dst:             destroy_pool
        - Src:             'src/main.c:1475,7'
          Dst:             exit
        - Src:             'src/main.c:1489,3'
          Dst:             set_server_privs
        - Src:             'src/main.c:1492,24'
          Dst:             pr_class_match_addr
        - Src:             'src/main.c:1494,5'
          Dst:             pr_log_debug
        - Src:             'src/main.c:1498,5'
          Dst:             pr_log_debug
        - Src:             'src/main.c:1506,8'
          Dst:             login_check_limits
        - Src:             'src/main.c:1509,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:1507,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1516,5'
          Dst:             pr_session_disconnect
        - Src:             'src/main.c:1521,19'
          Dst:             pr_table_alloc
        - Src:             'src/main.c:1524,16'
          Dst:             __errno_location
        - Src:             'src/main.c:1524,7'
          Dst:             strerror
        - Src:             'src/main.c:1523,5'
          Dst:             pr_log_debug
        - Src:             'src/main.c:1528,3'
          Dst:             timers_init
        - Src:             'src/main.c:1531,3'
          Dst:             pr_log_debug
        - Src:             'src/main.c:1532,7'
          Dst:             modules_session_init
        - Src:             'src/main.c:1533,5'
          Dst:             pr_session_disconnect
        - Src:             'src/main.c:1536,3'
          Dst:             pr_event_generate
        - Src:             'src/main.c:1539,5'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:1538,3'
          Dst:             pr_log_debug
        - Src:             'src/main.c:1541,5'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:1540,3'
          Dst:             pr_log_debug
        - Src:             'src/main.c:1545,30'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:1543,3'
          Dst:             pr_proctitle_set
        - Src:             'src/main.c:1549,5'
          Dst:             pr_session_get_protocol
        - Src:             'src/main.c:1548,3'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1552,3'
          Dst:             pr_inet_set_async
        - Src:             'src/main.c:1554,3'
          Dst:             pr_session_send_banner
    - functionName:    pipe
      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:    sigemptyset
      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:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sigaddset
      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:    49
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sigprocmask
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    17
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fork
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    signal
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    29
      BranchProfiles:  []
      Callsites:       []
    - functionName:    disc_children
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1568
      functionLinenumberEnd: 1593
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         16
      ICount:          78
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - child_count
        - child_signal
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
        - sigaddset
        - sigemptyset
        - sigprocmask
        - strerror
        - time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:1570,23'
          Dst:             time
        - Src:             'src/main.c:1570,37'
          Dst:             child_count
        - Src:             'src/main.c:1573,5'
          Dst:             sigemptyset
        - Src:             'src/main.c:1574,5'
          Dst:             sigaddset
        - Src:             'src/main.c:1575,5'
          Dst:             sigaddset
        - Src:             'src/main.c:1576,5'
          Dst:             sigaddset
        - Src:             'src/main.c:1577,5'
          Dst:             sigaddset
        - Src:             'src/main.c:1579,9'
          Dst:             sigprocmask
        - Src:             'src/main.c:1581,52'
          Dst:             __errno_location
        - Src:             'src/main.c:1581,43'
          Dst:             strerror
        - Src:             'src/main.c:1580,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1584,5'
          Dst:             pr_privs_root
        - Src:             'src/main.c:1585,5'
          Dst:             child_signal
        - Src:             'src/main.c:1586,5'
          Dst:             pr_privs_relinquish
        - Src:             'src/main.c:1588,9'
          Dst:             sigprocmask
        - Src:             'src/main.c:1590,54'
          Dst:             __errno_location
        - Src:             'src/main.c:1590,45'
          Dst:             strerror
        - Src:             'src/main.c:1589,7'
          Dst:             pr_log_pri
    - functionName:    daemon_loop
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1595
      functionLinenumberEnd: 1804
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         83
      ICount:          466
      EdgeCount:       110
      CyclomaticComplexity: 29
      functionsReached:
        - __errno_location
        - check_shutmsg
        - child_count
        - child_get
        - child_update
        - close
        - ctime_r
        - difftime
        - disc_children
        - exit
        - fork_server
        - pr_alarms_block
        - pr_alarms_unblock
        - pr_event_generate
        - pr_ipbind_accept_conn
        - pr_ipbind_listen
        - pr_log_pri
        - pr_proctitle_set
        - pr_signals_handle_without_delay
        - pr_str_strip_end
        - run_schedule
        - select
        - semaphore_fds
        - sigaddset
        - sigemptyset
        - sigprocmask
        - strerror
        - time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:1604,3'
          Dst:             pr_proctitle_set
        - Src:             'src/main.c:1606,3'
          Dst:             time
        - Src:             'src/main.c:1611,5'
          Dst:             run_schedule
        - Src:             'src/main.c:1614,13'
          Dst:             pr_ipbind_listen
        - Src:             'src/main.c:1617,13'
          Dst:             semaphore_fds
        - Src:             'src/main.c:1620,11'
          Dst:             check_shutmsg
        - Src:             'src/main.c:1624,9'
          Dst:             disc_children
        - Src:             'src/main.c:1654,20'
          Dst:             time
        - Src:             'src/main.c:1656,11'
          Dst:             difftime
        - Src:             'src/main.c:1657,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1665,16'
          Dst:             ctime_r
        - Src:             'src/main.c:1673,41'
          Dst:             pr_str_strip_end
        - Src:             'src/main.c:1671,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1678,14'
          Dst:             __errno_location
        - Src:             'src/main.c:1680,5'
          Dst:             select
        - Src:             'src/main.c:1681,14'
          Dst:             __errno_location
        - Src:             'src/main.c:1685,7'
          Dst:             __errno_location
        - Src:             'src/main.c:1686,7'
          Dst:             pr_signals_handle_without_delay
        - Src:             'src/main.c:1689,16'
          Dst:             __errno_location
        - Src:             'src/main.c:1696,7'
          Dst:             sigemptyset
        - Src:             'src/main.c:1697,7'
          Dst:             sigaddset
        - Src:             'src/main.c:1698,7'
          Dst:             sigaddset
        - Src:             'src/main.c:1699,7'
          Dst:             pr_alarms_block
        - Src:             'src/main.c:1700,11'
          Dst:             sigprocmask
        - Src:             'src/main.c:1702,54'
          Dst:             __errno_location
        - Src:             'src/main.c:1702,45'
          Dst:             strerror
        - Src:             'src/main.c:1701,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1706,7'
          Dst:             child_update
        - Src:             'src/main.c:1708,11'
          Dst:             sigprocmask
        - Src:             'src/main.c:1710,56'
          Dst:             __errno_location
        - Src:             'src/main.c:1710,47'
          Dst:             strerror
        - Src:             'src/main.c:1709,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1713,7'
          Dst:             pr_alarms_unblock
        - Src:             'src/main.c:1719,7'
          Dst:             time
        - Src:             'src/main.c:1722,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1724,9'
          Dst:             exit
        - Src:             'src/main.c:1732,9'
          Dst:             strerror
        - Src:             'src/main.c:1731,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1745,9'
          Dst:             child_count
        - Src:             'src/main.c:1747,20'
          Dst:             time
        - Src:             'src/main.c:1749,17'
          Dst:             child_get
        - Src:             'src/main.c:1752,11'
          Dst:             close
        - Src:             'src/main.c:1749,43'
          Dst:             child_get
        - Src:             'src/main.c:1765,5'
          Dst:             pr_signals_handle_without_delay
        - Src:             'src/main.c:1772,19'
          Dst:             pr_ipbind_accept_conn
        - Src:             'src/main.c:1783,11'
          Dst:             child_count
        - Src:             'src/main.c:1784,9'
          Dst:             pr_event_generate
        - Src:             'src/main.c:1786,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1789,9'
          Dst:             close
        - Src:             'src/main.c:1793,9'
          Dst:             pr_event_generate
        - Src:             'src/main.c:1795,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1798,9'
          Dst:             close
        - Src:             'src/main.c:1802,9'
          Dst:             fork_server
    - functionName:    semaphore_fds
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          91
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - child_count
        - child_get
        - pr_signals_handle_without_delay
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:100,7'
          Dst:             child_count
        - Src:             'src/main.c:103,15'
          Dst:             child_get
        - Src:             'src/main.c:104,7'
          Dst:             pr_signals_handle_without_delay
        - Src:             'src/main.c:103,41'
          Dst:             child_get
    - functionName:    difftime
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ctime_r
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    select
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    daemonize
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1815
      functionLinenumberEnd: 1882
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          55
      EdgeCount:       15
      CyclomaticComplexity: 9
      functionsReached:
        - close
        - fileno
        - fork
        - getpid
        - perror
        - pr_fsio_chdir
        - pr_log_pri
        - setpgid
        - setsid
      functionUses:    1
      BranchProfiles:
        - Branch String:   'src/main.c:1824,3'
          Branch Sides:    []
      Callsites:
        - Src:             'src/main.c:1823,9'
          Dst:             fork
        - Src:             'src/main.c:1826,7'
          Dst:             perror
        - Src:             'src/main.c:1835,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1844,3'
          Dst:             setsid
        - Src:             'src/main.c:1858,9'
          Dst:             fileno
        - Src:             'src/main.c:1858,3'
          Dst:             close
        - Src:             'src/main.c:1859,9'
          Dst:             fileno
        - Src:             'src/main.c:1859,3'
          Dst:             close
        - Src:             'src/main.c:1860,9'
          Dst:             fileno
        - Src:             'src/main.c:1860,3'
          Dst:             close
        - Src:             'src/main.c:1865,14'
          Dst:             getpid
        - Src:             'src/main.c:1865,3'
          Dst:             setpgid
        - Src:             'src/main.c:1878,10'
          Dst:             getpid
        - Src:             'src/main.c:1880,3'
          Dst:             pr_fsio_chdir
    - functionName:    perror
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    setsid
      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:    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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    setpgid
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    conftab_cmp
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2006
      functionLinenumberEnd: 2011
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:2011,10'
          Dst:             strcmp
    - functionName:    show_os_release
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2086
      functionLinenumberEnd: 2127
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         22
      ICount:          107
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - fclose
        - fopen
        - getline
        - pr_signals_handle
        - printf
        - strstr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:2093,8'
          Dst:             fopen
        - Src:             'src/main.c:2098,3'
          Dst:             printf
        - Src:             'src/main.c:2100,11'
          Dst:             getline
        - Src:             'src/main.c:2104,5'
          Dst:             pr_signals_handle
        - Src:             'src/main.c:2107,9'
          Dst:             strstr
        - Src:             'src/main.c:2108,9'
          Dst:             strstr
        - Src:             'src/main.c:2109,9'
          Dst:             strstr
        - Src:             'src/main.c:2114,15'
          Dst:             getline
        - Src:             'src/main.c:2118,5'
          Dst:             printf
        - Src:             'src/main.c:2119,13'
          Dst:             getline
        - Src:             'src/main.c:2126,10'
          Dst:             fclose
    - 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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    printf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    77
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getline
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strstr
      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:    25
      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:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    inetd_main
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1884
      functionLinenumberEnd: 1939
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         18
      ICount:          97
      EdgeCount:       20
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - check_shutmsg
        - fork_server
        - init_bindings
        - pr_close_scoreboard
        - pr_delete_scoreboard
        - pr_event_generate
        - pr_log_pri
        - pr_open_scoreboard
        - pr_privs_relinquish
        - pr_privs_root
        - strerror
      functionUses:    1
      BranchProfiles:
        - Branch String:   'src/main.c:1893,5'
          Branch Sides:    []
      Callsites:
        - Src:             'src/main.c:1888,3'
          Dst:             pr_privs_root
        - Src:             'src/main.c:1889,9'
          Dst:             pr_open_scoreboard
        - Src:             'src/main.c:1891,5'
          Dst:             pr_privs_relinquish
        - Src:             'src/main.c:1895,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1900,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1904,9'
          Dst:             pr_privs_root
        - Src:             'src/main.c:1905,9'
          Dst:             pr_delete_scoreboard
        - Src:             'src/main.c:1906,13'
          Dst:             pr_open_scoreboard
        - Src:             'src/main.c:1907,24'
          Dst:             __errno_location
        - Src:             'src/main.c:1909,11'
          Dst:             pr_privs_relinquish
        - Src:             'src/main.c:1911,13'
          Dst:             strerror
        - Src:             'src/main.c:1910,11'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1918,20'
          Dst:             __errno_location
        - Src:             'src/main.c:1918,11'
          Dst:             strerror
        - Src:             'src/main.c:1917,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1922,3'
          Dst:             pr_privs_relinquish
        - Src:             'src/main.c:1923,3'
          Dst:             pr_close_scoreboard
        - Src:             'src/main.c:1925,3'
          Dst:             pr_event_generate
        - Src:             'src/main.c:1927,3'
          Dst:             init_bindings
        - Src:             'src/main.c:1930,7'
          Dst:             check_shutmsg
        - Src:             'src/main.c:1938,3'
          Dst:             fork_server
    - functionName:    standalone_main
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1941
      functionLinenumberEnd: 2004
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         17
      ICount:          108
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - close
        - daemon_loop
        - daemonize
        - exit
        - fileno
        - init_bindings
        - log_stderr
        - pr_close_scoreboard
        - pr_delete_scoreboard
        - pr_event_generate
        - pr_log_pri
        - pr_open_scoreboard
        - pr_pidfile_get
        - pr_pidfile_write
        - pr_privs_relinquish
        - pr_privs_root
        - strerror
      functionUses:    1
      BranchProfiles:
        - Branch String:   'src/main.c:1966,5'
          Branch Sides:    []
      Callsites:
        - Src:             'src/main.c:1945,5'
          Dst:             log_stderr
        - Src:             'src/main.c:1946,11'
          Dst:             fileno
        - Src:             'src/main.c:1946,5'
          Dst:             close
        - Src:             'src/main.c:1947,11'
          Dst:             fileno
        - Src:             'src/main.c:1947,5'
          Dst:             close
        - Src:             'src/main.c:1950,5'
          Dst:             log_stderr
        - Src:             'src/main.c:1951,11'
          Dst:             daemonize
        - Src:             'src/main.c:1960,3'
          Dst:             pr_privs_root
        - Src:             'src/main.c:1961,3'
          Dst:             pr_delete_scoreboard
        - Src:             'src/main.c:1962,9'
          Dst:             pr_open_scoreboard
        - Src:             'src/main.c:1964,5'
          Dst:             pr_privs_relinquish
        - Src:             'src/main.c:1968,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1973,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1978,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1983,73'
          Dst:             __errno_location
        - Src:             'src/main.c:1983,64'
          Dst:             strerror
        - Src:             'src/main.c:1983,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1987,3'
          Dst:             pr_privs_relinquish
        - Src:             'src/main.c:1988,3'
          Dst:             pr_close_scoreboard
        - Src:             'src/main.c:1990,3'
          Dst:             pr_event_generate
        - Src:             'src/main.c:1992,3'
          Dst:             init_bindings
        - Src:             'src/main.c:1994,7'
          Dst:             pr_pidfile_write
        - Src:             'src/main.c:1995,62'
          Dst:             pr_pidfile_get
        - Src:             'src/main.c:1996,16'
          Dst:             __errno_location
        - Src:             'src/main.c:1996,7'
          Dst:             strerror
        - Src:             'src/main.c:1995,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1997,5'
          Dst:             exit
        - Src:             'src/main.c:2000,3'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2003,3'
          Dst:             daemon_loop
    - functionName:    list_directives
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2018
      functionLinenumberEnd: 2057
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          104
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - conftab_cmp
        - destroy_pool
        - make_array
        - make_sub_pool
        - pr_signals_handle
        - pr_stash_get_symbol2
        - printf
        - push_array
        - qsort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:2026,14'
          Dst:             make_sub_pool
        - Src:             'src/main.c:2027,16'
          Dst:             make_array
        - Src:             'src/main.c:2031,9'
          Dst:             pr_stash_get_symbol2
        - Src:             'src/main.c:2033,5'
          Dst:             pr_signals_handle
        - Src:             'src/main.c:2036,24'
          Dst:             push_array
        - Src:             'src/main.c:2042,11'
          Dst:             pr_stash_get_symbol2
        - Src:             'src/main.c:2045,3'
          Dst:             qsort
        - Src:             'src/main.c:2045,3'
          Dst:             conftab_cmp
        - Src:             'src/main.c:2048,3'
          Dst:             printf
        - Src:             'src/main.c:2053,5'
          Dst:             printf
        - Src:             'src/main.c:2056,3'
          Dst:             destroy_pool
    - 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:    14
      BranchProfiles:  []
      Callsites:       []
    - functionName:    show_usage
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2419
      functionLinenumberEnd: 2432
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          46
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - exit
        - printf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:2422,3'
          Dst:             printf
        - Src:             'src/main.c:2425,5'
          Dst:             printf
        - Src:             'src/main.c:2429,5'
          Dst:             printf
        - Src:             'src/main.c:2432,3'
          Dst:             exit
    - functionName:    show_settings
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2129
      functionLinenumberEnd: 2359
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          96
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - printf
        - show_os_release
        - uname
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:2135,3'
          Dst:             printf
        - Src:             'src/main.c:2136,3'
          Dst:             printf
        - Src:             'src/main.c:2142,9'
          Dst:             uname
        - Src:             'src/main.c:2144,5'
          Dst:             printf
        - Src:             'src/main.c:2147,5'
          Dst:             printf
        - Src:             'src/main.c:2154,3'
          Dst:             show_os_release
        - Src:             'src/main.c:2156,3'
          Dst:             printf
        - Src:             'src/main.c:2157,3'
          Dst:             printf
        - Src:             'src/main.c:2159,3'
          Dst:             printf
        - Src:             'src/main.c:2160,3'
          Dst:             printf
        - Src:             'src/main.c:2161,3'
          Dst:             printf
        - Src:             'src/main.c:2164,3'
          Dst:             printf
        - Src:             'src/main.c:2165,3'
          Dst:             printf
        - Src:             'src/main.c:2166,3'
          Dst:             printf
        - Src:             'src/main.c:2167,3'
          Dst:             printf
        - Src:             'src/main.c:2168,3'
          Dst:             printf
        - Src:             'src/main.c:2169,3'
          Dst:             printf
        - Src:             'src/main.c:2170,3'
          Dst:             printf
        - Src:             'src/main.c:2179,3'
          Dst:             printf
        - Src:             'src/main.c:2181,3'
          Dst:             printf
        - Src:             'src/main.c:2189,3'
          Dst:             printf
        - Src:             'src/main.c:2197,3'
          Dst:             printf
        - Src:             'src/main.c:2201,3'
          Dst:             printf
        - Src:             'src/main.c:2205,3'
          Dst:             printf
        - Src:             'src/main.c:2213,3'
          Dst:             printf
        - Src:             'src/main.c:2219,3'
          Dst:             printf
        - Src:             'src/main.c:2225,3'
          Dst:             printf
        - Src:             'src/main.c:2229,3'
          Dst:             printf
        - Src:             'src/main.c:2235,3'
          Dst:             printf
        - Src:             'src/main.c:2243,3'
          Dst:             printf
        - Src:             'src/main.c:2249,3'
          Dst:             printf
        - Src:             'src/main.c:2257,3'
          Dst:             printf
        - Src:             'src/main.c:2263,3'
          Dst:             printf
        - Src:             'src/main.c:2277,3'
          Dst:             printf
        - Src:             'src/main.c:2283,3'
          Dst:             printf
        - Src:             'src/main.c:2289,3'
          Dst:             printf
        - Src:             'src/main.c:2295,3'
          Dst:             printf
        - Src:             'src/main.c:2301,3'
          Dst:             printf
        - Src:             'src/main.c:2305,3'
          Dst:             printf
        - Src:             'src/main.c:2311,3'
          Dst:             printf
        - Src:             'src/main.c:2319,3'
          Dst:             printf
        - Src:             'src/main.c:2323,3'
          Dst:             printf
        - Src:             'src/main.c:2329,3'
          Dst:             printf
        - Src:             'src/main.c:2335,3'
          Dst:             printf
        - Src:             'src/main.c:2336,3'
          Dst:             printf
        - Src:             'src/main.c:2337,3'
          Dst:             printf
        - Src:             'src/main.c:2338,3'
          Dst:             printf
        - Src:             'src/main.c:2339,3'
          Dst:             printf
        - Src:             'src/main.c:2340,3'
          Dst:             printf
        - Src:             'src/main.c:2341,3'
          Dst:             printf
        - Src:             'src/main.c:2342,3'
          Dst:             printf
        - Src:             'src/main.c:2343,3'
          Dst:             printf
        - Src:             'src/main.c:2344,3'
          Dst:             printf
        - Src:             'src/main.c:2345,3'
          Dst:             printf
        - Src:             'src/main.c:2346,3'
          Dst:             printf
        - Src:             'src/main.c:2348,3'
          Dst:             printf
        - Src:             'src/main.c:2350,3'
          Dst:             printf
        - Src:             'src/main.c:2351,3'
          Dst:             printf
        - Src:             'src/main.c:2352,3'
          Dst:             printf
        - Src:             'src/main.c:2353,3'
          Dst:             printf
        - Src:             'src/main.c:2354,3'
          Dst:             printf
        - Src:             'src/main.c:2355,3'
          Dst:             printf
        - Src:             'src/main.c:2356,3'
          Dst:             printf
        - Src:             'src/main.c:2357,3'
          Dst:             printf
    - functionName:    uname
      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:    main2
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2435
      functionLinenumberEnd: 2854
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         94
      ICount:          573
      EdgeCount:       102
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - atoi
        - endgrent
        - endpwent
        - exit
        - fflush
        - fileno
        - fixup_servers
        - free_bindings
        - get_param_ptr
        - getegid
        - geteuid
        - getopt_long
        - getpeername
        - getpid
        - inetd_main
        - init_class
        - init_config
        - init_ctrls
        - init_dirtree
        - init_fs
        - init_inet
        - init_json
        - init_log
        - init_netaddr
        - init_netio
        - init_pools
        - init_privs
        - init_regexp
        - init_signals
        - init_stash
        - list_directives
        - log_opensyslog
        - log_stderr
        - make_array
        - modules_init
        - modules_list2
        - pr_define_add
        - pr_event_generate
        - pr_fs_close_extra_fds
        - pr_fs_valid_path
        - pr_gid2str
        - pr_log_pri
        - pr_log_setdebuglevel
        - pr_log_setdefaultlevel
        - pr_netaddr_disable_ipv6
        - pr_netaddr_enable_ipv6
        - pr_netaddr_set_localaddr_str
        - pr_parser_cleanup
        - pr_parser_parse_file
        - pr_parser_prepare
        - pr_privs_setup
        - pr_proctitle_init
        - pr_random_init
        - pr_session_end
        - pr_uid2str
        - printf
        - push_array
        - set_groups
        - show_settings
        - show_usage
        - standalone_main
        - strdup
        - strerror
        - tzset
        - umask
        - var_init
      functionUses:    0
      BranchProfiles:
        - Branch String:   'src/main.c:2514,5'
          Branch Sides:    []
        - Branch String:   'src/main.c:2832,3'
          Branch Sides:    []
      Callsites:
        - Src:             'src/main.c:2452,3'
          Dst:             tzset
        - Src:             'src/main.c:2457,3'
          Dst:             pr_fs_close_extra_fds
        - Src:             'src/main.c:2458,3'
          Dst:             pr_proctitle_init
        - Src:             'src/main.c:2461,3'
          Dst:             pr_random_init
        - Src:             'src/main.c:2466,19'
          Dst:             fileno
        - Src:             'src/main.c:2466,7'
          Dst:             getpeername
        - Src:             'src/main.c:2467,5'
          Dst:             log_stderr
        - Src:             'src/main.c:2471,3'
          Dst:             log_opensyslog
        - Src:             'src/main.c:2474,3'
          Dst:             init_pools
        - Src:             'src/main.c:2509,3'
          Dst:             getopt_long
        - Src:             'src/main.c:2518,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2519,9'
          Dst:             exit
        - Src:             'src/main.c:2522,7'
          Dst:             pr_define_add
        - Src:             'src/main.c:2526,7'
          Dst:             show_settings
        - Src:             'src/main.c:2527,7'
          Dst:             exit
        - Src:             'src/main.c:2547,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2548,9'
          Dst:             exit
        - Src:             'src/main.c:2550,28'
          Dst:             atoi
        - Src:             'src/main.c:2550,7'
          Dst:             pr_log_setdebuglevel
        - Src:             'src/main.c:2556,7'
          Dst:             pr_log_setdefaultlevel
        - Src:             'src/main.c:2561,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2563,9'
          Dst:             exit
        - Src:             'src/main.c:2569,25'
          Dst:             strdup
        - Src:             'src/main.c:2573,7'
          Dst:             modules_list2
        - Src:             'src/main.c:2574,7'
          Dst:             exit
        - Src:             'src/main.c:2579,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2580,9'
          Dst:             exit
        - Src:             'src/main.c:2583,11'
          Dst:             pr_netaddr_set_localaddr_str
        - Src:             'src/main.c:2586,20'
          Dst:             __errno_location
        - Src:             'src/main.c:2586,11'
          Dst:             strerror
        - Src:             'src/main.c:2584,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2587,9'
          Dst:             exit
        - Src:             'src/main.c:2593,7'
          Dst:             printf
        - Src:             'src/main.c:2594,7'
          Dst:             fflush
        - Src:             'src/main.c:2602,12'
          Dst:             atoi
        - Src:             'src/main.c:2602,33'
          Dst:             atoi
        - Src:             'src/main.c:2603,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2605,9'
          Dst:             exit
        - Src:             'src/main.c:2624,7'
          Dst:             show_usage
        - Src:             'src/main.c:2628,7'
          Dst:             pr_netaddr_disable_ipv6
        - Src:             'src/main.c:2632,7'
          Dst:             pr_netaddr_enable_ipv6
        - Src:             'src/main.c:2637,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2638,7'
          Dst:             show_usage
        - Src:             'src/main.c:2645,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2646,5'
          Dst:             exit
        - Src:             'src/main.c:2650,5'
          Dst:             printf
        - Src:             'src/main.c:2651,5'
          Dst:             exit
        - Src:             'src/main.c:2654,10'
          Dst:             getpid
        - Src:             'src/main.c:2657,3'
          Dst:             init_signals
        - Src:             'src/main.c:2658,3'
          Dst:             init_pools
        - Src:             'src/main.c:2659,3'
          Dst:             init_privs
        - Src:             'src/main.c:2660,3'
          Dst:             init_log
        - Src:             'src/main.c:2661,3'
          Dst:             init_regexp
        - Src:             'src/main.c:2662,3'
          Dst:             init_inet
        - Src:             'src/main.c:2663,3'
          Dst:             init_netio
        - Src:             'src/main.c:2664,3'
          Dst:             init_netaddr
        - Src:             'src/main.c:2665,3'
          Dst:             init_fs
        - Src:             'src/main.c:2666,3'
          Dst:             init_class
        - Src:             'src/main.c:2667,3'
          Dst:             free_bindings
        - Src:             'src/main.c:2668,3'
          Dst:             init_config
        - Src:             'src/main.c:2669,3'
          Dst:             init_dirtree
        - Src:             'src/main.c:2670,3'
          Dst:             init_stash
        - Src:             'src/main.c:2671,3'
          Dst:             init_json
        - Src:             'src/main.c:2674,3'
          Dst:             init_ctrls
        - Src:             'src/main.c:2677,3'
          Dst:             var_init
        - Src:             'src/main.c:2708,3'
          Dst:             modules_init
        - Src:             'src/main.c:2714,7'
          Dst:             pr_fs_valid_path
        - Src:             'src/main.c:2715,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2716,5'
          Dst:             exit
        - Src:             'src/main.c:2719,3'
          Dst:             pr_parser_prepare
        - Src:             'src/main.c:2721,3'
          Dst:             pr_event_generate
        - Src:             'src/main.c:2723,7'
          Dst:             pr_parser_parse_file
        - Src:             'src/main.c:2727,9'
          Dst:             __errno_location
        - Src:             'src/main.c:2730,18'
          Dst:             __errno_location
        - Src:             'src/main.c:2730,9'
          Dst:             strerror
        - Src:             'src/main.c:2728,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2733,5'
          Dst:             exit
        - Src:             'src/main.c:2736,7'
          Dst:             pr_parser_cleanup
        - Src:             'src/main.c:2737,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2740,5'
          Dst:             exit
        - Src:             'src/main.c:2743,7'
          Dst:             fixup_servers
        - Src:             'src/main.c:2744,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2746,5'
          Dst:             exit
        - Src:             'src/main.c:2749,3'
          Dst:             pr_event_generate
        - Src:             'src/main.c:2752,5'
          Dst:             printf
        - Src:             'src/main.c:2753,5'
          Dst:             printf
        - Src:             'src/main.c:2754,5'
          Dst:             printf
        - Src:             'src/main.c:2756,5'
          Dst:             modules_list2
        - Src:             'src/main.c:2759,7'
          Dst:             printf
        - Src:             'src/main.c:2760,7'
          Dst:             list_directives
        - Src:             'src/main.c:2763,5'
          Dst:             exit
        - Src:             'src/main.c:2768,5'
          Dst:             printf
        - Src:             'src/main.c:2769,5'
          Dst:             pr_session_end
        - Src:             'src/main.c:2774,28'
          Dst:             get_param_ptr
        - Src:             'src/main.c:2775,28'
          Dst:             get_param_ptr
        - Src:             'src/main.c:2780,19'
          Dst:             make_array
        - Src:             'src/main.c:2781,17'
          Dst:             push_array
        - Src:             'src/main.c:2783,9'
          Dst:             set_groups
        - Src:             'src/main.c:2784,11'
          Dst:             __errno_location
        - Src:             'src/main.c:2786,20'
          Dst:             __errno_location
        - Src:             'src/main.c:2786,11'
          Dst:             strerror
        - Src:             'src/main.c:2785,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2794,3'
          Dst:             endpwent
        - Src:             'src/main.c:2795,3'
          Dst:             endgrent
        - Src:             'src/main.c:2797,16'
          Dst:             get_param_ptr
        - Src:             'src/main.c:2799,5'
          Dst:             umask
        - Src:             'src/main.c:2802,5'
          Dst:             umask
        - Src:             'src/main.c:2810,3'
          Dst:             pr_privs_setup
        - Src:             'src/main.c:2817,7'
          Dst:             geteuid
        - Src:             'src/main.c:2819,7'
          Dst:             pr_uid2str
        - Src:             'src/main.c:2820,34'
          Dst:             geteuid
        - Src:             'src/main.c:2820,7'
          Dst:             pr_uid2str
        - Src:             'src/main.c:2818,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2821,5'
          Dst:             exit
        - Src:             'src/main.c:2824,7'
          Dst:             getegid
        - Src:             'src/main.c:2826,7'
          Dst:             pr_gid2str
        - Src:             'src/main.c:2827,34'
          Dst:             getegid
        - Src:             'src/main.c:2827,7'
          Dst:             pr_gid2str
        - Src:             'src/main.c:2825,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:2828,5'
          Dst:             exit
        - Src:             'src/main.c:2834,7'
          Dst:             standalone_main
        - Src:             'src/main.c:2842,7'
          Dst:             inetd_main
    - functionName:    tzset
      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:    getpeername
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getopt_long
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    atoi
      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:    46
      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:    5
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    endpwent
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    endgrent
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    umask
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    restart_daemon
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 986
      functionLinenumberEnd: 1107
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          278
      EdgeCount:       55
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - child_get
        - close
        - endgrent
        - endpwent
        - fixup_servers
        - free_bindings
        - gettimeofday
        - init_bindings
        - init_class
        - init_config
        - init_dirtree
        - init_log
        - init_netaddr
        - pr_event_generate
        - pr_log_pri
        - pr_netaddr_clear_cache
        - pr_parser_cleanup
        - pr_parser_parse_file
        - pr_parser_prepare
        - pr_privs_relinquish
        - pr_privs_root
        - pr_session_end
        - pr_trace_msg
        - select
        - semaphore_fds
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:995,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:999,3'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1002,3'
          Dst:             gettimeofday
        - Src:             'src/main.c:1008,11'
          Dst:             semaphore_fds
        - Src:             'src/main.c:1010,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1016,11'
          Dst:             select
        - Src:             'src/main.c:1020,19'
          Dst:             child_get
        - Src:             'src/main.c:1023,20'
          Dst:             close
        - Src:             'src/main.c:1020,45'
          Dst:             child_get
        - Src:             'src/main.c:1031,15'
          Dst:             semaphore_fds
        - Src:             'src/main.c:1035,3'
          Dst:             free_bindings
        - Src:             'src/main.c:1038,3'
          Dst:             pr_event_generate
        - Src:             'src/main.c:1040,3'
          Dst:             init_log
        - Src:             'src/main.c:1041,3'
          Dst:             init_netaddr
        - Src:             'src/main.c:1042,3'
          Dst:             init_class
        - Src:             'src/main.c:1043,3'
          Dst:             init_config
        - Src:             'src/main.c:1044,3'
          Dst:             init_dirtree
        - Src:             'src/main.c:1050,3'
          Dst:             pr_netaddr_clear_cache
        - Src:             'src/main.c:1051,3'
          Dst:             pr_parser_prepare
        - Src:             'src/main.c:1052,3'
          Dst:             pr_event_generate
        - Src:             'src/main.c:1054,3'
          Dst:             pr_privs_root
        - Src:             'src/main.c:1055,9'
          Dst:             pr_parser_parse_file
        - Src:             'src/main.c:1056,12'
          Dst:             __errno_location
        - Src:             'src/main.c:1057,3'
          Dst:             pr_privs_relinquish
        - Src:             'src/main.c:1066,9'
          Dst:             strerror
        - Src:             'src/main.c:1064,7'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1069,5'
          Dst:             pr_session_end
        - Src:             'src/main.c:1072,7'
          Dst:             pr_parser_cleanup
        - Src:             'src/main.c:1073,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1076,5'
          Dst:             pr_session_end
        - Src:             'src/main.c:1086,3'
          Dst:             endpwent
        - Src:             'src/main.c:1087,3'
          Dst:             endgrent
        - Src:             'src/main.c:1089,7'
          Dst:             fixup_servers
        - Src:             'src/main.c:1090,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:1092,5'
          Dst:             pr_session_end
        - Src:             'src/main.c:1095,3'
          Dst:             pr_event_generate
        - Src:             'src/main.c:1100,3'
          Dst:             init_bindings
        - Src:             'src/main.c:1102,3'
          Dst:             gettimeofday
        - Src:             'src/main.c:1106,3'
          Dst:             pr_trace_msg
    - functionName:    pr_cmd_dispatch
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 800
      functionLinenumberEnd: 801
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_cmd_dispatch_phase
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:801,10'
          Dst:             pr_cmd_dispatch_phase
    - functionName:    pr_cmd_dispatch_phase
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 621
      functionLinenumberEnd: 798
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         72
      ICount:          470
      EdgeCount:       91
      CyclomaticComplexity: 21
      functionsReached:
        - __errno_location
        - dispatch_cmd
        - get_command_class
        - pr_cmd_get_id
        - pr_response_clear
        - pr_response_flush
        - pr_response_get_pool
        - pr_response_set_pool
        - pr_trace_msg
        - set_cmd_start_ms
        - toupper
      functionUses:    10
      BranchProfiles:
        - Branch String:   'src/main.c:743,5'
          Branch Sides:    []
      Callsites:
        - Src:             'src/main.c:627,5'
          Dst:             __errno_location
        - Src:             'src/main.c:637,7'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:641,5'
          Dst:             pr_response_clear
        - Src:             'src/main.c:642,5'
          Dst:             pr_response_clear
        - Src:             'src/main.c:654,15'
          Dst:             pr_response_get_pool
        - Src:             'src/main.c:657,3'
          Dst:             pr_response_set_pool
        - Src:             'src/main.c:660,11'
          Dst:             toupper
        - Src:             'src/main.c:664,22'
          Dst:             get_command_class
        - Src:             'src/main.c:668,19'
          Dst:             pr_cmd_get_id
        - Src:             'src/main.c:671,3'
          Dst:             set_cmd_start_ms
        - Src:             'src/main.c:675,15'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:678,17'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:684,7'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:685,7'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:687,7'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:688,7'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:690,16'
          Dst:             __errno_location
        - Src:             'src/main.c:691,7'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:693,7'
          Dst:             pr_response_flush
        - Src:             'src/main.c:696,7'
          Dst:             pr_response_set_pool
        - Src:             'src/main.c:698,7'
          Dst:             __errno_location
        - Src:             'src/main.c:702,15'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:704,17'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:708,17'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:710,19'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:713,7'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:714,7'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:716,16'
          Dst:             __errno_location
        - Src:             'src/main.c:717,7'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:719,7'
          Dst:             pr_response_flush
        - Src:             'src/main.c:721,7'
          Dst:             __errno_location
        - Src:             'src/main.c:726,17'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:728,19'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:731,7'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:732,7'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:734,16'
          Dst:             __errno_location
        - Src:             'src/main.c:735,7'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:737,7'
          Dst:             pr_response_flush
        - Src:             'src/main.c:739,7'
          Dst:             __errno_location
        - Src:             'src/main.c:747,19'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:749,21'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:750,20'
          Dst:             __errno_location
        - Src:             'src/main.c:755,19'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:757,21'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:763,16'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:764,16'
          Dst:             dispatch_cmd
        - Src:             'src/main.c:769,9'
          Dst:             pr_response_set_pool
        - Src:             'src/main.c:771,9'
          Dst:             __errno_location
        - Src:             'src/main.c:776,16'
          Dst:             __errno_location
        - Src:             'src/main.c:779,9'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:781,9'
          Dst:             pr_response_flush
        - Src:             'src/main.c:784,9'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:786,9'
          Dst:             pr_response_flush
        - Src:             'src/main.c:789,7'
          Dst:             __errno_location
        - Src:             'src/main.c:794,3'
          Dst:             pr_response_set_pool
        - Src:             'src/main.c:796,3'
          Dst:             __errno_location
    - functionName:    toupper
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_command_class
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - pr_signals_handle
        - pr_stash_get_symbol2
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:220,7'
          Dst:             pr_stash_get_symbol2
        - Src:             'src/main.c:222,5'
          Dst:             pr_signals_handle
        - Src:             'src/main.c:223,9'
          Dst:             pr_stash_get_symbol2
    - functionName:    set_cmd_start_ms
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 598
      functionLinenumberEnd: 619
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - palloc
        - pr_gettimeofday_millis
        - pr_table_add
        - pr_table_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:606,16'
          Dst:             pr_table_get
        - Src:             'src/main.c:611,7'
          Dst:             pr_gettimeofday_millis
        - Src:             'src/main.c:615,7'
          Dst:             palloc
        - Src:             'src/main.c:618,10'
          Dst:             pr_table_add
    - functionName:    dispatch_cmd
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 455
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         195
      ICount:          979
      EdgeCount:       263
      CyclomaticComplexity: 70
      functionsReached:
        - __errno_location
        - destroy_pool
        - kludge_disable_umask
        - kludge_enable_umask
        - make_sub_pool
        - memchr
        - pr_cmd_get_displayable_str
        - pr_event_generate
        - pr_log_debug
        - pr_log_pri
        - pr_module_call
        - pr_netaddr_get_ipstr
        - pr_pool_tag
        - pr_proctitle_set
        - pr_response_add_err
        - pr_response_send_raw
        - pr_scoreboard_entry_update
        - pr_session_set_idle
        - pr_signals_handle
        - pr_stash_get_symbol2
        - pr_trace_msg
        - pstrdup
        - strchr
        - strcmp
      functionUses:    22
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:262,7'
          Dst:             pr_stash_get_symbol2
        - Src:             'src/main.c:267,5'
          Dst:             pr_signals_handle
        - Src:             'src/main.c:276,22'
          Dst:             pstrdup
        - Src:             'src/main.c:282,9'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:285,9'
          Dst:             __errno_location
        - Src:             'src/main.c:290,25'
          Dst:             make_sub_pool
        - Src:             'src/main.c:291,9'
          Dst:             pr_pool_tag
        - Src:             'src/main.c:294,19'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'src/main.c:307,20'
          Dst:             memchr
        - Src:             'src/main.c:310,20'
          Dst:             strchr
        - Src:             'src/main.c:313,11'
          Dst:             pr_scoreboard_entry_update
        - Src:             'src/main.c:315,11'
          Dst:             pr_scoreboard_entry_update
        - Src:             'src/main.c:318,11'
          Dst:             pr_proctitle_set
        - Src:             'src/main.c:324,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:323,11'
          Dst:             pr_proctitle_set
        - Src:             'src/main.c:333,9'
          Dst:             pr_log_debug
        - Src:             'src/main.c:343,9'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:362,11'
          Dst:             strcmp
        - Src:             'src/main.c:363,9'
          Dst:             kludge_disable_umask
        - Src:             'src/main.c:366,12'
          Dst:             pr_module_call
        - Src:             'src/main.c:367,7'
          Dst:             kludge_enable_umask
        - Src:             'src/main.c:373,18'
          Dst:             __errno_location
        - Src:             'src/main.c:380,13'
          Dst:             pr_log_pri
        - Src:             'src/main.c:399,13'
          Dst:             pr_response_add_err
        - Src:             'src/main.c:402,13'
          Dst:             pr_response_send_raw
        - Src:             'src/main.c:406,9'
          Dst:             __errno_location
        - Src:             'src/main.c:412,9'
          Dst:             pr_session_set_idle
        - Src:             'src/main.c:415,7'
          Dst:             destroy_pool
        - Src:             'src/main.c:420,11'
          Dst:             pr_stash_get_symbol2
        - Src:             'src/main.c:434,9'
          Dst:             strchr
        - Src:             'src/main.c:440,16'
          Dst:             pstrdup
        - Src:             'src/main.c:448,5'
          Dst:             pr_event_generate
        - Src:             'src/main.c:450,5'
          Dst:             pr_response_add_err
    - functionName:    memchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    make_ftp_cmd
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 805
      functionLinenumberEnd: 926
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          295
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - __ctype_b_loc
        - __errno_location
        - make_array
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
        - pr_signals_handle
        - pr_str_get_word
        - pr_table_nalloc
        - pr_trace_msg
        - pstrdup
        - push_array
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:817,7'
          Dst:             __ctype_b_loc
        - Src:             'src/main.c:818,5'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:820,5'
          Dst:             __errno_location
        - Src:             'src/main.c:841,9'
          Dst:             pr_str_get_word
        - Src:             'src/main.c:844,5'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:845,5'
          Dst:             __errno_location
        - Src:             'src/main.c:854,13'
          Dst:             make_sub_pool
        - Src:             'src/main.c:855,3'
          Dst:             pr_pool_tag
        - Src:             'src/main.c:856,9'
          Dst:             pcalloc
        - Src:             'src/main.c:862,10'
          Dst:             make_array
        - Src:             'src/main.c:864,35'
          Dst:             pstrdup
        - Src:             'src/main.c:864,15'
          Dst:             push_array
        - Src:             'src/main.c:877,22'
          Dst:             strlen
        - Src:             'src/main.c:878,9'
          Dst:             pcalloc
        - Src:             'src/main.c:882,5'
          Dst:             pr_signals_handle
        - Src:             'src/main.c:901,15'
          Dst:             pstrdup
        - Src:             'src/main.c:910,17'
          Dst:             pr_str_get_word
        - Src:             'src/main.c:911,5'
          Dst:             pr_signals_handle
        - Src:             'src/main.c:912,37'
          Dst:             pstrdup
        - Src:             'src/main.c:912,17'
          Dst:             push_array
        - Src:             'src/main.c:916,15'
          Dst:             push_array
        - Src:             'src/main.c:918,3'
          Dst:             pr_pool_tag
        - Src:             'src/main.c:923,16'
          Dst:             pr_table_nalloc
    - 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:    63
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_max_cmd_sz
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - get_param_ptr
        - pr_log_debug
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:464,11'
          Dst:             get_param_ptr
        - Src:             'src/main.c:469,5'
          Dst:             pr_log_debug
    - functionName:    pr_cmd_read
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 477
      functionLinenumberEnd: 596
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         63
      ICount:          366
      EdgeCount:       84
      CyclomaticComplexity: 23
      functionsReached:
        - __errno_location
        - get_max_cmd_sz
        - make_ftp_cmd
        - pcalloc
        - pr_cmd_is_http
        - pr_cmd_is_smtp
        - pr_cmd_is_ssh2
        - pr_log_debug
        - pr_netio_telnet_gets2
        - pr_signals_handle
        - pr_timer_usleep
        - pr_trace_msg
        - strncasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:485,5'
          Dst:             __errno_location
        - Src:             'src/main.c:490,17'
          Dst:             get_max_cmd_sz
        - Src:             'src/main.c:494,15'
          Dst:             pcalloc
        - Src:             'src/main.c:498,5'
          Dst:             pr_signals_handle
        - Src:             'src/main.c:502,18'
          Dst:             pr_netio_telnet_gets2
        - Src:             'src/main.c:505,11'
          Dst:             __errno_location
        - Src:             'src/main.c:510,9'
          Dst:             pr_timer_usleep
        - Src:             'src/main.c:520,9'
          Dst:             pr_trace_msg
        - Src:             'src/main.c:534,5'
          Dst:             pr_log_debug
        - Src:             'src/main.c:567,9'
          Dst:             strncasecmp
        - Src:             'src/main.c:571,11'
          Dst:             make_ftp_cmd
        - Src:             'src/main.c:575,11'
          Dst:             pr_cmd_is_http
        - Src:             'src/main.c:579,18'
          Dst:             pr_cmd_is_ssh2
        - Src:             'src/main.c:583,18'
          Dst:             pr_cmd_is_smtp
    - functionName:    strncasecmp
      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:    36
      BranchProfiles:  []
      Callsites:       []
    - functionName:    shutdown_end_session
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          230
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - check_shutmsg
        - find_config
        - get_param_ptr
        - pr_log_pri
        - pr_netaddr_get_ipstr
        - pr_response_send_async
        - pr_session_disconnect
        - pr_signals_handle_disconnect
        - pr_strtime3
        - pr_table_get
        - pstrdup
        - signal
        - sreplace
        - strerror
        - time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:155,7'
          Dst:             check_shutmsg
        - Src:             'src/main.c:161,36'
          Dst:             get_param_ptr
        - Src:             'src/main.c:165,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:168,9'
          Dst:             find_config
        - Src:             'src/main.c:177,25'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'src/main.c:181,5'
          Dst:             time
        - Src:             'src/main.c:183,14'
          Dst:             pr_table_get
        - Src:             'src/main.c:190,37'
          Dst:             pr_strtime3
        - Src:             'src/main.c:190,26'
          Dst:             pstrdup
        - Src:             'src/main.c:191,37'
          Dst:             pr_strtime3
        - Src:             'src/main.c:191,26'
          Dst:             pstrdup
        - Src:             'src/main.c:192,37'
          Dst:             pr_strtime3
        - Src:             'src/main.c:192,26'
          Dst:             pstrdup
        - Src:             'src/main.c:197,23'
          Dst:             pr_strtime3
        - Src:             'src/main.c:197,12'
          Dst:             pstrdup
        - Src:             'src/main.c:189,11'
          Dst:             sreplace
        - Src:             'src/main.c:202,5'
          Dst:             pr_response_send_async
        - Src:             'src/main.c:204,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:205,5'
          Dst:             pr_session_disconnect
        - Src:             'src/main.c:208,7'
          Dst:             signal
        - Src:             'src/main.c:208,7'
          Dst:             pr_signals_handle_disconnect
        - Src:             'src/main.c:211,16'
          Dst:             __errno_location
        - Src:             'src/main.c:211,7'
          Dst:             strerror
        - Src:             'src/main.c:209,5'
          Dst:             pr_log_pri
    - functionName:    session_exit
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          62
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - pr_delete_scoreboard
        - pr_log_pri
        - pr_pidfile_remove
        - pr_privs_relinquish
        - pr_privs_root
        - pr_session_end
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:134,3'
          Dst:             pr_log_pri
        - Src:             'src/main.c:138,5'
          Dst:             pr_log_pri
        - Src:             'src/main.c:141,5'
          Dst:             pr_privs_root
        - Src:             'src/main.c:142,5'
          Dst:             pr_delete_scoreboard
        - Src:             'src/main.c:144,7'
          Dst:             pr_pidfile_remove
        - Src:             'src/main.c:146,5'
          Dst:             pr_privs_relinquish
        - Src:             'src/main.c:149,3'
          Dst:             pr_session_end
    - functionName:    cmd_loop
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 928
      functionLinenumberEnd: 982
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          109
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - destroy_pool
        - pr_cmd_dispatch
        - pr_cmd_read
        - pr_data_get_timeout
        - pr_event_generate
        - pr_inet_clear
        - pr_log_pri
        - pr_response_send
        - pr_session_disconnect
        - pr_signals_handle
        - pr_timer_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/main.c:934,5'
          Dst:             pr_signals_handle
        - Src:             'src/main.c:936,11'
          Dst:             pr_cmd_read
        - Src:             'src/main.c:945,7'
          Dst:             pr_session_disconnect
        - Src:             'src/main.c:952,9'
          Dst:             pr_data_get_timeout
        - Src:             'src/main.c:953,7'
          Dst:             pr_timer_reset
        - Src:             'src/main.c:962,9'
          Dst:             pr_log_pri
        - Src:             'src/main.c:965,9'
          Dst:             pr_event_generate
        - Src:             'src/main.c:966,9'
          Dst:             pr_session_disconnect
        - Src:             'src/main.c:970,7'
          Dst:             pr_cmd_dispatch
        - Src:             'src/main.c:971,7'
          Dst:             destroy_pool
        - Src:             'src/main.c:977,7'
          Dst:             pr_event_generate
        - Src:             'src/main.c:978,7'
          Dst:             pr_response_send
        - Src:             'src/main.c:982,5'
          Dst:             pr_inet_clear
    - functionName:    pr_cmd_set_handler
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          20
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_auth_check
      functionSourceFile: '/src/proftpd/src/main.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_inet
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2008
      functionLinenumberEnd: 2052
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          84
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - destroy_pool
        - endprotoent
        - getprotobyname
        - make_sub_pool
        - pr_pool_tag
        - setprotoent
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:2012,3'
          Dst:             setprotoent
        - Src:             'inet.c:2024,8'
          Dst:             getprotobyname
        - Src:             'inet.c:2031,8'
          Dst:             getprotobyname
        - Src:             'inet.c:2037,8'
          Dst:             getprotobyname
        - Src:             'inet.c:2043,3'
          Dst:             endprotoent
        - Src:             'inet.c:2047,5'
          Dst:             destroy_pool
        - Src:             'inet.c:2050,15'
          Dst:             make_sub_pool
        - Src:             'inet.c:2051,3'
          Dst:             pr_pool_tag
    - functionName:    setprotoent
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getprotobyname
      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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    endprotoent
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_inet_generate_socket_event
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1986
      functionLinenumberEnd: 2006
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          76
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - destroy_pool
        - make_sub_pool
        - pcalloc
        - pr_event_generate
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:1993,5'
          Dst:             __errno_location
        - Src:             'inet.c:1997,7'
          Dst:             make_sub_pool
        - Src:             'inet.c:1998,8'
          Dst:             pcalloc
        - Src:             'inet.c:2002,3'
          Dst:             pr_event_generate
        - Src:             'inet.c:2003,3'
          Dst:             destroy_pool
    - functionName:    pr_inet_openrw
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1845
      functionLinenumberEnd: 1983
      functionDepth:   0
      returnType:      'N/A'
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          382
      EdgeCount:       81
      CyclomaticComplexity: 23
      functionsReached:
        - __errno_location
        - close
        - dup
        - dup2
        - fflush
        - pr_inet_copy_conn
        - pr_inet_get_conn_info
        - pr_inet_set_block
        - pr_inet_set_socket_opts
        - pr_netaddr_dup
        - pr_netaddr_get_dnsstr
        - pr_netaddr_get_ipstr
        - pr_netio_open
        - pr_trace_msg
        - strerror
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:1849,9'
          Dst:             pr_inet_copy_conn
        - Src:             'inet.c:1851,18'
          Dst:             __errno_location
        - Src:             'inet.c:1854,39'
          Dst:             strerror
        - Src:             'inet.c:1853,5'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1856,5'
          Dst:             __errno_location
        - Src:             'inet.c:1867,7'
          Dst:             pr_inet_get_conn_info
        - Src:             'inet.c:1868,7'
          Dst:             __errno_location
        - Src:             'inet.c:1869,18'
          Dst:             __errno_location
        - Src:             'inet.c:1872,61'
          Dst:             strerror
        - Src:             'inet.c:1871,5'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1874,5'
          Dst:             __errno_location
        - Src:             'inet.c:1880,26'
          Dst:             pr_netaddr_dup
        - Src:             'inet.c:1886,24'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'inet.c:1890,24'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:1892,20'
          Dst:             __errno_location
        - Src:             'inet.c:1899,52'
          Dst:             strerror
        - Src:             'inet.c:1898,7'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1901,7'
          Dst:             __errno_location
        - Src:             'inet.c:1913,7'
          Dst:             dup2
        - Src:             'inet.c:1922,13'
          Dst:             dup
        - Src:             'inet.c:1929,9'
          Dst:             fflush
        - Src:             'inet.c:1932,7'
          Dst:             dup2
        - Src:             'inet.c:1941,13'
          Dst:             dup
        - Src:             'inet.c:1949,12'
          Dst:             close
        - Src:             'inet.c:1955,17'
          Dst:             pr_netio_open
        - Src:             'inet.c:1956,18'
          Dst:             pr_netio_open
        - Src:             'inet.c:1959,3'
          Dst:             pr_inet_set_socket_opts
        - Src:             'inet.c:1960,10'
          Dst:             pr_inet_set_block
    - functionName:    pr_inet_copy_conn
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          191
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - conn_cleanup_cb
        - destroy_pool
        - make_sub_pool
        - pcalloc
        - pr_netaddr_alloc
        - pr_netaddr_get_family
        - pr_netaddr_get_sockaddr
        - pr_netaddr_set_family
        - pr_netaddr_set_sockaddr
        - pr_pool_tag
        - pstrdup
        - register_cleanup2
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:139,5'
          Dst:             __errno_location
        - Src:             'inet.c:143,14'
          Dst:             make_sub_pool
        - Src:             'inet.c:144,3'
          Dst:             pr_pool_tag
        - Src:             'inet.c:146,20'
          Dst:             pcalloc
        - Src:             'inet.c:155,18'
          Dst:             pr_netaddr_alloc
        - Src:             'inet.c:158,9'
          Dst:             pr_netaddr_get_family
        - Src:             'inet.c:157,9'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:159,7'
          Dst:             destroy_pool
        - Src:             'inet.c:163,41'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:163,5'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'inet.c:170,19'
          Dst:             pr_netaddr_alloc
        - Src:             'inet.c:173,9'
          Dst:             pr_netaddr_get_family
        - Src:             'inet.c:172,9'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:174,7'
          Dst:             destroy_pool
        - Src:             'inet.c:179,7'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:178,5'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'inet.c:184,24'
          Dst:             pstrdup
        - Src:             'inet.c:189,3'
          Dst:             register_cleanup2
        - Src:             'inet.c:189,3'
          Dst:             conn_cleanup_cb
    - functionName:    pr_inet_get_conn_info
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1722
      functionLinenumberEnd: 1827
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          237
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - getpeername
        - getsockname
        - ntohs
        - pr_netaddr_alloc
        - pr_netaddr_clear
        - pr_netaddr_get_port
        - pr_netaddr_get_sockaddr
        - pr_netaddr_get_sockaddr_len
        - pr_netaddr_is_v4mappedv6
        - pr_netaddr_set_family
        - pr_netaddr_set_sockaddr
        - pr_netaddr_use_ipv6
        - pr_netaddr_v6tov4
        - pr_trace_msg
        - strerror
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:1727,5'
          Dst:             __errno_location
        - Src:             'inet.c:1732,5'
          Dst:             __errno_location
        - Src:             'inet.c:1737,3'
          Dst:             pr_netaddr_clear
        - Src:             'inet.c:1740,7'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'inet.c:1741,5'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:1744,5'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:1749,11'
          Dst:             pr_netaddr_get_sockaddr_len
        - Src:             'inet.c:1751,23'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:1751,7'
          Dst:             getsockname
        - Src:             'inet.c:1758,20'
          Dst:             pr_netaddr_alloc
        - Src:             'inet.c:1766,39'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:1766,5'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:1767,41'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:1767,5'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'inet.c:1768,27'
          Dst:             pr_netaddr_get_port
        - Src:             'inet.c:1768,21'
          Dst:             ntohs
        - Src:             'inet.c:1775,18'
          Dst:             __errno_location
        - Src:             'inet.c:1778,48'
          Dst:             strerror
        - Src:             'inet.c:1777,5'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1780,5'
          Dst:             __errno_location
        - Src:             'inet.c:1786,7'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'inet.c:1787,5'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:1790,5'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:1795,11'
          Dst:             pr_netaddr_get_sockaddr_len
        - Src:             'inet.c:1797,23'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:1797,7'
          Dst:             getpeername
        - Src:             'inet.c:1799,9'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'inet.c:1800,24'
          Dst:             pr_netaddr_v6tov4
        - Src:             'inet.c:1805,21'
          Dst:             pr_netaddr_alloc
        - Src:             'inet.c:1808,9'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:1807,7'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:1809,44'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:1809,7'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'inet.c:1814,28'
          Dst:             pr_netaddr_get_port
        - Src:             'inet.c:1814,22'
          Dst:             ntohs
        - Src:             'inet.c:1817,18'
          Dst:             __errno_location
        - Src:             'inet.c:1820,48'
          Dst:             strerror
        - Src:             'inet.c:1819,5'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1822,5'
          Dst:             __errno_location
    - functionName:    dup2
      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:    pr_inet_set_socket_opts
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1167
      functionLinenumberEnd: 1168
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_inet_set_socket_opts2
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:1168,10'
          Dst:             pr_inet_set_socket_opts2
    - functionName:    pr_inet_set_block
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1305
      functionLinenumberEnd: 1351
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          158
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - fcntl
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:1312,5'
          Dst:             __errno_location
        - Src:             'inet.c:1316,3'
          Dst:             __errno_location
        - Src:             'inet.c:1320,13'
          Dst:             fcntl
        - Src:             'inet.c:1322,13'
          Dst:             fcntl
        - Src:             'inet.c:1330,15'
          Dst:             fcntl
        - Src:             'inet.c:1332,15'
          Dst:             fcntl
        - Src:             'inet.c:1340,15'
          Dst:             fcntl
        - Src:             'inet.c:1342,15'
          Dst:             fcntl
    - functionName:    pr_inet_set_socket_opts2
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1066
      functionLinenumberEnd: 1164
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          269
      EdgeCount:       63
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - getsockopt
        - pr_inet_set_proto_keepalive
        - pr_inet_set_reuse_port
        - pr_log_pri
        - pr_trace_msg
        - setsockopt
        - strerror
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:1069,5'
          Dst:             __errno_location
        - Src:             'inet.c:1084,12'
          Dst:             pr_inet_set_proto_keepalive
        - Src:             'inet.c:1088,11'
          Dst:             getsockopt
        - Src:             'inet.c:1091,15'
          Dst:             setsockopt
        - Src:             'inet.c:1094,24'
          Dst:             __errno_location
        - Src:             'inet.c:1094,15'
          Dst:             strerror
        - Src:             'inet.c:1093,13'
          Dst:             pr_log_pri
        - Src:             'inet.c:1097,13'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1102,11'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1111,20'
          Dst:             __errno_location
        - Src:             'inet.c:1111,11'
          Dst:             strerror
        - Src:             'inet.c:1109,9'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1119,11'
          Dst:             getsockopt
        - Src:             'inet.c:1122,15'
          Dst:             setsockopt
        - Src:             'inet.c:1125,24'
          Dst:             __errno_location
        - Src:             'inet.c:1125,15'
          Dst:             strerror
        - Src:             'inet.c:1124,13'
          Dst:             pr_log_pri
        - Src:             'inet.c:1128,13'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1133,11'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1142,20'
          Dst:             __errno_location
        - Src:             'inet.c:1142,11'
          Dst:             strerror
        - Src:             'inet.c:1140,9'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1156,11'
          Dst:             pr_inet_set_reuse_port
        - Src:             'inet.c:1157,9'
          Dst:             pr_trace_msg
    - functionName:    pr_inet_set_proto_keepalive
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 953
      functionLinenumberEnd: 1062
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          237
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - pr_log_pri
        - pr_trace_msg
        - setsockopt
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:959,5'
          Dst:             __errno_location
        - Src:             'inet.c:964,5'
          Dst:             __errno_location
        - Src:             'inet.c:970,3'
          Dst:             pr_trace_msg
        - Src:             'inet.c:972,7'
          Dst:             setsockopt
        - Src:             'inet.c:975,16'
          Dst:             __errno_location
        - Src:             'inet.c:975,7'
          Dst:             strerror
        - Src:             'inet.c:974,5'
          Dst:             pr_log_pri
        - Src:             'inet.c:986,3'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1007,9'
          Dst:             setsockopt
        - Src:             'inet.c:1011,17'
          Dst:             __errno_location
        - Src:             'inet.c:1011,8'
          Dst:             strerror
        - Src:             'inet.c:1009,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:1014,7'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1023,9'
          Dst:             setsockopt
        - Src:             'inet.c:1027,18'
          Dst:             __errno_location
        - Src:             'inet.c:1027,9'
          Dst:             strerror
        - Src:             'inet.c:1025,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:1030,7'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1043,9'
          Dst:             setsockopt
        - Src:             'inet.c:1047,18'
          Dst:             __errno_location
        - Src:             'inet.c:1047,9'
          Dst:             strerror
        - Src:             'inet.c:1045,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:1050,7'
          Dst:             pr_trace_msg
    - functionName:    getsockopt
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    setsockopt
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    23
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_inet_set_reuse_port
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1171
      functionLinenumberEnd: 1194
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          74
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_log_pri
        - setsockopt
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:1177,5'
          Dst:             __errno_location
        - Src:             'inet.c:1182,9'
          Dst:             setsockopt
        - Src:             'inet.c:1187,16'
          Dst:             __errno_location
        - Src:             'inet.c:1187,7'
          Dst:             strerror
        - Src:             'inet.c:1185,5'
          Dst:             pr_log_pri
    - functionName:    getsockname
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ntohs
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    conn_cleanup_cb
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          131
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - close
        - pr_netio_close
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:101,5'
          Dst:             pr_netio_close
        - Src:             'inet.c:106,5'
          Dst:             pr_netio_close
        - Src:             'inet.c:115,12'
          Dst:             close
        - Src:             'inet.c:120,12'
          Dst:             close
        - Src:             'inet.c:125,12'
          Dst:             close
    - functionName:    pr_inet_accept
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1594
      functionLinenumberEnd: 1720
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          287
      EdgeCount:       56
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - accept
        - close
        - find_config
        - getpeername
        - pr_class_find
        - pr_class_satisfied
        - pr_inet_openrw
        - pr_log_debug
        - pr_log_pri
        - pr_netaddr_clear
        - pr_netaddr_cmp
        - pr_netaddr_get_family
        - pr_netaddr_get_ipstr
        - pr_netaddr_get_sockaddr
        - pr_netaddr_get_sockaddr_len
        - pr_netaddr_set_family
        - pr_signals_handle
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:1603,5'
          Dst:             __errno_location
        - Src:             'inet.c:1608,3'
          Dst:             pr_netaddr_clear
        - Src:             'inet.c:1610,30'
          Dst:             pr_netaddr_get_family
        - Src:             'inet.c:1610,3'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:1611,11'
          Dst:             pr_netaddr_get_sockaddr_len
        - Src:             'inet.c:1613,31'
          Dst:             find_config
        - Src:             'inet.c:1623,5'
          Dst:             pr_signals_handle
        - Src:             'inet.c:1625,31'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:1625,10'
          Dst:             accept
        - Src:             'inet.c:1627,11'
          Dst:             __errno_location
        - Src:             'inet.c:1632,19'
          Dst:             __errno_location
        - Src:             'inet.c:1646,29'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:1646,13'
          Dst:             getpeername
        - Src:             'inet.c:1651,66'
          Dst:             __errno_location
        - Src:             'inet.c:1651,57'
          Dst:             strerror
        - Src:             'inet.c:1650,11'
          Dst:             pr_log_pri
        - Src:             'inet.c:1652,18'
          Dst:             close
        - Src:             'inet.c:1657,15'
          Dst:             pr_netaddr_cmp
        - Src:             'inet.c:1660,34'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:1661,15'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:1658,13'
          Dst:             pr_log_pri
        - Src:             'inet.c:1663,20'
          Dst:             close
        - Src:             'inet.c:1678,15'
          Dst:             pr_netaddr_cmp
        - Src:             'inet.c:1681,19'
          Dst:             pr_class_find
        - Src:             'inet.c:1683,19'
          Dst:             pr_class_satisfied
        - Src:             'inet.c:1685,47'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:1684,17'
          Dst:             pr_log_debug
        - Src:             'inet.c:1690,19'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:1687,17'
          Dst:             pr_log_pri
        - Src:             'inet.c:1692,24'
          Dst:             close
        - Src:             'inet.c:1699,15'
          Dst:             pr_log_debug
        - Src:             'inet.c:1706,15'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:1704,13'
          Dst:             pr_log_debug
        - Src:             'inet.c:1713,11'
          Dst:             pr_inet_openrw
    - functionName:    accept
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_inet_accept_nowait
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1531
      functionLinenumberEnd: 1588
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          160
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - accept
        - pr_inet_set_block
        - pr_inet_set_nonblock
        - pr_signals_handle
        - pr_trace_msg
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:1535,5'
          Dst:             __errno_location
        - Src:             'inet.c:1540,9'
          Dst:             pr_inet_set_nonblock
        - Src:             'inet.c:1541,11'
          Dst:             __errno_location
        - Src:             'inet.c:1543,63'
          Dst:             __errno_location
        - Src:             'inet.c:1543,54'
          Dst:             strerror
        - Src:             'inet.c:1542,9'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1555,5'
          Dst:             pr_signals_handle
        - Src:             'inet.c:1556,10'
          Dst:             accept
        - Src:             'inet.c:1559,11'
          Dst:             __errno_location
        - Src:             'inet.c:1563,11'
          Dst:             __errno_location
        - Src:             'inet.c:1565,21'
          Dst:             __errno_location
        - Src:             'inet.c:1580,7'
          Dst:             pr_inet_set_block
        - Src:             'inet.c:1581,9'
          Dst:             __errno_location
        - Src:             'inet.c:1583,58'
          Dst:             __errno_location
        - Src:             'inet.c:1583,49'
          Dst:             strerror
        - Src:             'inet.c:1582,7'
          Dst:             pr_trace_msg
    - functionName:    pr_inet_set_nonblock
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1257
      functionLinenumberEnd: 1303
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          158
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - fcntl
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:1264,5'
          Dst:             __errno_location
        - Src:             'inet.c:1268,3'
          Dst:             __errno_location
        - Src:             'inet.c:1272,13'
          Dst:             fcntl
        - Src:             'inet.c:1274,13'
          Dst:             fcntl
        - Src:             'inet.c:1282,15'
          Dst:             fcntl
        - Src:             'inet.c:1284,15'
          Dst:             fcntl
        - Src:             'inet.c:1292,15'
          Dst:             fcntl
        - Src:             'inet.c:1294,15'
          Dst:             fcntl
    - functionName:    pr_inet_connect_nowait
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1468
      functionLinenumberEnd: 1523
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          180
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - connect
        - htons
        - pr_inet_get_conn_info
        - pr_inet_set_block
        - pr_inet_set_nonblock
        - pr_netaddr_get_sockaddr
        - pr_netaddr_get_sockaddr_len
        - pr_netaddr_set_port
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:1473,5'
          Dst:             __errno_location
        - Src:             'inet.c:1478,7'
          Dst:             pr_inet_set_nonblock
        - Src:             'inet.c:1480,17'
          Dst:             __errno_location
        - Src:             'inet.c:1489,35'
          Dst:             htons
        - Src:             'inet.c:1489,3'
          Dst:             pr_netaddr_set_port
        - Src:             'inet.c:1491,29'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:1492,7'
          Dst:             pr_netaddr_get_sockaddr_len
        - Src:             'inet.c:1491,7'
          Dst:             connect
        - Src:             'inet.c:1493,9'
          Dst:             __errno_location
        - Src:             'inet.c:1494,9'
          Dst:             __errno_location
        - Src:             'inet.c:1496,19'
          Dst:             __errno_location
        - Src:             'inet.c:1498,14'
          Dst:             pr_inet_set_block
        - Src:             'inet.c:1500,7'
          Dst:             __errno_location
        - Src:             'inet.c:1509,7'
          Dst:             pr_inet_get_conn_info
        - Src:             'inet.c:1510,17'
          Dst:             __errno_location
        - Src:             'inet.c:1512,12'
          Dst:             pr_inet_set_block
        - Src:             'inet.c:1513,5'
          Dst:             __errno_location
        - Src:             'inet.c:1517,7'
          Dst:             pr_inet_set_block
        - Src:             'inet.c:1518,17'
          Dst:             __errno_location
    - functionName:    htons
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    connect
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_inet_connect
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1410
      functionLinenumberEnd: 1461
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          152
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - connect
        - htons
        - pr_inet_get_conn_info
        - pr_inet_set_block
        - pr_netaddr_get_sockaddr
        - pr_netaddr_get_sockaddr_len
        - pr_netaddr_set_port
        - pr_signals_handle
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:1416,5'
          Dst:             __errno_location
        - Src:             'inet.c:1421,7'
          Dst:             pr_inet_set_block
        - Src:             'inet.c:1423,17'
          Dst:             __errno_location
        - Src:             'inet.c:1432,35'
          Dst:             htons
        - Src:             'inet.c:1432,3'
          Dst:             pr_netaddr_set_port
        - Src:             'inet.c:1435,33'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:1436,7'
          Dst:             pr_netaddr_get_sockaddr_len
        - Src:             'inet.c:1435,11'
          Dst:             connect
        - Src:             'inet.c:1438,9'
          Dst:             __errno_location
        - Src:             'inet.c:1439,7'
          Dst:             pr_signals_handle
        - Src:             'inet.c:1448,17'
          Dst:             __errno_location
        - Src:             'inet.c:1454,7'
          Dst:             pr_inet_get_conn_info
        - Src:             'inet.c:1456,17'
          Dst:             __errno_location
    - functionName:    pr_inet_resetlisten
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1395
      functionLinenumberEnd: 1408
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_inet_set_block
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:1397,5'
          Dst:             __errno_location
        - Src:             'inet.c:1402,7'
          Dst:             pr_inet_set_block
        - Src:             'inet.c:1403,17'
          Dst:             __errno_location
    - functionName:    pr_inet_listen
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1354
      functionLinenumberEnd: 1390
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          103
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - listen
        - pr_log_pri
        - pr_netaddr_get_ipstr
        - pr_session_disconnect
        - pr_signals_handle
        - strerror
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:1356,5'
          Dst:             __errno_location
        - Src:             'inet.c:1361,5'
          Dst:             __errno_location
        - Src:             'inet.c:1366,9'
          Dst:             listen
        - Src:             'inet.c:1367,20'
          Dst:             __errno_location
        - Src:             'inet.c:1370,9'
          Dst:             pr_signals_handle
        - Src:             'inet.c:1375,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:1375,61'
          Dst:             strerror
        - Src:             'inet.c:1374,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:1378,9'
          Dst:             pr_session_disconnect
        - Src:             'inet.c:1381,7'
          Dst:             __errno_location
    - functionName:    listen
      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:    set_socket_owner
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1209
      functionLinenumberEnd: 1220
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          61
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - fcntl
        - getpid
        - pr_trace_msg
        - strerror
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:1213,39'
          Dst:             getpid
        - Src:             'inet.c:1214,9'
          Dst:             fcntl
        - Src:             'inet.c:1217,22'
          Dst:             __errno_location
        - Src:             'inet.c:1217,13'
          Dst:             strerror
        - Src:             'inet.c:1215,7'
          Dst:             pr_trace_msg
    - functionName:    set_oobinline
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1197
      functionLinenumberEnd: 1205
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_log_pri
        - setsockopt
        - strerror
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:1200,9'
          Dst:             setsockopt
        - Src:             'inet.c:1202,18'
          Dst:             __errno_location
        - Src:             'inet.c:1202,9'
          Dst:             strerror
        - Src:             'inet.c:1201,7'
          Dst:             pr_log_pri
    - functionName:    pr_inet_set_async
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1225
      functionLinenumberEnd: 1253
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          79
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_trace_msg
        - set_oobinline
        - set_socket_owner
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:1228,5'
          Dst:             __errno_location
        - Src:             'inet.c:1233,3'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1235,3'
          Dst:             set_oobinline
        - Src:             'inet.c:1237,3'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1239,3'
          Dst:             set_oobinline
        - Src:             'inet.c:1241,3'
          Dst:             pr_trace_msg
        - Src:             'inet.c:1243,3'
          Dst:             set_oobinline
        - Src:             'inet.c:1247,3'
          Dst:             set_socket_owner
        - Src:             'inet.c:1248,3'
          Dst:             set_socket_owner
        - Src:             'inet.c:1249,3'
          Dst:             set_socket_owner
    - functionName:    pr_inet_set_proto_opts
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 830
      functionLinenumberEnd: 950
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         72
      ICount:          369
      EdgeCount:       96
      CyclomaticComplexity: 26
      functionsReached:
        - __errno_location
        - pr_inet_set_proto_cork
        - pr_log_pri
        - pr_netaddr_get_family
        - pr_netaddr_use_ipv6
        - setsockopt
        - strerror
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:855,5'
          Dst:             __errno_location
        - Src:             'inet.c:861,9'
          Dst:             setsockopt
        - Src:             'inet.c:863,11'
          Dst:             __errno_location
        - Src:             'inet.c:866,20'
          Dst:             __errno_location
        - Src:             'inet.c:866,11'
          Dst:             strerror
        - Src:             'inet.c:864,9'
          Dst:             pr_log_pri
        - Src:             'inet.c:872,9'
          Dst:             setsockopt
        - Src:             'inet.c:874,11'
          Dst:             __errno_location
        - Src:             'inet.c:877,20'
          Dst:             __errno_location
        - Src:             'inet.c:877,11'
          Dst:             strerror
        - Src:             'inet.c:875,9'
          Dst:             pr_log_pri
        - Src:             'inet.c:883,9'
          Dst:             setsockopt
        - Src:             'inet.c:885,11'
          Dst:             __errno_location
        - Src:             'inet.c:888,43'
          Dst:             __errno_location
        - Src:             'inet.c:888,34'
          Dst:             strerror
        - Src:             'inet.c:886,9'
          Dst:             pr_log_pri
        - Src:             'inet.c:897,9'
          Dst:             setsockopt
        - Src:             'inet.c:900,23'
          Dst:             __errno_location
        - Src:             'inet.c:900,14'
          Dst:             strerror
        - Src:             'inet.c:899,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:907,7'
          Dst:             pr_netaddr_get_family
        - Src:             'inet.c:909,11'
          Dst:             setsockopt
        - Src:             'inet.c:912,20'
          Dst:             __errno_location
        - Src:             'inet.c:912,11'
          Dst:             strerror
        - Src:             'inet.c:911,9'
          Dst:             pr_log_pri
        - Src:             'inet.c:919,7'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'inet.c:921,9'
          Dst:             pr_netaddr_get_family
        - Src:             'inet.c:926,15'
          Dst:             setsockopt
        - Src:             'inet.c:929,16'
          Dst:             __errno_location
        - Src:             'inet.c:931,16'
          Dst:             __errno_location
        - Src:             'inet.c:935,22'
          Dst:             __errno_location
        - Src:             'inet.c:935,13'
          Dst:             strerror
        - Src:             'inet.c:934,11'
          Dst:             pr_log_pri
        - Src:             'inet.c:943,9'
          Dst:             pr_inet_set_proto_cork
        - Src:             'inet.c:945,18'
          Dst:             __errno_location
        - Src:             'inet.c:945,9'
          Dst:             strerror
        - Src:             'inet.c:944,7'
          Dst:             pr_log_pri
    - functionName:    pr_inet_set_proto_cork
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 759
      functionLinenumberEnd: 786
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - setsockopt
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:780,9'
          Dst:             setsockopt
    - functionName:    pr_inet_set_proto_nodelay
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 789
      functionLinenumberEnd: 827
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          136
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - pr_log_pri
        - setsockopt
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:800,5'
          Dst:             __errno_location
        - Src:             'inet.c:805,11'
          Dst:             setsockopt
        - Src:             'inet.c:808,9'
          Dst:             __errno_location
        - Src:             'inet.c:810,37'
          Dst:             __errno_location
        - Src:             'inet.c:810,28'
          Dst:             strerror
        - Src:             'inet.c:809,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:815,11'
          Dst:             setsockopt
        - Src:             'inet.c:818,9'
          Dst:             __errno_location
        - Src:             'inet.c:819,9'
          Dst:             __errno_location
        - Src:             'inet.c:821,37'
          Dst:             __errno_location
        - Src:             'inet.c:821,28'
          Dst:             strerror
        - Src:             'inet.c:820,7'
          Dst:             pr_log_pri
    - functionName:    pr_inet_lingering_abort
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 731
      functionLinenumberEnd: 757
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          76
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - destroy_pool
        - pr_inet_set_block
        - pr_netio_close
        - pr_netio_lingering_abort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:736,10'
          Dst:             pr_inet_set_block
        - Src:             'inet.c:739,5'
          Dst:             pr_netio_lingering_abort
        - Src:             'inet.c:750,5'
          Dst:             pr_netio_close
        - Src:             'inet.c:756,3'
          Dst:             destroy_pool
    - functionName:    pr_inet_lingering_close
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 706
      functionLinenumberEnd: 728
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          76
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - destroy_pool
        - pr_inet_set_block
        - pr_netio_close
        - pr_netio_lingering_close
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:711,10'
          Dst:             pr_inet_set_block
        - Src:             'inet.c:714,5'
          Dst:             pr_netio_lingering_close
        - Src:             'inet.c:721,5'
          Dst:             pr_netio_close
        - Src:             'inet.c:727,3'
          Dst:             destroy_pool
    - functionName:    pr_inet_close
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 688
      functionLinenumberEnd: 703
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          39
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - destroy_pool
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:701,5'
          Dst:             destroy_pool
    - functionName:    pr_inet_create_conn_portrange
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 617
      functionLinenumberEnd: 686
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          276
      EdgeCount:       56
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - init_conn
        - make_sub_pool
        - pcalloc
        - pr_netaddr_get_ipstr
        - pr_pool_tag
        - pr_signals_handle
        - pr_trace_msg
        - rand
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:625,5'
          Dst:             __errno_location
        - Src:             'inet.c:630,5'
          Dst:             __errno_location
        - Src:             'inet.c:636,17'
          Dst:             make_sub_pool
        - Src:             'inet.c:637,5'
          Dst:             pr_pool_tag
        - Src:             'inet.c:641,19'
          Dst:             pcalloc
        - Src:             'inet.c:642,19'
          Dst:             pcalloc
        - Src:             'inet.c:651,7'
          Dst:             pr_signals_handle
        - Src:             'inet.c:658,35'
          Dst:             rand
        - Src:             'inet.c:673,11'
          Dst:             init_conn
        - Src:             'inet.c:674,16'
          Dst:             __errno_location
        - Src:             'inet.c:678,31'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:679,21'
          Dst:             strerror
        - Src:             'inet.c:677,9'
          Dst:             pr_trace_msg
        - Src:             'inet.c:684,3'
          Dst:             __errno_location
    - functionName:    rand
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_conn
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 587
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         144
      ICount:          833
      EdgeCount:       195
      CyclomaticComplexity: 53
      functionsReached:
        - __errno_location
        - bind
        - close
        - conn_cleanup_cb
        - destroy_pool
        - fcntl
        - getsockname
        - getsockopt
        - htons
        - make_sub_pool
        - ntohs
        - pcalloc
        - pr_inet_set_reuse_port
        - pr_log_debug
        - pr_log_pri
        - pr_netaddr_alloc
        - pr_netaddr_clear
        - pr_netaddr_get_family
        - pr_netaddr_get_ipstr
        - pr_netaddr_get_port
        - pr_netaddr_get_sockaddr
        - pr_netaddr_get_sockaddr_len
        - pr_netaddr_set_family
        - pr_netaddr_set_port
        - pr_netaddr_set_sockaddr
        - pr_netaddr_set_sockaddr_any
        - pr_netaddr_use_ipv6
        - pr_pool_tag
        - pr_privs_relinquish
        - pr_privs_root
        - pr_signals_block
        - pr_signals_handle
        - pr_signals_unblock
        - pr_timer_sleep
        - pr_trace_msg
        - register_cleanup2
        - setsockopt
        - socket
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:205,5'
          Dst:             __errno_location
        - Src:             'inet.c:210,17'
          Dst:             make_sub_pool
        - Src:             'inet.c:211,5'
          Dst:             pr_pool_tag
        - Src:             'inet.c:215,3'
          Dst:             pr_netaddr_clear
        - Src:             'inet.c:217,14'
          Dst:             make_sub_pool
        - Src:             'inet.c:218,3'
          Dst:             pr_pool_tag
        - Src:             'inet.c:220,18'
          Dst:             pcalloc
        - Src:             'inet.c:230,19'
          Dst:             pr_netaddr_get_family
        - Src:             'inet.c:240,9'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'inet.c:292,10'
          Dst:             socket
        - Src:             'inet.c:293,18'
          Dst:             __errno_location
        - Src:             'inet.c:325,11'
          Dst:             strerror
        - Src:             'inet.c:323,9'
          Dst:             pr_log_pri
        - Src:             'inet.c:328,7'
          Dst:             destroy_pool
        - Src:             'inet.c:329,7'
          Dst:             __errno_location
        - Src:             'inet.c:334,9'
          Dst:             setsockopt
        - Src:             'inet.c:337,18'
          Dst:             __errno_location
        - Src:             'inet.c:337,9'
          Dst:             strerror
        - Src:             'inet.c:336,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:343,13'
          Dst:             pr_inet_set_reuse_port
        - Src:             'inet.c:348,18'
          Dst:             __errno_location
        - Src:             'inet.c:348,9'
          Dst:             strerror
        - Src:             'inet.c:345,9'
          Dst:             pr_trace_msg
        - Src:             'inet.c:351,9'
          Dst:             pr_trace_msg
        - Src:             'inet.c:363,7'
          Dst:             pr_trace_msg
        - Src:             'inet.c:365,13'
          Dst:             setsockopt
        - Src:             'inet.c:369,7'
          Dst:             pr_trace_msg
        - Src:             'inet.c:371,13'
          Dst:             setsockopt
        - Src:             'inet.c:376,72'
          Dst:             __errno_location
        - Src:             'inet.c:376,63'
          Dst:             strerror
        - Src:             'inet.c:375,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:381,9'
          Dst:             setsockopt
        - Src:             'inet.c:383,11'
          Dst:             __errno_location
        - Src:             'inet.c:385,20'
          Dst:             __errno_location
        - Src:             'inet.c:385,11'
          Dst:             strerror
        - Src:             'inet.c:384,9'
          Dst:             pr_log_pri
        - Src:             'inet.c:391,5'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:394,36'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:394,7'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'inet.c:397,7'
          Dst:             pr_netaddr_set_sockaddr_any
        - Src:             'inet.c:401,9'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'inet.c:415,11'
          Dst:             getsockopt
        - Src:             'inet.c:419,11'
          Dst:             pr_trace_msg
        - Src:             'inet.c:422,17'
          Dst:             setsockopt
        - Src:             'inet.c:432,18'
          Dst:             __errno_location
        - Src:             'inet.c:436,24'
          Dst:             __errno_location
        - Src:             'inet.c:436,15'
          Dst:             strerror
        - Src:             'inet.c:435,13'
          Dst:             pr_log_pri
        - Src:             'inet.c:443,20'
          Dst:             __errno_location
        - Src:             'inet.c:443,11'
          Dst:             strerror
        - Src:             'inet.c:441,9'
          Dst:             pr_trace_msg
        - Src:             'inet.c:448,30'
          Dst:             htons
        - Src:             'inet.c:448,5'
          Dst:             pr_netaddr_set_port
        - Src:             'inet.c:452,7'
          Dst:             pr_signals_block
        - Src:             'inet.c:453,7'
          Dst:             pr_privs_root
        - Src:             'inet.c:456,9'
          Dst:             fcntl
        - Src:             'inet.c:458,22'
          Dst:             __errno_location
        - Src:             'inet.c:458,13'
          Dst:             strerror
        - Src:             'inet.c:457,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:470,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:468,7'
          Dst:             pr_trace_msg
        - Src:             'inet.c:471,22'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:472,9'
          Dst:             pr_netaddr_get_sockaddr_len
        - Src:             'inet.c:471,13'
          Dst:             bind
        - Src:             'inet.c:473,20'
          Dst:             __errno_location
        - Src:             'inet.c:477,9'
          Dst:             pr_signals_handle
        - Src:             'inet.c:500,9'
          Dst:             pr_privs_relinquish
        - Src:             'inet.c:501,9'
          Dst:             pr_signals_unblock
        - Src:             'inet.c:504,7'
          Dst:             pr_timer_sleep
        - Src:             'inet.c:508,9'
          Dst:             pr_signals_block
        - Src:             'inet.c:509,9'
          Dst:             pr_privs_root
        - Src:             'inet.c:516,9'
          Dst:             pr_privs_relinquish
        - Src:             'inet.c:517,9'
          Dst:             pr_signals_unblock
        - Src:             'inet.c:521,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:521,42'
          Dst:             strerror
        - Src:             'inet.c:520,7'
          Dst:             pr_log_pri
        - Src:             'inet.c:524,9'
          Dst:             pr_log_pri
        - Src:             'inet.c:528,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:526,9'
          Dst:             pr_log_pri
        - Src:             'inet.c:532,7'
          Dst:             destroy_pool
        - Src:             'inet.c:533,14'
          Dst:             close
        - Src:             'inet.c:535,7'
          Dst:             __errno_location
        - Src:             'inet.c:541,7'
          Dst:             pr_privs_relinquish
        - Src:             'inet.c:542,7'
          Dst:             pr_signals_unblock
        - Src:             'inet.c:549,13'
          Dst:             pr_netaddr_get_sockaddr_len
        - Src:             'inet.c:550,25'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:550,9'
          Dst:             getsockname
        - Src:             'inet.c:557,22'
          Dst:             pr_netaddr_alloc
        - Src:             'inet.c:560,41'
          Dst:             pr_netaddr_get_family
        - Src:             'inet.c:560,7'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:561,43'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'inet.c:561,7'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'inet.c:562,29'
          Dst:             pr_netaddr_get_port
        - Src:             'inet.c:562,23'
          Dst:             ntohs
        - Src:             'inet.c:570,18'
          Dst:             __errno_location
        - Src:             'inet.c:570,9'
          Dst:             strerror
        - Src:             'inet.c:569,7'
          Dst:             pr_log_debug
        - Src:             'inet.c:575,9'
          Dst:             pr_netaddr_get_family
        - Src:             'inet.c:576,7'
          Dst:             pr_netaddr_set_family
        - Src:             'inet.c:581,3'
          Dst:             register_cleanup2
        - Src:             'inet.c:581,3'
          Dst:             conn_cleanup_cb
        - Src:             'inet.c:584,5'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'inet.c:583,3'
          Dst:             pr_trace_msg
    - functionName:    socket
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bind
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_inet_create_conn
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 602
      functionLinenumberEnd: 610
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_inet_create_conn2
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:610,10'
          Dst:             pr_inet_create_conn2
    - functionName:    pr_inet_create_conn2
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 590
      functionLinenumberEnd: 598
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - init_conn
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:593,7'
          Dst:             init_conn
        - Src:             'inet.c:595,5'
          Dst:             __errno_location
    - functionName:    pr_inet_getservport
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - getservbyname
        - ntohs
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:80,5'
          Dst:             __errno_location
        - Src:             'inet.c:84,13'
          Dst:             getservbyname
        - Src:             'inet.c:90,10'
          Dst:             ntohs
    - functionName:    getservbyname
      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:    pr_inet_set_default_family
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_inet_clear
      functionSourceFile: '/src/proftpd/src/inet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - destroy_pool
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'inet.c:57,3'
          Dst:             destroy_pool
    - functionName:    path_subst_uservar
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1317
      functionLinenumberEnd: 1445
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          289
      EdgeCount:       65
      CyclomaticComplexity: 19
      functionsReached:
        - __errno_location
        - pr_signals_handle
        - pr_trace_msg
        - pstrdup
        - sreplace
        - strchr
        - strlen
        - strstr
        - strtol
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:1326,5'
          Dst:             __errno_location
        - Src:             'support.c:1331,7'
          Dst:             strstr
        - Src:             'support.c:1340,14'
          Dst:             strlen
        - Src:             'support.c:1350,26'
          Dst:             strstr
        - Src:             'support.c:1356,5'
          Dst:             pr_signals_handle
        - Src:             'support.c:1361,18'
          Dst:             strchr
        - Src:             'support.c:1368,18'
          Dst:             pstrdup
        - Src:             'support.c:1394,9'
          Dst:             strtol
        - Src:             'support.c:1397,7'
          Dst:             pr_trace_msg
        - Src:             'support.c:1410,9'
          Dst:             pr_trace_msg
        - Src:             'support.c:1415,9'
          Dst:             pr_trace_msg
        - Src:             'support.c:1431,19'
          Dst:             sreplace
        - Src:             'support.c:1432,28'
          Dst:             strstr
        - Src:             'support.c:1437,7'
          Dst:             strstr
        - Src:             'support.c:1438,16'
          Dst:             sreplace
    - functionName:    pr_snprintf
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1303
      functionLinenumberEnd: 1311
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_vsnprintfl
      functionUses:    125
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:1308,9'
          Dst:             pr_vsnprintfl
    - functionName:    pr_vsnprintfl
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1232
      functionLinenumberEnd: 1285
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          155
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - pr_log_pri
        - pr_log_stacktrace
        - strerror
        - vsnprintf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:1237,5'
          Dst:             __errno_location
        - Src:             'support.c:1245,9'
          Dst:             vsnprintf
        - Src:             'support.c:1246,12'
          Dst:             __errno_location
        - Src:             'support.c:1272,51'
          Dst:             strerror
        - Src:             'support.c:1270,7'
          Dst:             pr_log_pri
        - Src:             'support.c:1277,32'
          Dst:             strerror
        - Src:             'support.c:1275,7'
          Dst:             pr_log_pri
        - Src:             'support.c:1280,5'
          Dst:             pr_log_stacktrace
        - Src:             'support.c:1283,3'
          Dst:             __errno_location
    - functionName:    pr_vsnprintf
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1287
      functionLinenumberEnd: 1288
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_vsnprintfl
      functionUses:    18
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:1288,10'
          Dst:             pr_vsnprintfl
    - functionName:    pr_gettimeofday_millis
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1217
      functionLinenumberEnd: 1229
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          40
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - gettimeofday
        - pr_timeval2millis
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:1220,7'
          Dst:             gettimeofday
        - Src:             'support.c:1224,7'
          Dst:             pr_timeval2millis
    - functionName:    pr_timeval2millis
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1203
      functionLinenumberEnd: 1215
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:1206,5'
          Dst:             __errno_location
    - functionName:    pr_snprintfl
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1292
      functionLinenumberEnd: 1300
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_vsnprintfl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:1297,9'
          Dst:             pr_vsnprintfl
    - functionName:    pr_strtime3
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1171
      functionLinenumberEnd: 1201
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          92
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - pr_gmtime
        - pr_localtime
        - pr_snprintfl
        - pstrdup
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:1181,10'
          Dst:             pr_gmtime
        - Src:             'support.c:1184,10'
          Dst:             pr_localtime
        - Src:             'support.c:1191,3'
          Dst:             pr_snprintfl
        - Src:             'support.c:1197,12'
          Dst:             pstrdup
    - functionName:    pr_gmtime
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1051
      functionLinenumberEnd: 1085
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - gmtime_r
        - pcalloc
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:1055,5'
          Dst:             __errno_location
        - Src:             'support.c:1061,5'
          Dst:             __errno_location
        - Src:             'support.c:1065,26'
          Dst:             pcalloc
        - Src:             'support.c:1065,12'
          Dst:             gmtime_r
        - Src:             'support.c:1077,14'
          Dst:             pcalloc
    - functionName:    pr_localtime
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1087
      functionLinenumberEnd: 1161
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          78
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - localtime_r
        - pcalloc
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:1122,5'
          Dst:             __errno_location
        - Src:             'support.c:1128,5'
          Dst:             __errno_location
        - Src:             'support.c:1132,29'
          Dst:             pcalloc
        - Src:             'support.c:1132,12'
          Dst:             localtime_r
        - Src:             'support.c:1144,14'
          Dst:             pcalloc
    - functionName:    localtime_r
      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:    gmtime_r
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_strtime2
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1167
      functionLinenumberEnd: 1168
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_strtime3
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:1168,10'
          Dst:             pr_strtime3
    - functionName:    pr_strtime
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1163
      functionLinenumberEnd: 1164
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_strtime2
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:1164,10'
          Dst:             pr_strtime2
    - functionName:    pr_getopt_reset
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1022
      functionLinenumberEnd: 1049
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_env_get
        - pr_env_set
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:1046,7'
          Dst:             pr_env_get
        - Src:             'support.c:1047,5'
          Dst:             pr_env_set
    - functionName:    pr_memscrub
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 987
      functionLinenumberEnd: 1020
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          85
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - memchr
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:1016,7'
          Dst:             memchr
    - functionName:    check_shutmsg
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 874
      functionLinenumberEnd: 974
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          317
      EdgeCount:       54
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - atoi
        - fclose
        - fgets
        - fileno
        - fopen
        - fstat
        - mktime
        - pr_localtime
        - pr_str_strip_end
        - safe_token
        - sstrncpy
        - strlen
        - time
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:883,5'
          Dst:             __errno_location
        - Src:             'support.c:887,8'
          Dst:             fopen
        - Src:             'support.c:892,13'
          Dst:             fileno
        - Src:             'support.c:892,7'
          Dst:             fstat
        - Src:             'support.c:894,7'
          Dst:             fclose
        - Src:             'support.c:895,7'
          Dst:             __errno_location
        - Src:             'support.c:900,8'
          Dst:             fgets
        - Src:             'support.c:902,32'
          Dst:             pr_str_strip_end
        - Src:             'support.c:905,5'
          Dst:             time
        - Src:             'support.c:906,10'
          Dst:             pr_localtime
        - Src:             'support.c:908,7'
          Dst:             fclose
        - Src:             'support.c:912,24'
          Dst:             safe_token
        - Src:             'support.c:912,19'
          Dst:             atoi
        - Src:             'support.c:913,23'
          Dst:             safe_token
        - Src:             'support.c:913,18'
          Dst:             atoi
        - Src:             'support.c:914,24'
          Dst:             safe_token
        - Src:             'support.c:914,19'
          Dst:             atoi
        - Src:             'support.c:915,24'
          Dst:             safe_token
        - Src:             'support.c:915,19'
          Dst:             atoi
        - Src:             'support.c:916,23'
          Dst:             safe_token
        - Src:             'support.c:916,18'
          Dst:             atoi
        - Src:             'support.c:917,23'
          Dst:             safe_token
        - Src:             'support.c:917,18'
          Dst:             atoi
        - Src:             'support.c:919,16'
          Dst:             safe_token
        - Src:             'support.c:920,16'
          Dst:             safe_token
        - Src:             'support.c:922,16'
          Dst:             mktime
        - Src:             'support.c:924,7'
          Dst:             fclose
        - Src:             'support.c:929,11'
          Dst:             strlen
        - Src:             'support.c:930,9'
          Dst:             sstrncpy
        - Src:             'support.c:934,9'
          Dst:             sstrncpy
        - Src:             'support.c:937,30'
          Dst:             atoi
        - Src:             'support.c:937,50'
          Dst:             atoi
        - Src:             'support.c:945,11'
          Dst:             strlen
        - Src:             'support.c:946,9'
          Dst:             sstrncpy
        - Src:             'support.c:950,9'
          Dst:             sstrncpy
        - Src:             'support.c:953,30'
          Dst:             atoi
        - Src:             'support.c:953,50'
          Dst:             atoi
        - Src:             'support.c:960,9'
          Dst:             fgets
        - Src:             'support.c:962,7'
          Dst:             pr_str_strip_end
        - Src:             'support.c:963,7'
          Dst:             sstrncpy
        - Src:             'support.c:967,3'
          Dst:             fclose
    - functionName:    fstat
      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:    7
      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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    safe_token
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 838
      functionLinenumberEnd: 867
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         40
      ICount:          228
      EdgeCount:       53
      CyclomaticComplexity: 15
      functionsReached:
        - __ctype_b_loc
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:846,10'
          Dst:             __ctype_b_loc
        - Src:             'support.c:853,13'
          Dst:             __ctype_b_loc
        - Src:             'support.c:861,12'
          Dst:             __ctype_b_loc
    - functionName:    mktime
      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:    exists
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 829
      functionLinenumberEnd: 830
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - exists2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:830,10'
          Dst:             exists2
    - functionName:    exists2
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 825
      functionLinenumberEnd: 826
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - path_exists
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:826,10'
          Dst:             path_exists
    - functionName:    path_exists
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 781
      functionLinenumberEnd: 807
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          71
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - file_mode2
      functionUses:    3
      BranchProfiles:
        - Branch String:   'support.c:786,5'
          Branch Sides:    []
      Callsites:
        - Src:             'support.c:784,10'
          Dst:             file_mode2
    - functionName:    file_mode2
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 746
      functionLinenumberEnd: 770
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          79
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - get_symlink_mode
        - pr_fs_clear_cache2
        - pr_fsio_lstat
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:751,5'
          Dst:             __errno_location
        - Src:             'support.c:755,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'support.c:756,7'
          Dst:             pr_fsio_lstat
        - Src:             'support.c:758,14'
          Dst:             get_symlink_mode
    - functionName:    get_symlink_mode
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 690
      functionLinenumberEnd: 731
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          134
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - dir_readlink
        - get_symlink_mode
        - pr_fs_clear_cache2
        - pr_fsio_lstat
        - pr_fsio_readlink
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:696,5'
          Dst:             __errno_location
        - Src:             'support.c:703,9'
          Dst:             dir_readlink
        - Src:             'support.c:707,9'
          Dst:             pr_fsio_readlink
        - Src:             'support.c:715,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'support.c:716,7'
          Dst:             pr_fsio_lstat
        - Src:             'support.c:719,7'
          Dst:             __errno_location
        - Src:             'support.c:724,14'
          Dst:             get_symlink_mode
    - functionName:    dir_readlink
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 606
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         73
      ICount:          475
      EdgeCount:       100
      CyclomaticComplexity: 29
      functionsReached:
        - __errno_location
        - destroy_pool
        - make_sub_pool
        - pcalloc
        - pdircat
        - pr_fs_clean_path2
        - pr_fsio_readlink
        - pr_pool_tag
        - pr_trace_msg
        - pstrcat
        - pstrdup
        - pstrndup
        - sstrncpy
        - strlen
        - strncmp
        - strrchr
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:442,5'
          Dst:             __errno_location
        - Src:             'support.c:450,9'
          Dst:             pr_fsio_readlink
        - Src:             'support.c:455,3'
          Dst:             pr_trace_msg
        - Src:             'support.c:473,22'
          Dst:             strlen
        - Src:             'support.c:487,11'
          Dst:             strrchr
        - Src:             'support.c:492,18'
          Dst:             make_sub_pool
        - Src:             'support.c:493,7'
          Dst:             pr_pool_tag
        - Src:             'support.c:495,20'
          Dst:             pstrndup
        - Src:             'support.c:496,18'
          Dst:             pdircat
        - Src:             'support.c:499,18'
          Dst:             pcalloc
        - Src:             'support.c:501,13'
          Dst:             pr_fs_clean_path2
        - Src:             'support.c:503,9'
          Dst:             pr_trace_msg
        - Src:             'support.c:508,7'
          Dst:             pr_trace_msg
        - Src:             'support.c:512,7'
          Dst:             sstrncpy
        - Src:             'support.c:513,13'
          Dst:             strlen
        - Src:             'support.c:514,7'
          Dst:             destroy_pool
        - Src:             'support.c:536,14'
          Dst:             make_sub_pool
        - Src:             'support.c:537,3'
          Dst:             pr_pool_tag
        - Src:             'support.c:539,14'
          Dst:             pstrdup
        - Src:             'support.c:547,11'
          Dst:             strrchr
        - Src:             'support.c:552,22'
          Dst:             pstrndup
        - Src:             'support.c:553,20'
          Dst:             pdircat
        - Src:             'support.c:556,20'
          Dst:             pdircat
        - Src:             'support.c:562,14'
          Dst:             pcalloc
        - Src:             'support.c:565,9'
          Dst:             pr_fs_clean_path2
        - Src:             'support.c:567,5'
          Dst:             pr_trace_msg
        - Src:             'support.c:572,5'
          Dst:             sstrncpy
        - Src:             'support.c:573,11'
          Dst:             strlen
        - Src:             'support.c:576,7'
          Dst:             strncmp
        - Src:             'support.c:588,13'
          Dst:             pstrcat
        - Src:             'support.c:595,5'
          Dst:             pr_trace_msg
        - Src:             'support.c:600,5'
          Dst:             sstrncpy
        - Src:             'support.c:601,11'
          Dst:             strlen
        - Src:             'support.c:604,3'
          Dst:             destroy_pool
    - 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:    84
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dir_exists
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 821
      functionLinenumberEnd: 822
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dir_exists2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:822,10'
          Dst:             dir_exists2
    - functionName:    dir_exists2
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 817
      functionLinenumberEnd: 818
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - path_exists
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:818,10'
          Dst:             path_exists
    - functionName:    file_exists
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 813
      functionLinenumberEnd: 814
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - file_exists2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:814,10'
          Dst:             file_exists2
    - functionName:    file_exists2
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 809
      functionLinenumberEnd: 810
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - path_exists
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:810,10'
          Dst:             path_exists
    - functionName:    file_mode
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 772
      functionLinenumberEnd: 773
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - file_mode2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:773,10'
          Dst:             file_mode2
    - functionName:    symlink_mode
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 742
      functionLinenumberEnd: 743
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - symlink_mode2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:743,10'
          Dst:             symlink_mode2
    - functionName:    symlink_mode2
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 733
      functionLinenumberEnd: 740
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - get_symlink_mode
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:735,5'
          Dst:             __errno_location
        - Src:             'support.c:739,10'
          Dst:             get_symlink_mode
    - functionName:    dir_abs_path
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 631
      functionLinenumberEnd: 683
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          148
      EdgeCount:       35
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pdircat
        - pr_fs_getcwd
        - pr_fs_interpolate
        - pstrdup
        - strlen
        - strncmp
      functionUses:    16
      BranchProfiles:
        - Branch String:   'support.c:644,5'
          Branch Sides:    []
      Callsites:
        - Src:             'support.c:636,5'
          Dst:             __errno_location
        - Src:             'support.c:644,13'
          Dst:             pr_fs_interpolate
        - Src:             'support.c:654,16'
          Dst:             pstrdup
        - Src:             'support.c:661,45'
          Dst:             pr_fs_getcwd
        - Src:             'support.c:661,13'
          Dst:             pdircat
        - Src:             'support.c:664,24'
          Dst:             pr_fs_getcwd
        - Src:             'support.c:664,13'
          Dst:             pdircat
        - Src:             'support.c:670,11'
          Dst:             strlen
        - Src:             'support.c:669,11'
          Dst:             strncmp
        - Src:             'support.c:671,15'
          Dst:             pdircat
        - Src:             'support.c:674,15'
          Dst:             pstrdup
        - Src:             'support.c:678,13'
          Dst:             pstrdup
    - functionName:    dir_realpath
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 611
      functionLinenumberEnd: 625
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          56
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - pr_fs_resolve_partial
        - pstrdup
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:616,5'
          Dst:             __errno_location
        - Src:             'support.c:620,7'
          Dst:             pr_fs_resolve_partial
        - Src:             'support.c:624,10'
          Dst:             pstrdup
    - functionName:    dir_canonical_vpath
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 404
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          96
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pr_fs_clean_path
        - pr_fs_dircat
        - pr_fs_getvwd
        - pr_fs_interpolate
        - pstrdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:410,5'
          Dst:             __errno_location
        - Src:             'support.c:415,9'
          Dst:             pr_fs_interpolate
        - Src:             'support.c:416,44'
          Dst:             pr_fs_getvwd
        - Src:             'support.c:416,11'
          Dst:             pr_fs_dircat
        - Src:             'support.c:422,42'
          Dst:             pr_fs_getvwd
        - Src:             'support.c:422,9'
          Dst:             pr_fs_dircat
        - Src:             'support.c:427,3'
          Dst:             pr_fs_clean_path
        - Src:             'support.c:428,10'
          Dst:             pstrdup
    - functionName:    dir_canonical_path
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 377
      functionLinenumberEnd: 402
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          96
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pr_fs_clean_path
        - pr_fs_dircat
        - pr_fs_getcwd
        - pr_fs_interpolate
        - pstrdup
      functionUses:    18
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:383,5'
          Dst:             __errno_location
        - Src:             'support.c:388,9'
          Dst:             pr_fs_interpolate
        - Src:             'support.c:389,44'
          Dst:             pr_fs_getcwd
        - Src:             'support.c:389,11'
          Dst:             pr_fs_dircat
        - Src:             'support.c:395,42'
          Dst:             pr_fs_getcwd
        - Src:             'support.c:395,9'
          Dst:             pr_fs_dircat
        - Src:             'support.c:400,3'
          Dst:             pr_fs_clean_path
        - Src:             'support.c:401,10'
          Dst:             pstrdup
    - functionName:    dir_best_path
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 375
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         49
      ICount:          242
      EdgeCount:       66
      CyclomaticComplexity: 19
      functionsReached:
        - __errno_location
        - pr_fs_clean_path
        - pr_fs_dircat
        - pr_fs_getcwd
        - pr_fs_interpolate
        - pr_fs_resolve_path
        - pr_signals_handle
        - pstrdup
        - sstrncpy
        - strrchr
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:315,5'
          Dst:             __errno_location
        - Src:             'support.c:320,9'
          Dst:             pr_fs_interpolate
        - Src:             'support.c:321,52'
          Dst:             pr_fs_getcwd
        - Src:             'support.c:321,11'
          Dst:             pr_fs_dircat
        - Src:             'support.c:327,50'
          Dst:             pr_fs_getcwd
        - Src:             'support.c:327,9'
          Dst:             pr_fs_dircat
        - Src:             'support.c:332,20'
          Dst:             pstrdup
        - Src:             'support.c:332,3'
          Dst:             pr_fs_clean_path
        - Src:             'support.c:335,5'
          Dst:             pr_signals_handle
        - Src:             'support.c:337,9'
          Dst:             pr_fs_resolve_path
        - Src:             'support.c:342,15'
          Dst:             strrchr
        - Src:             'support.c:345,13'
          Dst:             pr_fs_dircat
        - Src:             'support.c:360,11'
          Dst:             pr_fs_dircat
        - Src:             'support.c:365,7'
          Dst:             sstrncpy
        - Src:             'support.c:369,9'
          Dst:             pr_fs_dircat
        - Src:             'support.c:374,10'
          Dst:             pstrdup
    - functionName:    dir_interpolate
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          156
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - pdircat
        - pr_auth_getpwnam
        - pstrdup
        - strchr
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:263,5'
          Dst:             __errno_location
        - Src:             'support.c:270,12'
          Dst:             pstrdup
        - Src:             'support.c:271,11'
          Dst:             strchr
        - Src:             'support.c:281,9'
          Dst:             strcmp
        - Src:             'support.c:283,13'
          Dst:             pdircat
        - Src:             'support.c:288,12'
          Dst:             pr_auth_getpwnam
        - Src:             'support.c:290,9'
          Dst:             __errno_location
        - Src:             'support.c:294,13'
          Dst:             pdircat
        - Src:             'support.c:298,11'
          Dst:             pstrdup
    - functionName:    get_pathconf_name_max
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pathconf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:198,15'
          Dst:             pathconf
    - functionName:    pathconf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_fpathconf_name_max
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fpathconf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:188,15'
          Dst:             fpathconf
    - functionName:    fpathconf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_name_max
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          135
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - get_fpathconf_name_max
        - get_pathconf_name_max
        - pr_log_debug
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:212,5'
          Dst:             __errno_location
        - Src:             'support.c:218,11'
          Dst:             get_fpathconf_name_max
        - Src:             'support.c:221,22'
          Dst:             __errno_location
        - Src:             'support.c:224,11'
          Dst:             strerror
        - Src:             'support.c:223,9'
          Dst:             pr_log_debug
        - Src:             'support.c:226,9'
          Dst:             __errno_location
        - Src:             'support.c:236,11'
          Dst:             get_pathconf_name_max
        - Src:             'support.c:239,22'
          Dst:             __errno_location
        - Src:             'support.c:242,11'
          Dst:             strerror
        - Src:             'support.c:241,9'
          Dst:             pr_log_debug
        - Src:             'support.c:244,9'
          Dst:             __errno_location
        - Src:             'support.c:252,3'
          Dst:             __errno_location
    - functionName:    run_schedule
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         16
      ICount:          95
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - destroy_pool
        - pr_signals_handle
        - xaset_remove
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:165,5'
          Dst:             pr_signals_handle
        - Src:             'support.c:169,7'
          Dst:             xaset_remove
        - Src:             'support.c:170,7'
          Dst:             destroy_pool
    - functionName:    schedule
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          105
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
        - xaset_create
        - xaset_insert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:132,9'
          Dst:             make_sub_pool
        - Src:             'support.c:133,5'
          Dst:             pr_pool_tag
        - Src:             'support.c:134,14'
          Dst:             xaset_create
        - Src:             'support.c:140,14'
          Dst:             make_sub_pool
        - Src:             'support.c:141,3'
          Dst:             pr_pool_tag
        - Src:             'support.c:143,7'
          Dst:             pcalloc
        - Src:             'support.c:151,3'
          Dst:             xaset_insert
    - functionName:    pr_signals_unblock
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mask_signals
        - pr_signals_handle
        - pr_trace_msg
      functionUses:    58
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:103,5'
          Dst:             pr_trace_msg
        - Src:             'support.c:104,5'
          Dst:             pr_signals_handle
        - Src:             'support.c:109,5'
          Dst:             mask_signals
        - Src:             'support.c:110,5'
          Dst:             pr_trace_msg
        - Src:             'support.c:111,5'
          Dst:             pr_signals_handle
        - Src:             'support.c:114,5'
          Dst:             pr_trace_msg
    - functionName:    mask_signals
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          61
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - pr_log_pri
        - sigaddset
        - sigemptyset
        - sigprocmask
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:59,5'
          Dst:             sigemptyset
        - Src:             'support.c:61,5'
          Dst:             sigaddset
        - Src:             'support.c:62,5'
          Dst:             sigaddset
        - Src:             'support.c:63,5'
          Dst:             sigaddset
        - Src:             'support.c:64,5'
          Dst:             sigaddset
        - Src:             'support.c:65,5'
          Dst:             sigaddset
        - Src:             'support.c:66,5'
          Dst:             sigaddset
        - Src:             'support.c:68,5'
          Dst:             sigaddset
        - Src:             'support.c:71,5'
          Dst:             sigaddset
        - Src:             'support.c:73,5'
          Dst:             sigaddset
        - Src:             'support.c:75,9'
          Dst:             sigprocmask
        - Src:             'support.c:77,52'
          Dst:             __errno_location
        - Src:             'support.c:77,43'
          Dst:             strerror
        - Src:             'support.c:76,7'
          Dst:             pr_log_pri
        - Src:             'support.c:81,9'
          Dst:             sigprocmask
        - Src:             'support.c:83,54'
          Dst:             __errno_location
        - Src:             'support.c:83,45'
          Dst:             strerror
        - Src:             'support.c:82,7'
          Dst:             pr_log_pri
    - functionName:    pr_signals_block
      functionSourceFile: '/src/proftpd/src/support.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mask_signals
        - pr_trace_msg
      functionUses:    24
      BranchProfiles:  []
      Callsites:
        - Src:             'support.c:90,5'
          Dst:             mask_signals
        - Src:             'support.c:91,5'
          Dst:             pr_trace_msg
        - Src:             'support.c:94,5'
          Dst:             pr_trace_msg
    - functionName:    pr_response_send_raw
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 425
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          65
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - pr_netio_printf
        - pr_trace_msg
        - pr_vsnprintf
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'response.c:406,5'
          Dst:             pr_trace_msg
        - Src:             'response.c:419,3'
          Dst:             pr_vsnprintf
        - Src:             'response.c:424,3'
          Dst:             pr_trace_msg
        - Src:             'response.c:424,3'
          Dst:             pr_netio_printf
        - Src:             'response.c:424,3'
          Dst:             pr_netio_printf
    - functionName:    pr_response_send
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 374
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          77
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - pr_netio_printf
        - pr_trace_msg
        - pr_vsnprintf
        - pstrdup
      functionUses:    35
      BranchProfiles:  []
      Callsites:
        - Src:             'response.c:378,5'
          Dst:             pr_trace_msg
        - Src:             'response.c:390,3'
          Dst:             pr_vsnprintf
        - Src:             'response.c:395,29'
          Dst:             pstrdup
        - Src:             'response.c:396,28'
          Dst:             pstrdup
        - Src:             'response.c:398,3'
          Dst:             pr_trace_msg
        - Src:             'response.c:398,3'
          Dst:             pr_netio_printf
        - Src:             'response.c:398,3'
          Dst:             pr_netio_printf
    - functionName:    pr_response_send_async
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          118
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - pr_netio_printf_async
        - pr_trace_msg
        - pr_vsnprintf
        - pstrdup
        - sstrcat
        - sstrncpy
        - strlen
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'response.c:334,5'
          Dst:             pr_trace_msg
        - Src:             'response.c:346,3'
          Dst:             sstrncpy
        - Src:             'response.c:348,9'
          Dst:             strlen
        - Src:             'response.c:349,3'
          Dst:             sstrcat
        - Src:             'response.c:354,9'
          Dst:             pr_vsnprintf
        - Src:             'response.c:359,29'
          Dst:             pstrdup
        - Src:             'response.c:360,28'
          Dst:             pstrdup
        - Src:             'response.c:362,3'
          Dst:             sstrcat
        - Src:             'response.c:364,3'
          Dst:             pr_trace_msg
        - Src:             'response.c:366,5'
          Dst:             pr_netio_printf_async
        - Src:             'response.c:370,5'
          Dst:             pr_netio_printf_async
    - functionName:    pr_response_add
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 325
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          261
      EdgeCount:       61
      CyclomaticComplexity: 17
      functionsReached:
        - pcalloc
        - pr_trace_msg
        - pr_vsnprintf
        - pstrdup
        - pstrndup
        - strcmp
      functionUses:    102
      BranchProfiles:  []
      Callsites:
        - Src:             'response.c:278,5'
          Dst:             pr_trace_msg
        - Src:             'response.c:284,9'
          Dst:             pr_vsnprintf
        - Src:             'response.c:289,28'
          Dst:             pcalloc
        - Src:             'response.c:290,26'
          Dst:             pstrdup
        - Src:             'response.c:291,15'
          Dst:             pstrndup
        - Src:             'response.c:294,31'
          Dst:             pstrdup
        - Src:             'response.c:296,28'
          Dst:             pstrndup
        - Src:             'response.c:298,3'
          Dst:             pr_trace_msg
        - Src:             'response.c:318,35'
          Dst:             strcmp
    - functionName:    pr_response_add_err
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          261
      EdgeCount:       61
      CyclomaticComplexity: 17
      functionsReached:
        - pcalloc
        - pr_trace_msg
        - pr_vsnprintf
        - pstrdup
        - pstrndup
        - strcmp
      functionUses:    259
      BranchProfiles:  []
      Callsites:
        - Src:             'response.c:219,5'
          Dst:             pr_trace_msg
        - Src:             'response.c:225,9'
          Dst:             pr_vsnprintf
        - Src:             'response.c:230,28'
          Dst:             pcalloc
        - Src:             'response.c:231,26'
          Dst:             pstrdup
        - Src:             'response.c:232,15'
          Dst:             pstrndup
        - Src:             'response.c:235,31'
          Dst:             pstrdup
        - Src:             'response.c:237,28'
          Dst:             pstrndup
        - Src:             'response.c:239,3'
          Dst:             pr_trace_msg
        - Src:             'response.c:259,35'
          Dst:             strcmp
    - functionName:    pr_response_flush
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         56
      ICount:          373
      EdgeCount:       74
      CyclomaticComplexity: 20
      functionsReached:
        - pr_netio_printf
        - pr_response_clear
        - pr_trace_msg
        - strcmp
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'response.c:154,5'
          Dst:             pr_trace_msg
        - Src:             'response.c:156,5'
          Dst:             pr_response_clear
        - Src:             'response.c:164,5'
          Dst:             pr_response_clear
        - Src:             'response.c:173,12'
          Dst:             strcmp
        - Src:             'response.c:174,9'
          Dst:             pr_trace_msg
        - Src:             'response.c:174,9'
          Dst:             pr_netio_printf
        - Src:             'response.c:174,9'
          Dst:             pr_netio_printf
        - Src:             'response.c:181,11'
          Dst:             pr_trace_msg
        - Src:             'response.c:181,11'
          Dst:             pr_netio_printf
        - Src:             'response.c:181,11'
          Dst:             pr_netio_printf
        - Src:             'response.c:185,11'
          Dst:             pr_trace_msg
        - Src:             'response.c:185,11'
          Dst:             pr_netio_printf
        - Src:             'response.c:185,11'
          Dst:             pr_netio_printf
        - Src:             'response.c:193,12'
          Dst:             strcmp
        - Src:             'response.c:194,9'
          Dst:             pr_trace_msg
        - Src:             'response.c:194,9'
          Dst:             pr_netio_printf
        - Src:             'response.c:194,9'
          Dst:             pr_netio_printf
        - Src:             'response.c:200,9'
          Dst:             pr_trace_msg
        - Src:             'response.c:200,9'
          Dst:             pr_netio_printf
        - Src:             'response.c:200,9'
          Dst:             pr_netio_printf
        - Src:             'response.c:206,3'
          Dst:             pr_response_clear
    - functionName:    pr_response_clear
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - reset_last_response
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'response.c:136,3'
          Dst:             reset_last_response
    - functionName:    reset_last_response
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_response_blocked
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_response_block
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'response.c:127,3'
          Dst:             __errno_location
    - functionName:    pr_response_register_handler
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_response_get_last
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          84
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pstrdup
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'response.c:94,5'
          Dst:             __errno_location
        - Src:             'response.c:100,5'
          Dst:             __errno_location
        - Src:             'response.c:105,22'
          Dst:             pstrdup
        - Src:             'response.c:109,21'
          Dst:             pstrdup
    - functionName:    pr_response_set_pool
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - pstrdup
        - reset_last_response
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'response.c:71,5'
          Dst:             reset_last_response
        - Src:             'response.c:80,31'
          Dst:             pstrdup
        - Src:             'response.c:87,30'
          Dst:             pstrdup
    - functionName:    pr_response_get_pool
      functionSourceFile: '/src/proftpd/src/response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    symtab_hash
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_stash
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 907
      functionLinenumberEnd: 920
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - destroy_pool
        - make_sub_pool
        - pr_pool_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stash.c:909,5'
          Dst:             destroy_pool
        - Src:             'stash.c:912,17'
          Dst:             make_sub_pool
        - Src:             'stash.c:913,3'
          Dst:             pr_pool_tag
    - functionName:    pr_stash_dump
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 887
      functionLinenumberEnd: 905
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_stash_remove_symbol
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 803
      functionLinenumberEnd: 829
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          67
      EdgeCount:       19
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - pr_stash_remove_auth
        - pr_stash_remove_cmd
        - pr_stash_remove_conf
        - pr_stash_remove_hook
      functionUses:    6
      BranchProfiles:
        - Branch String:   'stash.c:806,3'
          Branch Sides:    []
      Callsites:
        - Src:             'stash.c:808,15'
          Dst:             pr_stash_remove_conf
        - Src:             'stash.c:812,15'
          Dst:             pr_stash_remove_cmd
        - Src:             'stash.c:816,15'
          Dst:             pr_stash_remove_auth
        - Src:             'stash.c:820,15'
          Dst:             pr_stash_remove_hook
        - Src:             'stash.c:824,7'
          Dst:             __errno_location
    - functionName:    pr_stash_remove_conf
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 609
      functionLinenumberEnd: 653
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          105
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - destroy_pool
        - pr_signals_handle
        - pr_stash_get_symbol2
        - strlen
        - sym_type_hash
        - xaset_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stash.c:616,5'
          Dst:             __errno_location
        - Src:             'stash.c:621,23'
          Dst:             strlen
        - Src:             'stash.c:623,10'
          Dst:             sym_type_hash
        - Src:             'stash.c:627,9'
          Dst:             pr_stash_get_symbol2
        - Src:             'stash.c:630,5'
          Dst:             pr_signals_handle
        - Src:             'stash.c:640,7'
          Dst:             xaset_remove
        - Src:             'stash.c:642,7'
          Dst:             destroy_pool
        - Src:             'stash.c:648,11'
          Dst:             pr_stash_get_symbol2
    - functionName:    pr_stash_remove_cmd
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 662
      functionLinenumberEnd: 712
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          204
      EdgeCount:       46
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - destroy_pool
        - pr_signals_handle
        - pr_stash_get_symbol2
        - strcmp
        - strlen
        - sym_type_hash
        - xaset_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stash.c:669,5'
          Dst:             __errno_location
        - Src:             'stash.c:674,17'
          Dst:             strlen
        - Src:             'stash.c:676,10'
          Dst:             sym_type_hash
        - Src:             'stash.c:680,9'
          Dst:             pr_stash_get_symbol2
        - Src:             'stash.c:684,5'
          Dst:             pr_signals_handle
        - Src:             'stash.c:698,11'
          Dst:             strcmp
        - Src:             'stash.c:700,7'
          Dst:             xaset_remove
        - Src:             'stash.c:702,7'
          Dst:             destroy_pool
        - Src:             'stash.c:708,11'
          Dst:             pr_stash_get_symbol2
    - functionName:    pr_stash_remove_auth
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 714
      functionLinenumberEnd: 756
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          105
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - destroy_pool
        - pr_signals_handle
        - pr_stash_get_symbol2
        - strlen
        - sym_type_hash
        - xaset_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stash.c:721,5'
          Dst:             __errno_location
        - Src:             'stash.c:726,17'
          Dst:             strlen
        - Src:             'stash.c:728,10'
          Dst:             sym_type_hash
        - Src:             'stash.c:732,9'
          Dst:             pr_stash_get_symbol2
        - Src:             'stash.c:734,5'
          Dst:             pr_signals_handle
        - Src:             'stash.c:744,7'
          Dst:             xaset_remove
        - Src:             'stash.c:746,7'
          Dst:             destroy_pool
        - Src:             'stash.c:752,11'
          Dst:             pr_stash_get_symbol2
    - functionName:    pr_stash_remove_hook
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 758
      functionLinenumberEnd: 800
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          105
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - destroy_pool
        - pr_signals_handle
        - pr_stash_get_symbol2
        - strlen
        - sym_type_hash
        - xaset_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stash.c:765,5'
          Dst:             __errno_location
        - Src:             'stash.c:770,18'
          Dst:             strlen
        - Src:             'stash.c:772,10'
          Dst:             sym_type_hash
        - Src:             'stash.c:776,9'
          Dst:             pr_stash_get_symbol2
        - Src:             'stash.c:778,5'
          Dst:             pr_signals_handle
        - Src:             'stash.c:788,7'
          Dst:             xaset_remove
        - Src:             'stash.c:790,7'
          Dst:             destroy_pool
        - Src:             'stash.c:796,11'
          Dst:             pr_stash_get_symbol2
    - functionName:    sym_type_hash
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          102
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - exit
        - pr_log_pri
        - symtab_hash
        - tolower
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'stash.c:192,12'
          Dst:             symtab_hash
        - Src:             'stash.c:200,7'
          Dst:             pr_log_pri
        - Src:             'stash.c:201,7'
          Dst:             exit
        - Src:             'stash.c:212,16'
          Dst:             tolower
        - Src:             'stash.c:215,12'
          Dst:             symtab_hash
    - functionName:    pr_stash_get_symbol2
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 491
      functionLinenumberEnd: 602
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         59
      ICount:          329
      EdgeCount:       77
      CyclomaticComplexity: 20
      functionsReached:
        - __errno_location
        - stash_lookup
        - stash_lookup_next
        - strlen
        - sym_type_hash
      functionUses:    24
      BranchProfiles:
        - Branch String:   'stash.c:558,3'
          Branch Sides:    []
      Callsites:
        - Src:             'stash.c:501,5'
          Dst:             __errno_location
        - Src:             'stash.c:507,15'
          Dst:             strlen
        - Src:             'stash.c:517,16'
          Dst:             sym_type_hash
        - Src:             'stash.c:522,14'
          Dst:             sym_type_hash
        - Src:             'stash.c:526,12'
          Dst:             sym_type_hash
        - Src:             'stash.c:547,5'
          Dst:             __errno_location
        - Src:             'stash.c:552,11'
          Dst:             stash_lookup_next
        - Src:             'stash.c:555,11'
          Dst:             stash_lookup
        - Src:             'stash.c:565,7'
          Dst:             __errno_location
        - Src:             'stash.c:574,7'
          Dst:             __errno_location
        - Src:             'stash.c:583,7'
          Dst:             __errno_location
        - Src:             'stash.c:592,7'
          Dst:             __errno_location
        - Src:             'stash.c:600,3'
          Dst:             __errno_location
    - functionName:    stash_lookup_next
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 488
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - int
        - 'N/A'
        - size_t
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          294
      EdgeCount:       67
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - strncasecmp
        - tolower
      functionUses:    1
      BranchProfiles:
        - Branch String:   'stash.c:400,3'
          Branch Sides:    []
      Callsites:
        - Src:             'stash.c:418,7'
          Dst:             __errno_location
        - Src:             'stash.c:444,16'
          Dst:             tolower
        - Src:             'stash.c:445,16'
          Dst:             tolower
        - Src:             'stash.c:461,16'
          Dst:             tolower
        - Src:             'stash.c:462,16'
          Dst:             tolower
        - Src:             'stash.c:475,15'
          Dst:             strncasecmp
    - functionName:    stash_lookup
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 392
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - size_t
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          264
      EdgeCount:       59
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - strncasecmp
        - tolower
      functionUses:    1
      BranchProfiles:
        - Branch String:   'stash.c:310,3'
          Branch Sides:    []
      Callsites:
        - Src:             'stash.c:328,7'
          Dst:             __errno_location
        - Src:             'stash.c:353,14'
          Dst:             tolower
        - Src:             'stash.c:354,14'
          Dst:             tolower
        - Src:             'stash.c:370,14'
          Dst:             tolower
        - Src:             'stash.c:371,14'
          Dst:             tolower
        - Src:             'stash.c:384,13'
          Dst:             strncasecmp
    - functionName:    tolower
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    20
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_stash_get_symbol
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 606
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_stash_get_symbol2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'stash.c:606,10'
          Dst:             pr_stash_get_symbol2
    - functionName:    sym_cmp
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          299
      EdgeCount:       54
      CyclomaticComplexity: 17
      functionsReached:
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stash.c:125,9'
          Dst:             strncmp
    - functionName:    sym_alloc
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pcalloc
        - pr_pool_create_sz
        - pr_pool_tag
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'stash.c:77,14'
          Dst:             pr_pool_create_sz
        - Src:             'stash.c:78,3'
          Dst:             pr_pool_tag
        - Src:             'stash.c:80,9'
          Dst:             pcalloc
    - functionName:    pr_stash_add_symbol
      functionSourceFile: '/src/proftpd/src/stash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          238
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - destroy_pool
        - strlen
        - sym_alloc
        - sym_cmp
        - sym_type_hash
        - xaset_create
        - xaset_insert_sort
      functionUses:    5
      BranchProfiles:
        - Branch String:   'stash.c:234,3'
          Branch Sides:    []
      Callsites:
        - Src:             'stash.c:230,5'
          Dst:             __errno_location
        - Src:             'stash.c:236,13'
          Dst:             sym_alloc
        - Src:             'stash.c:245,13'
          Dst:             sym_alloc
        - Src:             'stash.c:254,13'
          Dst:             sym_alloc
        - Src:             'stash.c:263,13'
          Dst:             sym_alloc
        - Src:             'stash.c:272,7'
          Dst:             __errno_location
        - Src:             'stash.c:278,5'
          Dst:             destroy_pool
        - Src:             'stash.c:279,5'
          Dst:             __errno_location
        - Src:             'stash.c:283,17'
          Dst:             strlen
        - Src:             'stash.c:285,5'
          Dst:             destroy_pool
        - Src:             'stash.c:286,5'
          Dst:             __errno_location
        - Src:             'stash.c:293,10'
          Dst:             sym_type_hash
        - Src:             'stash.c:298,25'
          Dst:             xaset_create
        - Src:             'stash.c:298,25'
          Dst:             sym_cmp
        - Src:             'stash.c:301,3'
          Dst:             xaset_insert_sort
    - functionName:    sig_alarm
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - alarm
        - pr_log_pri
        - sigaction
        - sigemptyset
        - strerror
        - time
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'timers.c:203,3'
          Dst:             sigemptyset
        - Src:             'timers.c:214,7'
          Dst:             sigaction
        - Src:             'timers.c:217,16'
          Dst:             __errno_location
        - Src:             'timers.c:217,7'
          Dst:             strerror
        - Src:             'timers.c:215,5'
          Dst:             pr_log_pri
        - Src:             'timers.c:233,20'
          Dst:             time
        - Src:             'timers.c:234,5'
          Dst:             alarm
    - functionName:    sigaction
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    alarm
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    timers_init
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 580
      functionLinenumberEnd: 601
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - destroy_pool
        - make_sub_pool
        - pr_pool_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'timers.c:596,5'
          Dst:             destroy_pool
        - Src:             'timers.c:599,16'
          Dst:             make_sub_pool
        - Src:             'timers.c:600,3'
          Dst:             pr_pool_tag
    - functionName:    pr_timer_usleep
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 562
      functionLinenumberEnd: 578
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pr_signals_block
        - pr_signals_unblock
        - select
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'timers.c:566,5'
          Dst:             __errno_location
        - Src:             'timers.c:573,3'
          Dst:             pr_signals_block
        - Src:             'timers.c:574,10'
          Dst:             select
        - Src:             'timers.c:575,3'
          Dst:             pr_signals_unblock
    - functionName:    sleep_cb
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 533
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_timer_sleep
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 560
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          69
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - handle_alarm
        - pr_timer_add
        - sigemptyset
        - sigsuspend
        - sleep_cb
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'timers.c:544,5'
          Dst:             __errno_location
        - Src:             'timers.c:548,13'
          Dst:             pr_timer_add
        - Src:             'timers.c:548,13'
          Dst:             sleep_cb
        - Src:             'timers.c:553,3'
          Dst:             sigemptyset
        - Src:             'timers.c:555,5'
          Dst:             sigsuspend
        - Src:             'timers.c:556,5'
          Dst:             handle_alarm
    - functionName:    pr_timer_add
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 421
      functionLinenumberEnd: 510
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          285
      EdgeCount:       62
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - handle_alarm
        - make_sub_pool
        - palloc
        - pr_alarms_block
        - pr_alarms_unblock
        - pr_pool_tag
        - pr_trace_msg
        - set_sig_alarm
        - timer_cmp
        - xaset_create
        - xaset_insert
        - xaset_insert_sort
        - xaset_remove
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'timers.c:427,5'
          Dst:             __errno_location
        - Src:             'timers.c:432,14'
          Dst:             xaset_create
        - Src:             'timers.c:432,14'
          Dst:             timer_cmp
        - Src:             'timers.c:439,9'
          Dst:             __errno_location
        - Src:             'timers.c:446,19'
          Dst:             xaset_create
        - Src:             'timers.c:450,3'
          Dst:             pr_alarms_block
        - Src:             'timers.c:453,5'
          Dst:             xaset_remove
        - Src:             'timers.c:457,20'
          Dst:             make_sub_pool
        - Src:             'timers.c:458,7'
          Dst:             pr_pool_tag
        - Src:             'timers.c:462,9'
          Dst:             palloc
        - Src:             'timers.c:487,18'
          Dst:             xaset_create
        - Src:             'timers.c:489,5'
          Dst:             xaset_insert
        - Src:             'timers.c:492,5'
          Dst:             xaset_insert_sort
        - Src:             'timers.c:494,5'
          Dst:             set_sig_alarm
        - Src:             'timers.c:500,5'
          Dst:             handle_alarm
        - Src:             'timers.c:503,3'
          Dst:             pr_alarms_unblock
        - Src:             'timers.c:505,3'
          Dst:             pr_trace_msg
    - functionName:    sigsuspend
      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:    handle_alarm
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 307
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - alarm
        - pr_signals_handle
        - process_timers
        - time
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'timers.c:288,7'
          Dst:             alarm
        - Src:             'timers.c:291,7'
          Dst:             time
        - Src:             'timers.c:296,21'
          Dst:             process_timers
        - Src:             'timers.c:299,7'
          Dst:             alarm
        - Src:             'timers.c:306,3'
          Dst:             pr_signals_handle
    - functionName:    process_timers
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         56
      ICount:          354
      EdgeCount:       74
      CyclomaticComplexity: 20
      functionsReached:
        - pr_alarms_block
        - pr_alarms_unblock
        - pr_signals_handle
        - pr_trace_msg
        - xaset_create
        - xaset_insert
        - xaset_insert_sort
        - xaset_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'timers.c:87,16'
          Dst:             xaset_create
        - Src:             'timers.c:117,3'
          Dst:             pr_alarms_block
        - Src:             'timers.c:127,9'
          Dst:             xaset_remove
        - Src:             'timers.c:128,9'
          Dst:             xaset_insert
        - Src:             'timers.c:133,9'
          Dst:             pr_trace_msg
        - Src:             'timers.c:146,11'
          Dst:             xaset_remove
        - Src:             'timers.c:147,11'
          Dst:             xaset_insert
        - Src:             'timers.c:153,11'
          Dst:             pr_trace_msg
        - Src:             'timers.c:157,11'
          Dst:             xaset_remove
        - Src:             'timers.c:159,11'
          Dst:             xaset_insert
        - Src:             'timers.c:168,5'
          Dst:             pr_signals_handle
        - Src:             'timers.c:170,5'
          Dst:             xaset_remove
        - Src:             'timers.c:171,5'
          Dst:             xaset_insert_sort
        - Src:             'timers.c:176,3'
          Dst:             pr_alarms_unblock
    - functionName:    pr_alarms_block
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 518
      functionLinenumberEnd: 520
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    16
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_alarms_unblock
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 522
      functionLinenumberEnd: 529
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          39
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - handle_alarm
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'timers.c:527,5'
          Dst:             handle_alarm
    - functionName:    timer_cmp
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_sig_alarm
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pr_log_pri
        - sigaction
        - sigemptyset
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'timers.c:243,3'
          Dst:             sigemptyset
        - Src:             'timers.c:254,7'
          Dst:             sigaction
        - Src:             'timers.c:257,16'
          Dst:             __errno_location
        - Src:             'timers.c:257,7'
          Dst:             strerror
        - Src:             'timers.c:255,5'
          Dst:             pr_log_pri
    - functionName:    pr_timer_remove
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          205
      EdgeCount:       49
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - handle_alarm
        - pr_alarms_block
        - pr_alarms_unblock
        - pr_trace_msg
        - xaset_insert
        - xaset_remove
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'timers.c:365,3'
          Dst:             pr_alarms_block
        - Src:             'timers.c:378,9'
          Dst:             xaset_remove
        - Src:             'timers.c:379,9'
          Dst:             xaset_insert
        - Src:             'timers.c:386,9'
          Dst:             handle_alarm
        - Src:             'timers.c:389,7'
          Dst:             pr_trace_msg
        - Src:             'timers.c:403,3'
          Dst:             pr_alarms_unblock
        - Src:             'timers.c:406,5'
          Dst:             __errno_location
    - functionName:    pr_timer_reset
      functionSourceFile: '/src/proftpd/src/timers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          166
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - handle_alarm
        - pr_alarms_block
        - pr_alarms_unblock
        - pr_trace_msg
        - xaset_create
        - xaset_insert
        - xaset_remove
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'timers.c:313,5'
          Dst:             __errno_location
        - Src:             'timers.c:318,5'
          Dst:             __errno_location
        - Src:             'timers.c:322,3'
          Dst:             pr_alarms_block
        - Src:             'timers.c:325,16'
          Dst:             xaset_create
        - Src:             'timers.c:332,7'
          Dst:             xaset_remove
        - Src:             'timers.c:333,7'
          Dst:             xaset_insert
        - Src:             'timers.c:340,7'
          Dst:             handle_alarm
        - Src:             'timers.c:345,3'
          Dst:             pr_alarms_unblock
        - Src:             'timers.c:348,5'
          Dst:             pr_trace_msg
    - functionName:    pr_str_is_fnmatch
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1391
      functionLinenumberEnd: 1432
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          92
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    8
      BranchProfiles:
        - Branch String:   'str.c:1399,5'
          Branch Sides:    []
      Callsites:       []
    - functionName:    pr_str_is_boolean
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1348
      functionLinenumberEnd: 1388
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          112
      EdgeCount:       31
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - strncasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:1350,5'
          Dst:             __errno_location
        - Src:             'str.c:1354,7'
          Dst:             strncasecmp
        - Src:             'str.c:1358,7'
          Dst:             strncasecmp
        - Src:             'str.c:1362,7'
          Dst:             strncasecmp
        - Src:             'str.c:1366,7'
          Dst:             strncasecmp
        - Src:             'str.c:1370,7'
          Dst:             strncasecmp
        - Src:             'str.c:1374,7'
          Dst:             strncasecmp
        - Src:             'str.c:1378,7'
          Dst:             strncasecmp
        - Src:             'str.c:1382,7'
          Dst:             strncasecmp
        - Src:             'str.c:1386,3'
          Dst:             __errno_location
    - functionName:    pr_str_get_token
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1344
      functionLinenumberEnd: 1345
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_str_get_token2
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:1345,10'
          Dst:             pr_str_get_token2
    - functionName:    pr_str_get_token2
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1309
      functionLinenumberEnd: 1342
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          149
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - strchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:1322,5'
          Dst:             __errno_location
        - Src:             'str.c:1328,20'
          Dst:             strchr
    - functionName:    pr_str_get_word
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1242
      functionLinenumberEnd: 1303
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         58
      ICount:          335
      EdgeCount:       78
      CyclomaticComplexity: 22
      functionsReached:
        - __ctype_b_loc
        - __errno_location
        - pr_signals_handle
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:1249,5'
          Dst:             __errno_location
        - Src:             'str.c:1254,20'
          Dst:             __ctype_b_loc
        - Src:             'str.c:1255,7'
          Dst:             pr_signals_handle
        - Src:             'str.c:1280,50'
          Dst:             __ctype_b_loc
        - Src:             'str.c:1281,5'
          Dst:             pr_signals_handle
    - functionName:    pr_str_get_nbytes
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1167
      functionLinenumberEnd: 1240
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          200
      EdgeCount:       55
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - strncasecmp
        - strtoull
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:1173,5'
          Dst:             __errno_location
        - Src:             'str.c:1179,5'
          Dst:             __errno_location
        - Src:             'str.c:1187,14'
          Dst:             strncasecmp
        - Src:             'str.c:1190,14'
          Dst:             strncasecmp
        - Src:             'str.c:1193,14'
          Dst:             strncasecmp
        - Src:             'str.c:1196,14'
          Dst:             strncasecmp
        - Src:             'str.c:1199,14'
          Dst:             strncasecmp
        - Src:             'str.c:1203,5'
          Dst:             __errno_location
        - Src:             'str.c:1207,3'
          Dst:             __errno_location
        - Src:             'str.c:1210,8'
          Dst:             strtoull
        - Src:             'str.c:1215,7'
          Dst:             __errno_location
        - Src:             'str.c:1221,5'
          Dst:             __errno_location
        - Src:             'str.c:1231,5'
          Dst:             __errno_location
    - functionName:    strtoull
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_str_get_duration
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1034
      functionLinenumberEnd: 1165
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         66
      ICount:          360
      EdgeCount:       92
      CyclomaticComplexity: 28
      functionsReached:
        - __errno_location
        - __isoc99_sscanf
        - pr_strnrstr
        - strlen
        - strtol
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:1041,5'
          Dst:             __errno_location
        - Src:             'str.c:1045,7'
          Dst:             __isoc99_sscanf
        - Src:             'str.c:1049,7'
          Dst:             __errno_location
        - Src:             'str.c:1060,9'
          Dst:             strlen
        - Src:             'str.c:1062,5'
          Dst:             __errno_location
        - Src:             'str.c:1075,16'
          Dst:             pr_strnrstr
        - Src:             'str.c:1077,18'
          Dst:             pr_strnrstr
        - Src:             'str.c:1082,9'
          Dst:             __isoc99_sscanf
        - Src:             'str.c:1084,9'
          Dst:             __errno_location
        - Src:             'str.c:1095,5'
          Dst:             __errno_location
        - Src:             'str.c:1099,16'
          Dst:             pr_strnrstr
        - Src:             'str.c:1101,18'
          Dst:             pr_strnrstr
        - Src:             'str.c:1106,9'
          Dst:             __isoc99_sscanf
        - Src:             'str.c:1108,9'
          Dst:             __errno_location
        - Src:             'str.c:1119,5'
          Dst:             __errno_location
        - Src:             'str.c:1123,16'
          Dst:             pr_strnrstr
        - Src:             'str.c:1125,18'
          Dst:             pr_strnrstr
        - Src:             'str.c:1130,9'
          Dst:             __isoc99_sscanf
        - Src:             'str.c:1132,9'
          Dst:             __errno_location
        - Src:             'str.c:1143,5'
          Dst:             __errno_location
        - Src:             'str.c:1148,16'
          Dst:             strtol
        - Src:             'str.c:1151,5'
          Dst:             __errno_location
        - Src:             'str.c:1156,5'
          Dst:             __errno_location
    - functionName:    __isoc99_sscanf
      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:    pr_strnrstr
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          172
      EdgeCount:       48
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - strlen
        - strncasecmp
        - strncmp
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:408,5'
          Dst:             __errno_location
        - Src:             'str.c:413,12'
          Dst:             strlen
        - Src:             'str.c:417,17'
          Dst:             strlen
        - Src:             'str.c:435,9'
          Dst:             strncasecmp
        - Src:             'str.c:440,9'
          Dst:             strncmp
    - functionName:    pr_gid2str
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1012
      functionLinenumberEnd: 1031
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - pr_snprintf
        - pstrdup
      functionUses:    46
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:1020,5'
          Dst:             pr_snprintf
        - Src:             'str.c:1023,5'
          Dst:             pr_snprintf
        - Src:             'str.c:1027,12'
          Dst:             pstrdup
    - functionName:    pstrdup
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          63
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - palloc
        - sstrncpy
        - strlen
      functionUses:    324
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:273,5'
          Dst:             __errno_location
        - Src:             'str.c:277,9'
          Dst:             strlen
        - Src:             'str.c:279,9'
          Dst:             palloc
        - Src:             'str.c:281,5'
          Dst:             sstrncpy
    - functionName:    pr_uid2str
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 991
      functionLinenumberEnd: 1010
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - pr_snprintf
        - pstrdup
      functionUses:    46
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:999,5'
          Dst:             pr_snprintf
        - Src:             'str.c:1002,5'
          Dst:             pr_snprintf
        - Src:             'str.c:1006,12'
          Dst:             pstrdup
    - functionName:    pr_str2gid
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 955
      functionLinenumberEnd: 989
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - parse_ul
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:963,5'
          Dst:             __errno_location
        - Src:             'str.c:982,7'
          Dst:             parse_ul
    - functionName:    parse_ul
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 525
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - strtoul
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:517,9'
          Dst:             strtoul
        - Src:             'str.c:519,5'
          Dst:             __errno_location
    - functionName:    strtoul
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_str2uid
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 919
      functionLinenumberEnd: 953
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - parse_ul
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:927,5'
          Dst:             __errno_location
        - Src:             'str.c:946,7'
          Dst:             parse_ul
    - functionName:    pr_str_array_to_text
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 893
      functionLinenumberEnd: 917
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          116
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pstrcat
        - pstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:900,5'
          Dst:             __errno_location
        - Src:             'str.c:905,12'
          Dst:             pstrdup
        - Src:             'str.c:913,12'
          Dst:             pstrcat
    - functionName:    pstrcat
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          135
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pcalloc
        - sstrcat
        - strlen
      functionUses:    1086
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:373,5'
          Dst:             __errno_location
        - Src:             'str.c:380,12'
          Dst:             strlen
        - Src:             'str.c:385,15'
          Dst:             pcalloc
        - Src:             'str.c:392,14'
          Dst:             strlen
        - Src:             'str.c:393,5'
          Dst:             sstrcat
    - functionName:    sstrcat
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          132
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
      functionUses:    40
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:238,5'
          Dst:             __errno_location
    - functionName:    pr_str_text_to_array
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 839
      functionLinenumberEnd: 890
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          155
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - make_array
        - memchr
        - palloc
        - pr_signals_handle
        - pstrdup
        - push_array
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:846,5'
          Dst:             __errno_location
        - Src:             'str.c:850,14'
          Dst:             strlen
        - Src:             'str.c:851,11'
          Dst:             make_array
        - Src:             'str.c:857,9'
          Dst:             memchr
        - Src:             'str.c:861,5'
          Dst:             pr_signals_handle
        - Src:             'str.c:867,14'
          Dst:             palloc
        - Src:             'str.c:870,19'
          Dst:             push_array
        - Src:             'str.c:882,11'
          Dst:             memchr
        - Src:             'str.c:886,38'
          Dst:             pstrdup
        - Src:             'str.c:886,17'
          Dst:             push_array
    - functionName:    distance_cmp
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 728
      functionLinenumberEnd: 750
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          81
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strcasecmp
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:746,12'
          Dst:             strcasecmp
        - Src:             'str.c:749,10'
          Dst:             strcmp
    - functionName:    pr_str_get_similars
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 753
      functionLinenumberEnd: 837
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          269
      EdgeCount:       51
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - destroy_pool
        - distance_cmp
        - make_array
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
        - pr_str_levenshtein
        - push_array
        - qsort
        - strlen
        - strncasecmp
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:763,5'
          Dst:             __errno_location
        - Src:             'str.c:768,5'
          Dst:             __errno_location
        - Src:             'str.c:776,14'
          Dst:             make_sub_pool
        - Src:             'str.c:777,3'
          Dst:             pr_pool_tag
        - Src:             'str.c:783,15'
          Dst:             pcalloc
        - Src:             'str.c:785,9'
          Dst:             strlen
        - Src:             'str.c:792,12'
          Dst:             pcalloc
        - Src:             'str.c:798,11'
          Dst:             strncasecmp
        - Src:             'str.c:803,11'
          Dst:             strncmp
        - Src:             'str.c:816,24'
          Dst:             pr_str_levenshtein
        - Src:             'str.c:823,3'
          Dst:             qsort
        - Src:             'str.c:823,3'
          Dst:             distance_cmp
        - Src:             'str.c:825,14'
          Dst:             make_array
        - Src:             'str.c:831,25'
          Dst:             push_array
        - Src:             'str.c:835,3'
          Dst:             destroy_pool
    - functionName:    pr_str_levenshtein
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 637
      functionLinenumberEnd: 719
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          462
      EdgeCount:       67
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
        - destroy_pool
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
        - pstrdup
        - strlen
        - tolower
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:646,5'
          Dst:             __errno_location
        - Src:             'str.c:650,10'
          Dst:             strlen
        - Src:             'str.c:651,10'
          Dst:             strlen
        - Src:             'str.c:653,14'
          Dst:             make_sub_pool
        - Src:             'str.c:654,3'
          Dst:             pr_pool_tag
        - Src:             'str.c:659,10'
          Dst:             pstrdup
        - Src:             'str.c:661,15'
          Dst:             tolower
        - Src:             'str.c:664,10'
          Dst:             pstrdup
        - Src:             'str.c:666,15'
          Dst:             tolower
        - Src:             'str.c:673,10'
          Dst:             pcalloc
        - Src:             'str.c:674,10'
          Dst:             pcalloc
        - Src:             'str.c:675,10'
          Dst:             pcalloc
        - Src:             'str.c:717,3'
          Dst:             destroy_pool
    - functionName:    c2h
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 563
      functionLinenumberEnd: 583
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          101
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_str_hex2bin
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 586
      functionLinenumberEnd: 630
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          161
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - c2h
        - palloc
        - pstrdup
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:593,5'
          Dst:             __errno_location
        - Src:             'str.c:598,15'
          Dst:             strlen
        - Src:             'str.c:602,30'
          Dst:             pstrdup
        - Src:             'str.c:607,10'
          Dst:             palloc
        - Src:             'str.c:612,9'
          Dst:             c2h
        - Src:             'str.c:613,7'
          Dst:             __errno_location
        - Src:             'str.c:617,9'
          Dst:             c2h
        - Src:             'str.c:618,7'
          Dst:             __errno_location
    - functionName:    pr_str_bin2hex
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 527
      functionLinenumberEnd: 561
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          136
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - palloc
        - pstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:536,5'
          Dst:             __errno_location
        - Src:             'str.c:541,12'
          Dst:             pstrdup
        - Src:             'str.c:551,9'
          Dst:             palloc
    - functionName:    pr_str_strip_end
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          82
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_signals_handle
        - strchr
        - strlen
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:480,5'
          Dst:             __errno_location
        - Src:             'str.c:484,9'
          Dst:             strlen
        - Src:             'str.c:486,17'
          Dst:             strchr
        - Src:             'str.c:487,5'
          Dst:             pr_signals_handle
    - functionName:    pr_str_strip
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 473
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          142
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - __ctype_b_loc
        - __errno_location
        - pstrndup
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:454,5'
          Dst:             __errno_location
        - Src:             'str.c:459,21'
          Dst:             __ctype_b_loc
        - Src:             'str.c:463,22'
          Dst:             strlen
        - Src:             'str.c:463,38'
          Dst:             __ctype_b_loc
        - Src:             'str.c:470,13'
          Dst:             pstrndup
    - functionName:    pstrndup
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - palloc
        - sstrncpy
      functionUses:    29
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:291,5'
          Dst:             __errno_location
        - Src:             'str.c:295,9'
          Dst:             palloc
        - Src:             'str.c:296,3'
          Dst:             sstrncpy
    - functionName:    pdircat
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         60
      ICount:          365
      EdgeCount:       81
      CyclomaticComplexity: 23
      functionsReached:
        - __errno_location
        - pcalloc
        - sstrcat
        - strlen
      functionUses:    36
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:308,5'
          Dst:             __errno_location
        - Src:             'str.c:330,15'
          Dst:             strlen
        - Src:             'str.c:336,24'
          Dst:             pcalloc
        - Src:             'str.c:349,7'
          Dst:             sstrcat
        - Src:             'str.c:354,14'
          Dst:             strlen
        - Src:             'str.c:355,5'
          Dst:             sstrcat
    - functionName:    str_vreplace
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          398
      EdgeCount:       69
      CyclomaticComplexity: 19
      functionsReached:
        - __errno_location
        - pcalloc
        - pr_log_pri
        - pr_signals_handle
        - sstrncpy
        - strlen
        - strncmp
        - strstr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:48,10'
          Dst:             strlen
        - Src:             'str.c:64,11'
          Dst:             strstr
        - Src:             'str.c:66,7'
          Dst:             pr_signals_handle
        - Src:             'str.c:69,9'
          Dst:             __errno_location
        - Src:             'str.c:78,14'
          Dst:             strlen
        - Src:             'str.c:79,13'
          Dst:             strstr
        - Src:             'str.c:86,24'
          Dst:             strlen
        - Src:             'str.c:86,36'
          Dst:             strlen
        - Src:             'str.c:116,5'
          Dst:             __errno_location
        - Src:             'str.c:120,24'
          Dst:             pcalloc
        - Src:             'str.c:128,7'
          Dst:             pr_signals_handle
        - Src:             'str.c:130,14'
          Dst:             strlen
        - Src:             'str.c:131,14'
          Dst:             strlen
        - Src:             'str.c:133,11'
          Dst:             strncmp
        - Src:             'str.c:134,36'
          Dst:             strlen
        - Src:             'str.c:134,9'
          Dst:             sstrncpy
        - Src:             'str.c:137,11'
          Dst:             pr_log_pri
        - Src:             'str.c:155,9'
          Dst:             pr_log_pri
    - functionName:    pr_str_replace
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - str_vreplace
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:195,5'
          Dst:             __errno_location
        - Src:             'str.c:200,9'
          Dst:             str_vreplace
    - functionName:    quote_dir
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_str_quote
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:184,10'
          Dst:             pr_str_quote
    - functionName:    pr_str_quote
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          43
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - sreplace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:176,5'
          Dst:             __errno_location
        - Src:             'str.c:180,10'
          Dst:             sreplace
    - functionName:    sreplace
      functionSourceFile: '/src/proftpd/src/str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          72
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - str_vreplace
      functionUses:    27
      BranchProfiles:  []
      Callsites:
        - Src:             'str.c:212,5'
          Dst:             __errno_location
        - Src:             'str.c:217,9'
          Dst:             str_vreplace
        - Src:             'str.c:221,7'
          Dst:             __errno_location
    - functionName:    get_setxattr_flags
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1016
      functionLinenumberEnd: 1039
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          45
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unix_flistxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 689
      functionLinenumberEnd: 705
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - flistxattr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:698,9'
          Dst:             flistxattr
    - functionName:    flistxattr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unix_llistxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 664
      functionLinenumberEnd: 686
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - listxattr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:679,9'
          Dst:             listxattr
    - functionName:    listxattr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_xattr_namelist
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 597
      functionLinenumberEnd: 642
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          76
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - make_array
        - pr_signals_handle
        - pstrndup
        - push_array
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:601,11'
          Dst:             make_array
        - Src:             'fsio.c:630,5'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:635,38'
          Dst:             pstrndup
        - Src:             'fsio.c:635,17'
          Dst:             push_array
    - functionName:    unix_listxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 645
      functionLinenumberEnd: 661
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - listxattr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:654,9'
          Dst:             listxattr
    - functionName:    fs_statcache_evict
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1310
      functionLinenumberEnd: 1344
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          89
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - destroy_pool
        - pr_table_remove
        - pr_trace_msg
        - xaset_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1317,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1331,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1335,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1340,10'
          Dst:             pr_table_remove
        - Src:             'fsio.c:1341,10'
          Dst:             xaset_remove
        - Src:             'fsio.c:1342,3'
          Dst:             destroy_pool
    - functionName:    fs_statcache_add
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1351
      functionLinenumberEnd: 1401
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - int
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          187
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - destroy_pool
        - fs_statcache_evict
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
        - pr_table_add
        - pr_table_count
        - pr_trace_msg
        - pstrndup
        - strerror
        - xaset_insert_end
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1362,17'
          Dst:             pr_table_count
        - Src:             'fsio.c:1366,9'
          Dst:             fs_statcache_evict
        - Src:             'fsio.c:1368,69'
          Dst:             __errno_location
        - Src:             'fsio.c:1368,60'
          Dst:             strerror
        - Src:             'fsio.c:1367,7'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1375,13'
          Dst:             make_sub_pool
        - Src:             'fsio.c:1376,3'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:1377,8'
          Dst:             pcalloc
        - Src:             'fsio.c:1379,17'
          Dst:             pstrndup
        - Src:             'fsio.c:1385,9'
          Dst:             pr_table_add
        - Src:             'fsio.c:1387,21'
          Dst:             __errno_location
        - Src:             'fsio.c:1393,5'
          Dst:             destroy_pool
        - Src:             'fsio.c:1394,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1397,5'
          Dst:             xaset_insert_end
    - functionName:    fs_statcache_get
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1275
      functionLinenumberEnd: 1307
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          105
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - destroy_pool
        - pr_table_count
        - pr_table_get
        - pr_table_remove
        - pr_trace_msg
        - xaset_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1278,7'
          Dst:             pr_table_count
        - Src:             'fsio.c:1279,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1283,8'
          Dst:             pr_table_get
        - Src:             'fsio.c:1290,7'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1296,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1300,12'
          Dst:             pr_table_remove
        - Src:             'fsio.c:1301,12'
          Dst:             xaset_remove
        - Src:             'fsio.c:1302,5'
          Dst:             destroy_pool
        - Src:             'fsio.c:1305,3'
          Dst:             __errno_location
    - functionName:    sys_rmdir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1210
      functionLinenumberEnd: 1222
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - chroot_allow_path
        - rmdir
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1214,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:1220,9'
          Dst:             rmdir
    - functionName:    chroot_allow_path
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          108
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - pr_log_debug
        - pr_trace_msg
        - strcmp
        - strlen
        - strncmp
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:134,14'
          Dst:             strlen
        - Src:             'fsio.c:141,9'
          Dst:             strcmp
        - Src:             'fsio.c:142,9'
          Dst:             strcmp
        - Src:             'fsio.c:147,9'
          Dst:             strncmp
        - Src:             'fsio.c:148,9'
          Dst:             strncmp
        - Src:             'fsio.c:154,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:156,5'
          Dst:             pr_log_debug
        - Src:             'fsio.c:160,5'
          Dst:             __errno_location
    - functionName:    rmdir
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sys_mkdir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1196
      functionLinenumberEnd: 1208
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - chroot_allow_path
        - mkdir
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1200,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:1206,9'
          Dst:             mkdir
    - functionName:    mkdir
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sys_readdir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1192
      functionLinenumberEnd: 1193
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - readdir
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1193,10'
          Dst:             readdir
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sys_opendir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1184
      functionLinenumberEnd: 1185
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - opendir
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1185,10'
          Dst:             opendir
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sys_chroot
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1166
      functionLinenumberEnd: 1173
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - chroot
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1167,7'
          Dst:             chroot
    - functionName:    chroot
      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:    sys_chdir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1175
      functionLinenumberEnd: 1182
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - chdir
        - pr_fs_setcwd
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1176,7'
          Dst:             chdir
        - Src:             'fsio.c:1180,3'
          Dst:             pr_fs_setcwd
    - functionName:    chdir
      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:    pr_fs_setcwd
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2657
      functionLinenumberEnd: 2671
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          45
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - lookup_dir_fs
        - pr_fs_resolve_path
        - sstrncpy
        - strlen
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:2658,7'
          Dst:             pr_fs_resolve_path
        - Src:             'fsio.c:2662,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:2666,12'
          Dst:             lookup_dir_fs
        - Src:             'fsio.c:2668,13'
          Dst:             strlen
    - functionName:    pr_fs_resolve_path
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3136
      functionLinenumberEnd: 3309
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         90
      ICount:          540
      EdgeCount:       123
      CyclomaticComplexity: 35
      functionsReached:
        - __errno_location
        - cache_stat
        - lookup_dir_fs
        - pr_fs_interpolate
        - pr_fsio_readlink
        - pr_signals_handle
        - sstrcat
        - sstrncpy
        - strchr
        - strlen
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:3150,5'
          Dst:             __errno_location
        - Src:             'fsio.c:3154,7'
          Dst:             pr_fs_interpolate
        - Src:             'fsio.c:3155,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:3159,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:3169,7'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:3171,11'
          Dst:             strncmp
        - Src:             'fsio.c:3177,11'
          Dst:             strncmp
        - Src:             'fsio.c:3183,11'
          Dst:             strncmp
        - Src:             'fsio.c:3197,13'
          Dst:             strchr
        - Src:             'fsio.c:3199,27'
          Dst:             strlen
        - Src:             'fsio.c:3210,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:3216,11'
          Dst:             sstrcat
        - Src:             'fsio.c:3220,9'
          Dst:             sstrcat
        - Src:             'fsio.c:3223,7'
          Dst:             sstrcat
        - Src:             'fsio.c:3227,12'
          Dst:             lookup_dir_fs
        - Src:             'fsio.c:3228,11'
          Dst:             cache_stat
        - Src:             'fsio.c:3229,9'
          Dst:             __errno_location
        - Src:             'fsio.c:3239,11'
          Dst:             __errno_location
        - Src:             'fsio.c:3247,11'
          Dst:             __errno_location
        - Src:             'fsio.c:3251,15'
          Dst:             pr_fsio_readlink
        - Src:             'fsio.c:3253,11'
          Dst:             __errno_location
        - Src:             'fsio.c:3272,11'
          Dst:             sstrncpy
        - Src:             'fsio.c:3274,15'
          Dst:             pr_fs_interpolate
        - Src:             'fsio.c:3280,11'
          Dst:             sstrcat
        - Src:             'fsio.c:3281,11'
          Dst:             sstrcat
        - Src:             'fsio.c:3284,9'
          Dst:             sstrncpy
        - Src:             'fsio.c:3290,9'
          Dst:             sstrncpy
        - Src:             'fsio.c:3295,9'
          Dst:             __errno_location
        - Src:             'fsio.c:3299,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:3304,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:3307,3'
          Dst:             sstrncpy
    - functionName:    lookup_dir_fs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1525
      functionLinenumberEnd: 1566
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          124
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - pr_fs_dircat
        - pr_fs_valid_path
        - pr_get_fs
        - sstrcat
        - sstrncpy
        - strlen
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1533,3'
          Dst:             sstrncpy
        - Src:             'fsio.c:1539,7'
          Dst:             pr_fs_valid_path
        - Src:             'fsio.c:1540,9'
          Dst:             pr_fs_dircat
        - Src:             'fsio.c:1545,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:1552,17'
          Dst:             strlen
        - Src:             'fsio.c:1557,5'
          Dst:             sstrcat
        - Src:             'fsio.c:1560,8'
          Dst:             pr_get_fs
    - functionName:    pr_fs_valid_path
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3718
      functionLinenumberEnd: 3745
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          112
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - strlen
        - strncmp
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:3720,5'
          Dst:             __errno_location
        - Src:             'fsio.c:3732,39'
          Dst:             strlen
        - Src:             'fsio.c:3732,11'
          Dst:             strncmp
        - Src:             'fsio.c:3743,3'
          Dst:             __errno_location
    - functionName:    pr_fs_dircat
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2681
      functionLinenumberEnd: 2776
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          296
      EdgeCount:       53
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - sstrcat
        - sstrncpy
        - strdup
        - strlen
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:2692,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2698,13'
          Dst:             strlen
        - Src:             'fsio.c:2699,13'
          Dst:             strlen
        - Src:             'fsio.c:2711,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:2713,5'
          Dst:             sstrcat
        - Src:             'fsio.c:2719,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:2721,5'
          Dst:             sstrcat
        - Src:             'fsio.c:2726,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2731,11'
          Dst:             strdup
        - Src:             'fsio.c:2736,11'
          Dst:             strdup
        - Src:             'fsio.c:2738,18'
          Dst:             __errno_location
        - Src:             'fsio.c:2742,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2747,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:2754,3'
          Dst:             sstrncpy
        - Src:             'fsio.c:2760,5'
          Dst:             sstrcat
        - Src:             'fsio.c:2765,3'
          Dst:             sstrcat
    - functionName:    pr_get_fs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2581
      functionLinenumberEnd: 2655
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          191
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - strcmp
        - strlen
        - strncmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:2587,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2619,23'
          Dst:             strlen
        - Src:             'fsio.c:2620,37'
          Dst:             strlen
        - Src:             'fsio.c:2620,10'
          Dst:             strncmp
        - Src:             'fsio.c:2624,11'
          Dst:             strcmp
    - functionName:    pr_fs_interpolate
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2785
      functionLinenumberEnd: 2931
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          357
      EdgeCount:       87
      CyclomaticComplexity: 25
      functionsReached:
        - __errno_location
        - destroy_pool
        - make_sub_pool
        - pr_auth_getpwnam
        - pr_fsio_stat
        - pr_pool_tag
        - sstrncpy
        - strchr
        - strcmp
        - strlen
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:2793,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2798,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:2815,13'
          Dst:             strlen
        - Src:             'fsio.c:2821,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:2829,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:2834,9'
          Dst:             strchr
        - Src:             'fsio.c:2845,9'
          Dst:             pr_fsio_stat
        - Src:             'fsio.c:2850,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:2862,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:2875,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:2881,9'
          Dst:             strcmp
        - Src:             'fsio.c:2883,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:2897,11'
          Dst:             make_sub_pool
        - Src:             'fsio.c:2898,7'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:2900,12'
          Dst:             pr_auth_getpwnam
        - Src:             'fsio.c:2902,9'
          Dst:             destroy_pool
        - Src:             'fsio.c:2903,9'
          Dst:             __errno_location
        - Src:             'fsio.c:2907,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:2910,7'
          Dst:             destroy_pool
        - Src:             'fsio.c:2915,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:2918,13'
          Dst:             strlen
        - Src:             'fsio.c:2927,5'
          Dst:             sstrncpy
    - functionName:    cache_stat
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1404
      functionLinenumberEnd: 1510
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          314
      EdgeCount:       51
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - fs_statcache_add
        - fs_statcache_get
        - pr_fs_clean_path2
        - pr_trace_msg
        - sstrcat
        - sstrncpy
        - strerror
        - strlen
        - strncmp
        - time
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1414,9'
          Dst:             time
        - Src:             'fsio.c:1426,7'
          Dst:             sstrcat
        - Src:             'fsio.c:1433,11'
          Dst:             strncmp
        - Src:             'fsio.c:1434,9'
          Dst:             sstrcat
        - Src:             'fsio.c:1439,11'
          Dst:             strncmp
        - Src:             'fsio.c:1440,9'
          Dst:             sstrcat
        - Src:             'fsio.c:1444,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:1447,5'
          Dst:             pr_fs_clean_path2
        - Src:             'fsio.c:1450,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:1465,14'
          Dst:             strlen
        - Src:             'fsio.c:1467,8'
          Dst:             fs_statcache_get
        - Src:             'fsio.c:1475,7'
          Dst:             strerror
        - Src:             'fsio.c:1472,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1478,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1483,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1486,12'
          Dst:             __errno_location
        - Src:             'fsio.c:1493,9'
          Dst:             fs_statcache_add
        - Src:             'fsio.c:1497,71'
          Dst:             __errno_location
        - Src:             'fsio.c:1497,62'
          Dst:             strerror
        - Src:             'fsio.c:1496,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1502,15'
          Dst:             strerror
        - Src:             'fsio.c:1500,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1506,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_readlink
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4891
      functionLinenumberEnd: 4918
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          109
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - lookup_file_fs
        - pr_trace_msg
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4897,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4901,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:4913,3'
          Dst:             pr_trace_msg
    - functionName:    lookup_file_fs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1573
      functionLinenumberEnd: 1653
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          252
      EdgeCount:       57
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - lookup_dir_fs
        - lookup_file_canon_fs
        - strchr
      functionUses:    26
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1579,7'
          Dst:             strchr
        - Src:             'fsio.c:1580,12'
          Dst:             lookup_dir_fs
        - Src:             'fsio.c:1604,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1628,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1635,9'
          Dst:             strchr
        - Src:             'fsio.c:1645,14'
          Dst:             lookup_file_canon_fs
    - functionName:    lookup_file_canon_fs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1655
      functionLinenumberEnd: 1679
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          98
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - lookup_file_fs
        - pr_fs_dircat
        - pr_fs_interpolate
        - pr_fs_resolve_partial
        - sstrncpy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1660,7'
          Dst:             pr_fs_resolve_partial
        - Src:             'fsio.c:1663,11'
          Dst:             pr_fs_interpolate
        - Src:             'fsio.c:1664,9'
          Dst:             sstrncpy
        - Src:             'fsio.c:1668,11'
          Dst:             pr_fs_dircat
        - Src:             'fsio.c:1678,10'
          Dst:             lookup_file_fs
    - functionName:    pr_fs_resolve_partial
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2933
      functionLinenumberEnd: 3134
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         102
      ICount:          599
      EdgeCount:       137
      CyclomaticComplexity: 37
      functionsReached:
        - __errno_location
        - cache_stat
        - lookup_dir_fs
        - pr_fs_interpolate
        - pr_fsio_readlink
        - pr_signals_handle
        - sstrcat
        - sstrncpy
        - strchr
        - strlen
        - strncmp
      functionUses:    4
      BranchProfiles:
        - Branch String:   'fsio.c:2953,7'
          Branch Sides:    []
      Callsites:
        - Src:             'fsio.c:2947,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2953,15'
          Dst:             pr_fs_interpolate
        - Src:             'fsio.c:2958,11'
          Dst:             sstrncpy
        - Src:             'fsio.c:2959,11'
          Dst:             sstrncpy
        - Src:             'fsio.c:2964,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:2965,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:2969,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:2976,7'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:2979,11'
          Dst:             strncmp
        - Src:             'fsio.c:2985,11'
          Dst:             strncmp
        - Src:             'fsio.c:3001,11'
          Dst:             strncmp
        - Src:             'fsio.c:3007,11'
          Dst:             strncmp
        - Src:             'fsio.c:3022,13'
          Dst:             strchr
        - Src:             'fsio.c:3024,27'
          Dst:             strlen
        - Src:             'fsio.c:3035,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:3042,11'
          Dst:             sstrcat
        - Src:             'fsio.c:3046,9'
          Dst:             sstrcat
        - Src:             'fsio.c:3049,7'
          Dst:             sstrcat
        - Src:             'fsio.c:3053,12'
          Dst:             lookup_dir_fs
        - Src:             'fsio.c:3055,11'
          Dst:             cache_stat
        - Src:             'fsio.c:3065,11'
          Dst:             __errno_location
        - Src:             'fsio.c:3073,11'
          Dst:             __errno_location
        - Src:             'fsio.c:3077,15'
          Dst:             pr_fsio_readlink
        - Src:             'fsio.c:3079,11'
          Dst:             __errno_location
        - Src:             'fsio.c:3097,11'
          Dst:             sstrncpy
        - Src:             'fsio.c:3099,15'
          Dst:             pr_fs_interpolate
        - Src:             'fsio.c:3105,11'
          Dst:             sstrcat
        - Src:             'fsio.c:3106,11'
          Dst:             sstrcat
        - Src:             'fsio.c:3109,9'
          Dst:             sstrncpy
        - Src:             'fsio.c:3115,9'
          Dst:             sstrncpy
        - Src:             'fsio.c:3120,9'
          Dst:             __errno_location
        - Src:             'fsio.c:3124,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:3129,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:3132,3'
          Dst:             sstrncpy
    - functionName:    pr_fs_clean_path2
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3311
      functionLinenumberEnd: 3434
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          349
      EdgeCount:       87
      CyclomaticComplexity: 24
      functionsReached:
        - __errno_location
        - pr_signals_handle
        - sstrcat
        - sstrncpy
        - strchr
        - strlen
        - strncmp
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:3319,5'
          Dst:             __errno_location
        - Src:             'fsio.c:3327,3'
          Dst:             sstrncpy
        - Src:             'fsio.c:3339,7'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:3341,11'
          Dst:             strncmp
        - Src:             'fsio.c:3347,11'
          Dst:             strncmp
        - Src:             'fsio.c:3353,11'
          Dst:             strncmp
        - Src:             'fsio.c:3358,11'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:3372,11'
          Dst:             strncmp
        - Src:             'fsio.c:3377,11'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:3389,13'
          Dst:             strchr
        - Src:             'fsio.c:3391,27'
          Dst:             strlen
        - Src:             'fsio.c:3402,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:3408,11'
          Dst:             sstrcat
        - Src:             'fsio.c:3414,11'
          Dst:             sstrcat
        - Src:             'fsio.c:3419,7'
          Dst:             sstrcat
        - Src:             'fsio.c:3424,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:3429,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:3432,3'
          Dst:             sstrncpy
    - functionName:    sys_stat
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:204,10'
          Dst:             stat
    - functionName:    sys_lstat
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lstat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:212,10'
          Dst:             lstat
    - functionName:    pr_fsio_stat
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4768
      functionLinenumberEnd: 4792
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          109
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - cache_stat
        - lookup_file_fs
        - pr_trace_msg
      functionUses:    39
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4773,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4777,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:4789,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4791,10'
          Dst:             cache_stat
    - functionName:    sys_fsetxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1128
      functionLinenumberEnd: 1163
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fsetxattr
        - get_setxattr_flags
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1139,17'
          Dst:             get_setxattr_flags
        - Src:             'fsio.c:1144,9'
          Dst:             fsetxattr
    - functionName:    fsetxattr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sys_lsetxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1083
      functionLinenumberEnd: 1124
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_setxattr_flags
        - setxattr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1097,17'
          Dst:             get_setxattr_flags
        - Src:             'fsio.c:1105,9'
          Dst:             setxattr
    - functionName:    setxattr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sys_setxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1044
      functionLinenumberEnd: 1079
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_setxattr_flags
        - setxattr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1055,17'
          Dst:             get_setxattr_flags
        - Src:             'fsio.c:1060,9'
          Dst:             setxattr
    - functionName:    sys_fremovexattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 984
      functionLinenumberEnd: 1011
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fremovexattr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:996,9'
          Dst:             fremovexattr
    - functionName:    fremovexattr
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sys_lremovexattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 948
      functionLinenumberEnd: 981
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lremovexattr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:962,9'
          Dst:             lremovexattr
    - functionName:    lremovexattr
      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:    sys_removexattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 917
      functionLinenumberEnd: 944
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - removexattr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:929,9'
          Dst:             removexattr
    - functionName:    removexattr
      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:    sys_flistxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 851
      functionLinenumberEnd: 914
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          157
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - palloc
        - parse_xattr_namelist
        - pr_trace_get_level
        - pr_trace_msg
        - unix_flistxattr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:858,9'
          Dst:             unix_flistxattr
        - Src:             'fsio.c:865,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:871,14'
          Dst:             palloc
        - Src:             'fsio.c:873,9'
          Dst:             unix_flistxattr
        - Src:             'fsio.c:880,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:885,12'
          Dst:             parse_xattr_namelist
        - Src:             'fsio.c:886,7'
          Dst:             pr_trace_get_level
        - Src:             'fsio.c:894,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:897,7'
          Dst:             pr_trace_msg
    - functionName:    sys_llistxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 786
      functionLinenumberEnd: 849
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          151
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - palloc
        - parse_xattr_namelist
        - pr_trace_get_level
        - pr_trace_msg
        - unix_llistxattr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:793,9'
          Dst:             unix_llistxattr
        - Src:             'fsio.c:800,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:806,14'
          Dst:             palloc
        - Src:             'fsio.c:808,9'
          Dst:             unix_llistxattr
        - Src:             'fsio.c:815,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:820,12'
          Dst:             parse_xattr_namelist
        - Src:             'fsio.c:821,7'
          Dst:             pr_trace_get_level
        - Src:             'fsio.c:829,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:832,7'
          Dst:             pr_trace_msg
    - functionName:    sys_listxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 710
      functionLinenumberEnd: 783
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          152
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - palloc
        - parse_xattr_namelist
        - pr_trace_get_level
        - pr_trace_msg
        - unix_listxattr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:727,9'
          Dst:             unix_listxattr
        - Src:             'fsio.c:734,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:740,14'
          Dst:             palloc
        - Src:             'fsio.c:742,9'
          Dst:             unix_listxattr
        - Src:             'fsio.c:749,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:754,12'
          Dst:             parse_xattr_namelist
        - Src:             'fsio.c:755,7'
          Dst:             pr_trace_get_level
        - Src:             'fsio.c:763,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:766,7'
          Dst:             pr_trace_msg
    - functionName:    sys_fgetxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 564
      functionLinenumberEnd: 593
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fgetxattr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:576,9'
          Dst:             fgetxattr
    - functionName:    fgetxattr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sys_lgetxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 560
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lgetxattr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:539,9'
          Dst:             lgetxattr
    - functionName:    lgetxattr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sys_getxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 492
      functionLinenumberEnd: 521
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getxattr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:504,9'
          Dst:             getxattr
    - functionName:    getxattr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sys_realpath
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 488
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:488,10'
          Dst:             pstrdup
    - functionName:    sys_fsync
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 479
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fsync
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:473,9'
          Dst:             fsync
    - functionName:    fsync
      functionSourceFile: ''
      linkageType:     externalLinkage
      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:    sys_futimes
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 467
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - futimes
        - sys_utimes
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:457,9'
          Dst:             futimes
        - Src:             'fsio.c:459,7'
          Dst:             __errno_location
        - Src:             'fsio.c:460,12'
          Dst:             sys_utimes
    - functionName:    futimes
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sys_utimes
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 435
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - chroot_allow_path
        - utimes
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:439,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:445,9'
          Dst:             utimes
    - functionName:    utimes
      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:    sys_faccess
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sys_access
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:432,10'
          Dst:             sys_access
    - functionName:    sys_access
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 420
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_fs_have_access
        - pr_fsio_stat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:423,7'
          Dst:             pr_fsio_stat
        - Src:             'fsio.c:427,10'
          Dst:             pr_fs_have_access
    - functionName:    pr_fs_have_access
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7296
      functionLinenumberEnd: 7368
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          223
      EdgeCount:       56
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:7300,5'
          Dst:             __errno_location
        - Src:             'fsio.c:7347,7'
          Dst:             __errno_location
        - Src:             'fsio.c:7354,7'
          Dst:             __errno_location
        - Src:             'fsio.c:7361,7'
          Dst:             __errno_location
    - functionName:    sys_lchown
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - chroot_allow_path
        - lchown
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:405,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:411,9'
          Dst:             lchown
    - functionName:    lchown
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sys_fchown
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fchown
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:398,10'
          Dst:             fchown
    - functionName:    fchown
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sys_chown
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 395
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - chown
        - chroot_allow_path
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:387,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:393,9'
          Dst:             chown
    - functionName:    chown
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sys_fchmod
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fchmod
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:380,10'
          Dst:             fchmod
    - functionName:    sys_chmod
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - chmod
        - chroot_allow_path
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:369,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:375,9'
          Dst:             chmod
    - functionName:    chmod
      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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sys_truncate
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 363
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - chroot_allow_path
        - truncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:355,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:361,9'
          Dst:             truncate
    - functionName:    truncate
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sys_ftruncate
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 347
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ftruncate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:348,10'
          Dst:             ftruncate
    - functionName:    ftruncate
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sys_symlink
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - chroot_allow_path
        - symlink
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:332,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:338,9'
          Dst:             symlink
    - functionName:    symlink
      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:    sys_readlink
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 344
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - readlink
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:344,10'
          Dst:             readlink
    - functionName:    readlink
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      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:    sys_link
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 325
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - chroot_allow_path
        - link
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:317,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:323,9'
          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:    sys_lseek
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lseek
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:309,10'
          Dst:             lseek
    - functionName:    sys_write
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:305,10'
          Dst:             write
    - functionName:    sys_pwrite
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pwrite
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:296,10'
          Dst:             pwrite
    - functionName:    sys_read
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:290,10'
          Dst:             read
    - functionName:    sys_pread
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pread
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:281,10'
          Dst:             pread
    - functionName:    pread
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sys_close
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:275,10'
          Dst:             close
    - functionName:    sys_open
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          61
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - chroot_allow_path
        - open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:263,13'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:270,9'
          Dst:             open
    - functionName:    sys_unlink
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - chroot_allow_path
        - unlink
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:238,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:244,9'
          Dst:             unlink
    - functionName:    sys_rename
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          63
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - chroot_allow_path
        - rename
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:219,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:224,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:230,9'
          Dst:             rename
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sys_fstat
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fstat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:208,10'
          Dst:             fstat
    - functionName:    init_fs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7500
      functionLinenumberEnd: 7584
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          208
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - exit
        - getcwd
        - make_sub_pool
        - pr_create_fs
        - pr_fs_setcwd
        - pr_fsio_chdir
        - pr_log_pri
        - pr_pool_tag
        - pr_table_alloc
        - pstrdup
        - xaset_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:7504,13'
          Dst:             pr_create_fs
        - Src:             'fsio.c:7510,5'
          Dst:             pr_log_pri
        - Src:             'fsio.c:7511,5'
          Dst:             exit
        - Src:             'fsio.c:7514,22'
          Dst:             pstrdup
        - Src:             'fsio.c:7567,7'
          Dst:             getcwd
        - Src:             'fsio.c:7569,5'
          Dst:             pr_fs_setcwd
        - Src:             'fsio.c:7572,5'
          Dst:             pr_fsio_chdir
        - Src:             'fsio.c:7573,5'
          Dst:             pr_fs_setcwd
        - Src:             'fsio.c:7577,20'
          Dst:             make_sub_pool
        - Src:             'fsio.c:7578,3'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:7579,24'
          Dst:             pr_table_alloc
        - Src:             'fsio.c:7580,24'
          Dst:             xaset_create
        - Src:             'fsio.c:7581,25'
          Dst:             pr_table_alloc
        - Src:             'fsio.c:7582,25'
          Dst:             xaset_create
    - functionName:    pr_create_fs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2333
      functionLinenumberEnd: 2361
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          90
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
        - pstrdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:2340,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2345,13'
          Dst:             make_sub_pool
        - Src:             'fsio.c:2346,3'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:2348,8'
          Dst:             pcalloc
        - Src:             'fsio.c:2351,17'
          Dst:             pstrdup
    - functionName:    sys_closedir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1188
      functionLinenumberEnd: 1189
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - closedir
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1189,10'
          Dst:             closedir
    - functionName:    getcwd
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_fsio_chdir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3907
      functionLinenumberEnd: 3947
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          127
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - lookup_dir_fs
        - pr_fs_clean_path
        - pr_fs_virtual_path
        - pr_trace_msg
        - sstrncpy
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:3913,5'
          Dst:             __errno_location
        - Src:             'fsio.c:3917,3'
          Dst:             pr_fs_clean_path
        - Src:             'fsio.c:3919,8'
          Dst:             lookup_dir_fs
        - Src:             'fsio.c:3931,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:3939,7'
          Dst:             pr_fs_virtual_path
        - Src:             'fsio.c:3942,7'
          Dst:             sstrncpy
    - functionName:    pr_fs_clean_path
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3436
      functionLinenumberEnd: 3438
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_fs_clean_path2
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:3437,3'
          Dst:             pr_fs_clean_path2
    - functionName:    pr_fs_virtual_path
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3747
      functionLinenumberEnd: 3860
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          315
      EdgeCount:       76
      CyclomaticComplexity: 21
      functionsReached:
        - pr_fs_interpolate
        - pr_signals_handle
        - sstrcat
        - sstrncpy
        - strchr
        - strlen
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:3758,7'
          Dst:             pr_fs_interpolate
        - Src:             'fsio.c:3759,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:3763,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:3778,7'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:3780,11'
          Dst:             strncmp
        - Src:             'fsio.c:3786,11'
          Dst:             strncmp
        - Src:             'fsio.c:3792,11'
          Dst:             strncmp
        - Src:             'fsio.c:3807,11'
          Dst:             strncmp
        - Src:             'fsio.c:3821,13'
          Dst:             strchr
        - Src:             'fsio.c:3823,27'
          Dst:             strlen
        - Src:             'fsio.c:3834,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:3840,11'
          Dst:             sstrcat
        - Src:             'fsio.c:3844,9'
          Dst:             sstrcat
        - Src:             'fsio.c:3847,7'
          Dst:             sstrcat
        - Src:             'fsio.c:3851,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:3856,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:3859,3'
          Dst:             sstrncpy
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_resolve_fs_map
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7447
      functionLinenumberEnd: 7498
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         23
      ICount:          140
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - dir_realpath
        - fs_cmp
        - pr_signals_handle
        - pstrcat
        - qsort
        - strcmp
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:7459,5'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:7474,10'
          Dst:             strcmp
        - Src:             'fsio.c:7475,24'
          Dst:             strlen
        - Src:             'fsio.c:7479,15'
          Dst:             dir_realpath
        - Src:             'fsio.c:7483,19'
          Dst:             pstrcat
        - Src:             'fsio.c:7497,3'
          Dst:             qsort
        - Src:             'fsio.c:7497,3'
          Dst:             fs_cmp
    - functionName:    fs_cmp
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1224
      functionLinenumberEnd: 1243
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1242,10'
          Dst:             strcmp
    - functionName:    pr_fsio_puts
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7420
      functionLinenumberEnd: 7428
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_fsio_write
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:7423,5'
          Dst:             __errno_location
        - Src:             'fsio.c:7427,33'
          Dst:             strlen
        - Src:             'fsio.c:7427,10'
          Dst:             pr_fsio_write
    - functionName:    pr_fsio_write
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5397
      functionLinenumberEnd: 5420
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          107
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_trace_msg
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5403,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5415,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fs_is_nfs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7370
      functionLinenumberEnd: 7418
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          82
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - pr_trace_msg
        - statfs
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:7376,5'
          Dst:             __errno_location
        - Src:             'fsio.c:7380,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:7381,7'
          Dst:             statfs
        - Src:             'fsio.c:7382,18'
          Dst:             __errno_location
        - Src:             'fsio.c:7385,13'
          Dst:             strerror
        - Src:             'fsio.c:7384,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:7387,5'
          Dst:             __errno_location
        - Src:             'fsio.c:7400,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:7406,5'
          Dst:             pr_trace_msg
    - functionName:    statfs
      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:    pr_fs_fadvise
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7240
      functionLinenumberEnd: 7293
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - int
        - size_t
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_fs_fgetsize
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7236
      functionLinenumberEnd: 7237
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_getsize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:7237,10'
          Dst:             fs_getsize
    - functionName:    fs_getsize
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7022
      functionLinenumberEnd: 7213
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          115
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - fstatvfs
        - pr_trace_msg
        - statvfs
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:7043,5'
          Dst:             __errno_location
        - Src:             'fsio.c:7048,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:7051,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:7055,11'
          Dst:             statvfs
        - Src:             'fsio.c:7058,11'
          Dst:             fstatvfs
        - Src:             'fsio.c:7062,18'
          Dst:             __errno_location
        - Src:             'fsio.c:7066,15'
          Dst:             strerror
        - Src:             'fsio.c:7065,7'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:7070,13'
          Dst:             strerror
        - Src:             'fsio.c:7069,7'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:7073,5'
          Dst:             __errno_location
    - functionName:    statvfs
      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:    fstatvfs
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_fs_getsize2
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7232
      functionLinenumberEnd: 7233
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fs_getsize
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:7233,10'
          Dst:             fs_getsize
    - functionName:    pr_fs_getsize
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7217
      functionLinenumberEnd: 7227
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pr_fs_getsize2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:7221,9'
          Dst:             pr_fs_getsize2
        - Src:             'fsio.c:7223,5'
          Dst:             __errno_location
    - functionName:    pr_fs_get_usable_fd2
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6970
      functionLinenumberEnd: 6995
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - close
        - pr_fs_get_usable_fd
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6974,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6985,12'
          Dst:             pr_fs_get_usable_fd
        - Src:             'fsio.c:6987,12'
          Dst:             close
    - functionName:    pr_fs_get_usable_fd
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6902
      functionLinenumberEnd: 6968
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          203
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - close
        - dup
        - pr_signals_handle
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6916,5'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:6918,18'
          Dst:             dup
        - Src:             'fsio.c:6921,21'
          Dst:             __errno_location
        - Src:             'fsio.c:6925,9'
          Dst:             close
        - Src:             'fsio.c:6929,7'
          Dst:             __errno_location
        - Src:             'fsio.c:6952,9'
          Dst:             close
        - Src:             'fsio.c:6957,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6963,12'
          Dst:             close
    - functionName:    pr_fs_close_extra_fds
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6837
      functionLinenumberEnd: 6888
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         16
      ICount:          75
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - close
        - getrlimit
        - pr_signals_handle
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6849,7'
          Dst:             getrlimit
        - Src:             'fsio.c:6885,5'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:6886,12'
          Dst:             close
    - functionName:    getrlimit
      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:    pr_fsio_getline
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6777
      functionLinenumberEnd: 6833
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          241
      EdgeCount:       61
      CyclomaticComplexity: 17
      functionsReached:
        - __ctype_b_loc
        - __errno_location
        - pr_fsio_gets
        - pr_signals_handle
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6784,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6789,10'
          Dst:             pr_fsio_gets
        - Src:             'fsio.c:6790,5'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:6792,13'
          Dst:             strlen
        - Src:             'fsio.c:6809,37'
          Dst:             __ctype_b_loc
    - functionName:    pr_fsio_gets
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6686
      functionLinenumberEnd: 6768
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          351
      EdgeCount:       69
      CyclomaticComplexity: 20
      functionsReached:
        - __errno_location
        - pcalloc
        - pr_fsio_read
        - pr_signals_handle
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6694,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6706,18'
          Dst:             pcalloc
        - Src:             'fsio.c:6707,45'
          Dst:             pcalloc
        - Src:             'fsio.c:6715,5'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:6720,16'
          Dst:             pr_fsio_read
        - Src:             'fsio.c:6744,7'
          Dst:             pr_signals_handle
    - functionName:    pr_fsio_read
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5315
      functionLinenumberEnd: 5339
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          115
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pr_trace_msg
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5322,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5334,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_getpipebuf
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6647
      functionLinenumberEnd: 6684
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - palloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6652,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6657,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6682,9'
          Dst:             palloc
    - functionName:    pr_fsio_chroot_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6625
      functionLinenumberEnd: 6644
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          78
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_error_create
        - pr_error_destroy
        - pr_error_explain_chroot
        - pr_fsio_chroot
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6628,9'
          Dst:             pr_fsio_chroot
        - Src:             'fsio.c:6630,18'
          Dst:             __errno_location
        - Src:             'fsio.c:6634,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:6635,11'
          Dst:             pr_error_explain_chroot
        - Src:             'fsio.c:6636,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:6641,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_chroot
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6525
      functionLinenumberEnd: 6623
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         44
      ICount:          330
      EdgeCount:       58
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - destroy_pool
        - fs_cmp
        - lookup_dir_fs
        - make_array
        - make_sub_pool
        - pr_pool_tag
        - pr_signals_handle
        - pr_trace_msg
        - push_array
        - qsort
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6530,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6534,8'
          Dst:             lookup_dir_fs
        - Src:             'fsio.c:6546,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:6549,12'
          Dst:             __errno_location
        - Src:             'fsio.c:6557,22'
          Dst:             make_sub_pool
        - Src:             'fsio.c:6558,29'
          Dst:             make_array
        - Src:             'fsio.c:6561,5'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:6568,38'
          Dst:             strlen
        - Src:             'fsio.c:6568,11'
          Dst:             strncmp
        - Src:             'fsio.c:6569,44'
          Dst:             strlen
        - Src:             'fsio.c:6570,11'
          Dst:             strlen
        - Src:             'fsio.c:6570,33'
          Dst:             strlen
        - Src:             'fsio.c:6573,22'
          Dst:             push_array
        - Src:             'fsio.c:6587,41'
          Dst:             strlen
        - Src:             'fsio.c:6587,11'
          Dst:             strncmp
        - Src:             'fsio.c:6590,50'
          Dst:             strlen
        - Src:             'fsio.c:6591,11'
          Dst:             strlen
        - Src:             'fsio.c:6591,36'
          Dst:             strlen
        - Src:             'fsio.c:6596,11'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:6598,50'
          Dst:             strlen
        - Src:             'fsio.c:6599,13'
          Dst:             strlen
        - Src:             'fsio.c:6599,37'
          Dst:             strlen
        - Src:             'fsio.c:6606,22'
          Dst:             push_array
        - Src:             'fsio.c:6610,5'
          Dst:             qsort
        - Src:             'fsio.c:6610,5'
          Dst:             fs_cmp
        - Src:             'fsio.c:6614,7'
          Dst:             destroy_pool
        - Src:             'fsio.c:6621,3'
          Dst:             __errno_location
    - functionName:    pr_fsio_lsetxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6456
      functionLinenumberEnd: 6488
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          137
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - lookup_file_fs
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6463,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6468,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6472,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:6484,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_setxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6421
      functionLinenumberEnd: 6453
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          137
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - lookup_file_fs
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6428,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6433,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6437,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:6449,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_fremovexattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6390
      functionLinenumberEnd: 6418
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          125
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6397,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6402,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6414,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_lremovexattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6356
      functionLinenumberEnd: 6388
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          128
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - lookup_file_fs
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6363,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6368,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6372,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:6384,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_removexattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6322
      functionLinenumberEnd: 6354
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          128
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - lookup_file_fs
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6329,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6334,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6338,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:6350,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_llistxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6258
      functionLinenumberEnd: 6290
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          128
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - lookup_file_fs
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6265,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6270,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6274,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:6286,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_listxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6224
      functionLinenumberEnd: 6256
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          128
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - lookup_file_fs
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6231,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6236,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6240,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:6252,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_lgetxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6159
      functionLinenumberEnd: 6191
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          134
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - lookup_file_fs
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6166,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6171,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6175,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:6187,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_getxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6124
      functionLinenumberEnd: 6156
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          134
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - lookup_file_fs
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6131,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6136,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6140,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:6152,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_realpath
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6094
      functionLinenumberEnd: 6121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          106
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - lookup_file_fs
        - pr_trace_msg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6100,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6104,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:6116,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_fsync
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6067
      functionLinenumberEnd: 6092
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          105
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_fs_clear_cache2
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6072,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6084,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:6088,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fs_clear_cache2
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1764
      functionLinenumberEnd: 1841
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          214
      EdgeCount:       43
      CyclomaticComplexity: 12
      functionsReached:
        - destroy_pool
        - pr_event_generate
        - pr_fs_clean_path2
        - pr_fs_statcache_reset
        - pr_table_count
        - pr_table_exists
        - pr_table_remove
        - pr_trace_msg
        - sstrcat
        - sstrncpy
        - strncmp
        - xaset_remove
      functionUses:    63
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1767,10'
          Dst:             pr_event_generate
        - Src:             'fsio.c:1769,7'
          Dst:             pr_table_count
        - Src:             'fsio.c:1770,7'
          Dst:             pr_table_count
        - Src:             'fsio.c:1784,7'
          Dst:             sstrcat
        - Src:             'fsio.c:1787,11'
          Dst:             strncmp
        - Src:             'fsio.c:1788,9'
          Dst:             sstrcat
        - Src:             'fsio.c:1792,11'
          Dst:             strncmp
        - Src:             'fsio.c:1793,9'
          Dst:             sstrcat
        - Src:             'fsio.c:1797,7'
          Dst:             sstrncpy
        - Src:             'fsio.c:1800,5'
          Dst:             pr_fs_clean_path2
        - Src:             'fsio.c:1804,18'
          Dst:             pr_table_exists
        - Src:             'fsio.c:1808,12'
          Dst:             pr_table_remove
        - Src:             'fsio.c:1810,16'
          Dst:             xaset_remove
        - Src:             'fsio.c:1811,9'
          Dst:             destroy_pool
        - Src:             'fsio.c:1814,7'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1819,19'
          Dst:             pr_table_exists
        - Src:             'fsio.c:1823,12'
          Dst:             pr_table_remove
        - Src:             'fsio.c:1825,16'
          Dst:             xaset_remove
        - Src:             'fsio.c:1826,9'
          Dst:             destroy_pool
        - Src:             'fsio.c:1829,7'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1836,5'
          Dst:             pr_fs_statcache_reset
    - functionName:    pr_fs_statcache_reset
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1739
      functionLinenumberEnd: 1752
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - make_sub_pool
        - pr_fs_statcache_free
        - pr_pool_tag
        - pr_table_alloc
        - xaset_create
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1740,3'
          Dst:             pr_fs_statcache_free
        - Src:             'fsio.c:1743,22'
          Dst:             make_sub_pool
        - Src:             'fsio.c:1744,5'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:1747,24'
          Dst:             pr_table_alloc
        - Src:             'fsio.c:1748,24'
          Dst:             xaset_create
        - Src:             'fsio.c:1750,25'
          Dst:             pr_table_alloc
        - Src:             'fsio.c:1751,25'
          Dst:             xaset_create
    - functionName:    pr_fs_statcache_free
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1702
      functionLinenumberEnd: 1737
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         12
      ICount:          83
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - destroy_pool
        - pr_table_count
        - pr_table_empty
        - pr_table_free
        - pr_trace_msg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1706,12'
          Dst:             pr_table_count
        - Src:             'fsio.c:1707,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1710,5'
          Dst:             pr_table_empty
        - Src:             'fsio.c:1711,5'
          Dst:             pr_table_free
        - Src:             'fsio.c:1719,12'
          Dst:             pr_table_count
        - Src:             'fsio.c:1720,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1723,5'
          Dst:             pr_table_empty
        - Src:             'fsio.c:1724,5'
          Dst:             pr_table_free
        - Src:             'fsio.c:1734,5'
          Dst:             destroy_pool
    - functionName:    pr_fsio_futimes
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6039
      functionLinenumberEnd: 6065
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          116
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pr_fs_clear_cache2
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6045,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6057,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:6061,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fsio_utimes_with_root
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5979
      functionLinenumberEnd: 6037
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          169
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - pr_fs_clear_cache2
        - pr_fsio_stat
        - pr_fsio_utimes
        - pr_privs_relinquish
        - pr_privs_root
        - pr_signals_block
        - pr_signals_unblock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5983,9'
          Dst:             pr_fsio_utimes
        - Src:             'fsio.c:5984,12'
          Dst:             __errno_location
        - Src:             'fsio.c:5995,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'fsio.c:5996,7'
          Dst:             pr_fsio_stat
        - Src:             'fsio.c:5997,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6024,5'
          Dst:             pr_signals_block
        - Src:             'fsio.c:6025,5'
          Dst:             pr_privs_root
        - Src:             'fsio.c:6026,11'
          Dst:             pr_fsio_utimes
        - Src:             'fsio.c:6027,5'
          Dst:             pr_privs_relinquish
        - Src:             'fsio.c:6028,5'
          Dst:             pr_signals_unblock
        - Src:             'fsio.c:6035,3'
          Dst:             __errno_location
    - functionName:    pr_fsio_utimes
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5940
      functionLinenumberEnd: 5970
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          117
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - lookup_file_fs
        - pr_fs_clear_cache2
        - pr_trace_msg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5946,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5950,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5962,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5966,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fsio_faccess
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5919
      functionLinenumberEnd: 5938
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5923,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5935,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_access
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5893
      functionLinenumberEnd: 5916
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          104
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - lookup_file_fs
        - pr_trace_msg
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5897,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5901,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5913,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_lchown_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5870
      functionLinenumberEnd: 5889
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          86
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_error_create
        - pr_error_destroy
        - pr_error_explain_lchown
        - pr_fsio_lchown
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5873,9'
          Dst:             pr_fsio_lchown
        - Src:             'fsio.c:5875,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5879,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5880,11'
          Dst:             pr_error_explain_lchown
        - Src:             'fsio.c:5881,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5886,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_lchown
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5838
      functionLinenumberEnd: 5867
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          112
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - lookup_file_fs
        - pr_fs_clear_cache2
        - pr_trace_msg
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5843,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5847,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5859,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5863,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fsio_fchown_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5810
      functionLinenumberEnd: 5835
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          103
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_error_create
        - pr_error_destroy
        - pr_error_explain_fchown
        - pr_fsio_fchown
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5813,9'
          Dst:             pr_fsio_fchown
        - Src:             'fsio.c:5815,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5825,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5826,11'
          Dst:             pr_error_explain_fchown
        - Src:             'fsio.c:5827,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5832,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_fchown
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5782
      functionLinenumberEnd: 5807
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          111
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_fs_clear_cache2
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5787,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5799,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5803,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fsio_chown_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5760
      functionLinenumberEnd: 5779
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          86
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_error_create
        - pr_error_destroy
        - pr_error_explain_chown
        - pr_fsio_chown
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5763,9'
          Dst:             pr_fsio_chown
        - Src:             'fsio.c:5765,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5769,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5770,11'
          Dst:             pr_error_explain_chown
        - Src:             'fsio.c:5771,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5776,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_chown
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5728
      functionLinenumberEnd: 5757
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          112
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - lookup_file_fs
        - pr_fs_clear_cache2
        - pr_trace_msg
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5733,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5737,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5749,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5753,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fsio_fchmod_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5700
      functionLinenumberEnd: 5725
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          99
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_error_create
        - pr_error_destroy
        - pr_error_explain_fchmod
        - pr_fsio_fchmod
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5703,9'
          Dst:             pr_fsio_fchmod
        - Src:             'fsio.c:5705,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5715,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5716,11'
          Dst:             pr_error_explain_fchmod
        - Src:             'fsio.c:5717,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5722,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_fchmod
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5672
      functionLinenumberEnd: 5697
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          108
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_fs_clear_cache2
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5677,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5689,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5693,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fsio_chmod_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5650
      functionLinenumberEnd: 5669
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          82
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_error_create
        - pr_error_destroy
        - pr_error_explain_chmod
        - pr_fsio_chmod
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5653,9'
          Dst:             pr_fsio_chmod
        - Src:             'fsio.c:5655,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5659,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5660,11'
          Dst:             pr_error_explain_chmod
        - Src:             'fsio.c:5661,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5666,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_chmod
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5618
      functionLinenumberEnd: 5647
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          109
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - lookup_file_fs
        - pr_fs_clear_cache2
        - pr_trace_msg
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5623,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5627,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5639,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5643,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fsio_ftruncate
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5554
      functionLinenumberEnd: 5585
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          138
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pr_fs_clear_cache2
        - pr_trace_msg
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5559,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5571,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5575,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fsio_symlink
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5522
      functionLinenumberEnd: 5552
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          117
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - lookup_file_fs
        - pr_fs_clear_cache2
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5528,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5532,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5544,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5548,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fsio_link
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5475
      functionLinenumberEnd: 5520
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          172
      EdgeCount:       43
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - lookup_file_fs
        - pr_fs_clear_cache2
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5481,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5485,15'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5490,13'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5498,7'
          Dst:             __errno_location
        - Src:             'fsio.c:5512,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5516,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fsio_lseek
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5451
      functionLinenumberEnd: 5473
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_trace_msg
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5456,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5468,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_write_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5423
      functionLinenumberEnd: 5448
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          103
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_error_create
        - pr_error_destroy
        - pr_error_explain_write
        - pr_fsio_write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5426,9'
          Dst:             pr_fsio_write
        - Src:             'fsio.c:5428,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5438,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5439,11'
          Dst:             pr_error_explain_write
        - Src:             'fsio.c:5440,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5445,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_pwrite
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5371
      functionLinenumberEnd: 5395
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          111
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5377,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5389,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_read_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5342
      functionLinenumberEnd: 5367
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          103
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_error_create
        - pr_error_destroy
        - pr_error_explain_read
        - pr_fsio_read
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5345,9'
          Dst:             pr_fsio_read
        - Src:             'fsio.c:5347,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5357,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5358,11'
          Dst:             pr_error_explain_read
        - Src:             'fsio.c:5359,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5364,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_pread
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5288
      functionLinenumberEnd: 5313
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          119
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5295,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5307,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_close_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5259
      functionLinenumberEnd: 5285
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          95
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_error_create
        - pr_error_destroy
        - pr_error_explain_close
        - pr_fsio_close
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5262,9'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:5264,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5270,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5276,11'
          Dst:             pr_error_explain_close
        - Src:             'fsio.c:5277,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5282,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_close
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5217
      functionLinenumberEnd: 5257
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          156
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - destroy_pool
        - pr_fs_clear_cache2
        - pr_memscrub
        - pr_trace_msg
      functionUses:    60
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5222,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5234,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5237,12'
          Dst:             __errno_location
        - Src:             'fsio.c:5240,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'fsio.c:5248,5'
          Dst:             pr_memscrub
        - Src:             'fsio.c:5252,5'
          Dst:             destroy_pool
        - Src:             'fsio.c:5255,3'
          Dst:             __errno_location
    - functionName:    pr_fsio_open_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5195
      functionLinenumberEnd: 5214
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          81
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_error_create
        - pr_error_destroy
        - pr_error_explain_open
        - pr_fsio_open
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5198,8'
          Dst:             pr_fsio_open
        - Src:             'fsio.c:5200,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5204,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5205,11'
          Dst:             pr_error_explain_open
        - Src:             'fsio.c:5206,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5211,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_open
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5134
      functionLinenumberEnd: 5192
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          213
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - destroy_pool
        - fcntl
        - lookup_file_fs
        - make_sub_pool
        - pcalloc
        - pr_fs_clear_cache2
        - pr_pool_tag
        - pr_trace_msg
        - pstrdup
        - strerror
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5140,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5144,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5150,14'
          Dst:             make_sub_pool
        - Src:             'fsio.c:5151,3'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:5153,8'
          Dst:             pcalloc
        - Src:             'fsio.c:5155,17'
          Dst:             pstrdup
        - Src:             'fsio.c:5167,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5171,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5173,5'
          Dst:             destroy_pool
        - Src:             'fsio.c:5175,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5181,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'fsio.c:5184,7'
          Dst:             fcntl
        - Src:             'fsio.c:5185,9'
          Dst:             __errno_location
        - Src:             'fsio.c:5187,29'
          Dst:             __errno_location
        - Src:             'fsio.c:5187,20'
          Dst:             strerror
        - Src:             'fsio.c:5186,7'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_open_canon
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5073
      functionLinenumberEnd: 5132
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          215
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - destroy_pool
        - fcntl
        - lookup_file_canon_fs
        - make_sub_pool
        - pcalloc
        - pr_fs_clear_cache2
        - pr_pool_tag
        - pr_trace_msg
        - pstrdup
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5080,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5084,8'
          Dst:             lookup_file_canon_fs
        - Src:             'fsio.c:5090,14'
          Dst:             make_sub_pool
        - Src:             'fsio.c:5091,3'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:5093,8'
          Dst:             pcalloc
        - Src:             'fsio.c:5095,17'
          Dst:             pstrdup
        - Src:             'fsio.c:5107,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5111,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5113,5'
          Dst:             destroy_pool
        - Src:             'fsio.c:5115,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5121,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'fsio.c:5124,7'
          Dst:             fcntl
        - Src:             'fsio.c:5125,9'
          Dst:             __errno_location
        - Src:             'fsio.c:5127,29'
          Dst:             __errno_location
        - Src:             'fsio.c:5127,20'
          Dst:             strerror
        - Src:             'fsio.c:5126,7'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_unlink_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5051
      functionLinenumberEnd: 5070
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          78
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_error_create
        - pr_error_destroy
        - pr_error_explain_unlink
        - pr_fsio_unlink
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5054,9'
          Dst:             pr_fsio_unlink
        - Src:             'fsio.c:5056,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5060,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5061,11'
          Dst:             pr_error_explain_unlink
        - Src:             'fsio.c:5062,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5067,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_unlink
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5020
      functionLinenumberEnd: 5049
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          106
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - lookup_file_fs
        - pr_fs_clear_cache2
        - pr_trace_msg
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5025,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5029,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5041,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5045,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fsio_rename_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4998
      functionLinenumberEnd: 5017
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          82
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_error_create
        - pr_error_destroy
        - pr_error_explain_rename
        - pr_fsio_rename
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5001,9'
          Dst:             pr_fsio_rename
        - Src:             'fsio.c:5003,18'
          Dst:             __errno_location
        - Src:             'fsio.c:5007,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:5008,11'
          Dst:             pr_error_explain_rename
        - Src:             'fsio.c:5009,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:5014,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_rename
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4949
      functionLinenumberEnd: 4995
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          174
      EdgeCount:       43
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - lookup_file_fs
        - pr_fs_clear_cache2
        - pr_trace_msg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4955,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4959,13'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:4964,11'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:4972,7'
          Dst:             __errno_location
        - Src:             'fsio.c:4986,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4990,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'fsio.c:4991,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fs_globfree
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4943
      functionLinenumberEnd: 4947
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          26
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - globfree
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4945,5'
          Dst:             globfree
    - functionName:    pr_fs_glob
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4924
      functionLinenumberEnd: 4941
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - glob
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4928,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4940,10'
          Dst:             glob
    - functionName:    pr_fsio_closedir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4086
      functionLinenumberEnd: 4111
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          94
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - find_opendir
        - pr_trace_msg
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4091,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4095,8'
          Dst:             find_opendir
        - Src:             'fsio.c:4107,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_readdir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4113
      functionLinenumberEnd: 4138
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          94
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - find_opendir
        - pr_trace_msg
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4118,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4122,8'
          Dst:             find_opendir
        - Src:             'fsio.c:4134,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_opendir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3953
      functionLinenumberEnd: 4037
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          233
      EdgeCount:       42
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - lookup_dir_fs
        - make_sub_pool
        - pcalloc
        - pr_fs_getcwd
        - pr_fs_resolve_partial
        - pr_fs_setcwd
        - pr_pool_tag
        - pr_signals_handle
        - pr_trace_msg
        - strchr
        - sys_closedir
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:3960,5'
          Dst:             __errno_location
        - Src:             'fsio.c:3964,7'
          Dst:             strchr
        - Src:             'fsio.c:3965,18'
          Dst:             pr_fs_getcwd
        - Src:             'fsio.c:3965,5'
          Dst:             pr_fs_setcwd
        - Src:             'fsio.c:3971,9'
          Dst:             pr_fs_resolve_partial
        - Src:             'fsio.c:3975,10'
          Dst:             lookup_dir_fs
        - Src:             'fsio.c:3985,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:3996,15'
          Dst:             make_sub_pool
        - Src:             'fsio.c:3997,3'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:3999,10'
          Dst:             pcalloc
        - Src:             'fsio.c:4003,7'
          Dst:             __errno_location
        - Src:             'fsio.c:4007,5'
          Dst:             sys_closedir
        - Src:             'fsio.c:4008,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4023,7'
          Dst:             pr_signals_handle
    - functionName:    pr_fsio_lstat
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4842
      functionLinenumberEnd: 4866
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          108
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - cache_stat
        - lookup_file_fs
        - pr_trace_msg
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4847,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4851,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:4863,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4865,10'
          Dst:             cache_stat
    - functionName:    pr_fs_getcwd
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2673
      functionLinenumberEnd: 2674
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    22
      BranchProfiles:  []
      Callsites:       []
    - functionName:    find_opendir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4039
      functionLinenumberEnd: 4083
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          189
      EdgeCount:       51
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - destroy_pool
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4066,7'
          Dst:             destroy_pool
        - Src:             'fsio.c:4080,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_lstat_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4869
      functionLinenumberEnd: 4888
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          82
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_error_create
        - pr_error_destroy
        - pr_error_explain_lstat
        - pr_fsio_lstat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4872,9'
          Dst:             pr_fsio_lstat
        - Src:             'fsio.c:4874,18'
          Dst:             __errno_location
        - Src:             'fsio.c:4878,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:4879,11'
          Dst:             pr_error_explain_lstat
        - Src:             'fsio.c:4880,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:4885,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_stat_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4795
      functionLinenumberEnd: 4814
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          82
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_error_create
        - pr_error_destroy
        - pr_error_explain_stat
        - pr_fsio_stat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4798,9'
          Dst:             pr_fsio_stat
        - Src:             'fsio.c:4800,18'
          Dst:             __errno_location
        - Src:             'fsio.c:4804,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:4805,11'
          Dst:             pr_error_explain_stat
        - Src:             'fsio.c:4806,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:4811,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_rmdir_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4746
      functionLinenumberEnd: 4765
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          78
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_error_create
        - pr_error_destroy
        - pr_error_explain_rmdir
        - pr_fsio_rmdir
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4749,9'
          Dst:             pr_fsio_rmdir
        - Src:             'fsio.c:4751,18'
          Dst:             __errno_location
        - Src:             'fsio.c:4755,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:4756,11'
          Dst:             pr_error_explain_rmdir
        - Src:             'fsio.c:4757,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:4762,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_rmdir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4715
      functionLinenumberEnd: 4744
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          106
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - lookup_dir_fs
        - pr_fs_clear_cache2
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4720,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4724,8'
          Dst:             lookup_dir_fs
        - Src:             'fsio.c:4736,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4740,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    schmod_dir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4270
      functionLinenumberEnd: 4409
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          281
      EdgeCount:       56
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - chmod
        - close
        - fchmod
        - fstat
        - open
        - pr_log_debug
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
        - pr_trace_msg
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4285,8'
          Dst:             open
        - Src:             'fsio.c:4286,12'
          Dst:             __errno_location
        - Src:             'fsio.c:4290,53'
          Dst:             strerror
        - Src:             'fsio.c:4289,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4291,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4295,9'
          Dst:             fstat
        - Src:             'fsio.c:4297,14'
          Dst:             __errno_location
        - Src:             'fsio.c:4299,12'
          Dst:             close
        - Src:             'fsio.c:4302,54'
          Dst:             strerror
        - Src:             'fsio.c:4301,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4303,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4311,12'
          Dst:             close
        - Src:             'fsio.c:4314,52'
          Dst:             strerror
        - Src:             'fsio.c:4313,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4319,5'
          Dst:             pr_log_pri
        - Src:             'fsio.c:4323,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4337,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4341,5'
          Dst:             pr_log_pri
        - Src:             'fsio.c:4347,5'
          Dst:             pr_privs_root
        - Src:             'fsio.c:4350,9'
          Dst:             fchmod
        - Src:             'fsio.c:4351,12'
          Dst:             __errno_location
        - Src:             'fsio.c:4361,11'
          Dst:             chmod
        - Src:             'fsio.c:4362,14'
          Dst:             __errno_location
        - Src:             'fsio.c:4366,5'
          Dst:             pr_privs_relinquish
        - Src:             'fsio.c:4370,10'
          Dst:             close
        - Src:             'fsio.c:4397,22'
          Dst:             strerror
        - Src:             'fsio.c:4395,7'
          Dst:             pr_log_debug
        - Src:             'fsio.c:4403,7'
          Dst:             strerror
        - Src:             'fsio.c:4401,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4404,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_smkdir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4417
      functionLinenumberEnd: 4713
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         133
      ICount:          780
      EdgeCount:       179
      CyclomaticComplexity: 48
      functionsReached:
        - __errno_location
        - chroot_allow_path
        - get_param_ptr
        - lstat
        - mkdtemp
        - pcalloc
        - pr_fs_clear_cache2
        - pr_fsio_lchown
        - pr_fsio_mkdir
        - pr_gid2str
        - pr_log_debug
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
        - pr_snprintf
        - pr_trace_msg
        - pr_uid2str
        - pstrdup
        - pstrndup
        - rename
        - rmdir
        - schmod_dir
        - strerror
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4425,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4431,5'
          Dst:             pr_uid2str
        - Src:             'fsio.c:4431,25'
          Dst:             pr_gid2str
        - Src:             'fsio.c:4429,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4434,11'
          Dst:             chroot_allow_path
        - Src:             'fsio.c:4478,11'
          Dst:             strrchr
        - Src:             'fsio.c:4480,7'
          Dst:             __errno_location
        - Src:             'fsio.c:4486,17'
          Dst:             pstrndup
        - Src:             'fsio.c:4493,11'
          Dst:             lstat
        - Src:             'fsio.c:4495,16'
          Dst:             __errno_location
        - Src:             'fsio.c:4499,9'
          Dst:             strerror
        - Src:             'fsio.c:4497,7'
          Dst:             pr_log_pri
        - Src:             'fsio.c:4502,9'
          Dst:             strerror
        - Src:             'fsio.c:4500,7'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4504,7'
          Dst:             __errno_location
        - Src:             'fsio.c:4510,7'
          Dst:             __errno_location
        - Src:             'fsio.c:4523,12'
          Dst:             pcalloc
        - Src:             'fsio.c:4524,5'
          Dst:             pr_snprintf
        - Src:             'fsio.c:4530,17'
          Dst:             mkdtemp
        - Src:             'fsio.c:4532,16'
          Dst:             __errno_location
        - Src:             'fsio.c:4536,9'
          Dst:             strerror
        - Src:             'fsio.c:4534,7'
          Dst:             pr_log_pri
        - Src:             'fsio.c:4539,9'
          Dst:             strerror
        - Src:             'fsio.c:4537,7'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4541,7'
          Dst:             __errno_location
        - Src:             'fsio.c:4546,11'
          Dst:             pr_fsio_mkdir
        - Src:             'fsio.c:4548,16'
          Dst:             __errno_location
        - Src:             'fsio.c:4552,15'
          Dst:             strerror
        - Src:             'fsio.c:4550,7'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4554,7'
          Dst:             __errno_location
        - Src:             'fsio.c:4558,17'
          Dst:             pstrdup
        - Src:             'fsio.c:4583,17'
          Dst:             get_param_ptr
        - Src:             'fsio.c:4588,19'
          Dst:             get_param_ptr
        - Src:             'fsio.c:4607,11'
          Dst:             schmod_dir
        - Src:             'fsio.c:4608,14'
          Dst:             __errno_location
        - Src:             'fsio.c:4617,15'
          Dst:             schmod_dir
        - Src:             'fsio.c:4618,18'
          Dst:             __errno_location
        - Src:             'fsio.c:4624,9'
          Dst:             strerror
        - Src:             'fsio.c:4623,7'
          Dst:             pr_log_pri
        - Src:             'fsio.c:4626,14'
          Dst:             rmdir
        - Src:             'fsio.c:4628,7'
          Dst:             __errno_location
        - Src:             'fsio.c:4635,7'
          Dst:             pr_privs_root
        - Src:             'fsio.c:4638,11'
          Dst:             pr_fsio_lchown
        - Src:             'fsio.c:4639,14'
          Dst:             __errno_location
        - Src:             'fsio.c:4642,7'
          Dst:             pr_privs_relinquish
        - Src:             'fsio.c:4647,9'
          Dst:             strerror
        - Src:             'fsio.c:4646,7'
          Dst:             pr_log_pri
        - Src:             'fsio.c:4652,22'
          Dst:             pr_uid2str
        - Src:             'fsio.c:4652,42'
          Dst:             pr_gid2str
        - Src:             'fsio.c:4651,9'
          Dst:             pr_log_debug
        - Src:             'fsio.c:4656,22'
          Dst:             pr_uid2str
        - Src:             'fsio.c:4655,9'
          Dst:             pr_log_debug
        - Src:             'fsio.c:4662,7'
          Dst:             pr_privs_root
        - Src:             'fsio.c:4665,11'
          Dst:             pr_fsio_lchown
        - Src:             'fsio.c:4666,14'
          Dst:             __errno_location
        - Src:             'fsio.c:4669,7'
          Dst:             pr_privs_relinquish
        - Src:             'fsio.c:4674,51'
          Dst:             strerror
        - Src:             'fsio.c:4673,7'
          Dst:             pr_log_pri
        - Src:             'fsio.c:4678,51'
          Dst:             pr_gid2str
        - Src:             'fsio.c:4677,7'
          Dst:             pr_log_debug
        - Src:             'fsio.c:4686,11'
          Dst:             rename
        - Src:             'fsio.c:4688,16'
          Dst:             __errno_location
        - Src:             'fsio.c:4691,15'
          Dst:             strerror
        - Src:             'fsio.c:4690,7'
          Dst:             pr_log_pri
        - Src:             'fsio.c:4693,14'
          Dst:             rmdir
        - Src:             'fsio.c:4706,7'
          Dst:             __errno_location
        - Src:             'fsio.c:4711,3'
          Dst:             pr_fs_clear_cache2
    - functionName:    mkdtemp
      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:    pr_fsio_mkdir
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4140
      functionLinenumberEnd: 4194
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         52
      ICount:          261
      EdgeCount:       69
      CyclomaticComplexity: 19
      functionsReached:
        - __errno_location
        - get_param_ptr
        - lookup_dir_fs
        - pr_fs_clear_cache2
        - pr_trace_msg
        - umask
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4146,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4150,8'
          Dst:             lookup_dir_fs
        - Src:             'fsio.c:4163,15'
          Dst:             get_param_ptr
        - Src:             'fsio.c:4168,17'
          Dst:             get_param_ptr
        - Src:             'fsio.c:4175,20'
          Dst:             umask
        - Src:             'fsio.c:4179,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:4182,12'
          Dst:             __errno_location
        - Src:             'fsio.c:4185,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'fsio.c:4189,12'
          Dst:             umask
        - Src:             'fsio.c:4192,3'
          Dst:             __errno_location
    - functionName:    pr_fsio_set_use_mkdtemp
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4237
      functionLinenumberEnd: 4253
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4242,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_set_options
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4228
      functionLinenumberEnd: 4234
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_fsio_guard_chroot
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4219
      functionLinenumberEnd: 4225
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_fsio_mkdir_with_error
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4197
      functionLinenumberEnd: 4216
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          82
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_error_create
        - pr_error_destroy
        - pr_error_explain_mkdir
        - pr_fsio_mkdir
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4200,9'
          Dst:             pr_fsio_mkdir
        - Src:             'fsio.c:4202,18'
          Dst:             __errno_location
        - Src:             'fsio.c:4206,14'
          Dst:             pr_error_create
        - Src:             'fsio.c:4207,11'
          Dst:             pr_error_explain_mkdir
        - Src:             'fsio.c:4208,9'
          Dst:             pr_error_destroy
        - Src:             'fsio.c:4213,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_chdir_canon
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3862
      functionLinenumberEnd: 3905
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          136
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - lookup_dir_fs
        - pr_fs_resolve_partial
        - pr_fs_virtual_path
        - pr_trace_msg
        - sstrncpy
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:3868,5'
          Dst:             __errno_location
        - Src:             'fsio.c:3872,7'
          Dst:             pr_fs_resolve_partial
        - Src:             'fsio.c:3877,8'
          Dst:             lookup_dir_fs
        - Src:             'fsio.c:3889,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:3897,8'
          Dst:             pr_fs_virtual_path
        - Src:             'fsio.c:3900,8'
          Dst:             sstrncpy
    - functionName:    pr_fs_join_path
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3683
      functionLinenumberEnd: 3712
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          119
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pdircat
        - pstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:3691,5'
          Dst:             __errno_location
        - Src:             'fsio.c:3697,5'
          Dst:             __errno_location
        - Src:             'fsio.c:3702,10'
          Dst:             pstrdup
        - Src:             'fsio.c:3708,12'
          Dst:             pdircat
    - functionName:    pr_fs_split_path
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3590
      functionLinenumberEnd: 3681
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          259
      EdgeCount:       49
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - array_cat
        - make_array
        - pcalloc
        - pr_fs_clean_path2
        - pr_str_text_to_array
        - pr_trace_get_level
        - pr_trace_msg
        - pstrdup
        - push_array
        - strerror
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:3598,5'
          Dst:             __errno_location
        - Src:             'fsio.c:3602,13'
          Dst:             strlen
        - Src:             'fsio.c:3604,5'
          Dst:             __errno_location
        - Src:             'fsio.c:3614,9'
          Dst:             pcalloc
        - Src:             'fsio.c:3616,9'
          Dst:             pr_fs_clean_path2
        - Src:             'fsio.c:3619,18'
          Dst:             __errno_location
        - Src:             'fsio.c:3622,7'
          Dst:             strerror
        - Src:             'fsio.c:3621,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:3623,5'
          Dst:             __errno_location
        - Src:             'fsio.c:3627,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:3633,12'
          Dst:             strlen
        - Src:             'fsio.c:3636,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:3638,18'
          Dst:             make_array
        - Src:             'fsio.c:3639,43'
          Dst:             pstrdup
        - Src:             'fsio.c:3639,17'
          Dst:             push_array
        - Src:             'fsio.c:3644,16'
          Dst:             pr_str_text_to_array
        - Src:             'fsio.c:3646,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:3649,9'
          Dst:             pr_trace_get_level
        - Src:             'fsio.c:3660,9'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:3673,22'
          Dst:             make_array
        - Src:             'fsio.c:3674,47'
          Dst:             pstrdup
        - Src:             'fsio.c:3674,17'
          Dst:             push_array
        - Src:             'fsio.c:3676,5'
          Dst:             array_cat
    - functionName:    pr_fs_encode_path
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3528
      functionLinenumberEnd: 3588
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:3582,5'
          Dst:             __errno_location
    - functionName:    pr_fs_decode_path
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3524
      functionLinenumberEnd: 3525
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_fs_decode_path2
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:3525,10'
          Dst:             pr_fs_decode_path2
    - functionName:    pr_fs_decode_path2
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3453
      functionLinenumberEnd: 3522
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          43
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
      functionUses:    20
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:3516,5'
          Dst:             __errno_location
    - functionName:    pr_fs_use_encoding
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3440
      functionLinenumberEnd: 3451
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:3445,5'
          Dst:             __errno_location
    - functionName:    pr_fs_getvwd
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2677
      functionLinenumberEnd: 2678
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_unregister_fs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2550
      functionLinenumberEnd: 2567
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - destroy_pool
        - pr_remove_fs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:2554,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2559,8'
          Dst:             pr_remove_fs
        - Src:             'fsio.c:2561,5'
          Dst:             destroy_pool
        - Src:             'fsio.c:2565,3'
          Dst:             __errno_location
    - functionName:    pr_remove_fs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2546
      functionLinenumberEnd: 2547
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_unmount_fs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:2547,10'
          Dst:             pr_unmount_fs
    - functionName:    pr_unmount_fs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2457
      functionLinenumberEnd: 2544
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          256
      EdgeCount:       48
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - destroy_pool
        - make_array
        - make_sub_pool
        - pr_pool_tag
        - push_array
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:2463,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2469,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2478,9'
          Dst:             strcmp
        - Src:             'fsio.c:2479,17'
          Dst:             strcmp
        - Src:             'fsio.c:2497,11'
          Dst:             destroy_pool
        - Src:             'fsio.c:2505,20'
          Dst:             make_sub_pool
        - Src:             'fsio.c:2506,19'
          Dst:             make_array
        - Src:             'fsio.c:2508,9'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:2514,15'
          Dst:             strcmp
        - Src:             'fsio.c:2515,28'
          Dst:             push_array
        - Src:             'fsio.c:2519,9'
          Dst:             destroy_pool
        - Src:             'fsio.c:2542,3'
          Dst:             __errno_location
    - functionName:    pr_register_fs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2329
      functionLinenumberEnd: 2330
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_register_fs2
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:2330,10'
          Dst:             pr_register_fs2
    - functionName:    pr_register_fs2
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2239
      functionLinenumberEnd: 2327
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          348
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - destroy_pool
        - pr_create_fs
        - pr_get_fs
        - pr_insert_fs
        - pr_trace_msg
        - pstrcat
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:2247,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2252,8'
          Dst:             pr_create_fs
        - Src:             'fsio.c:2253,12'
          Dst:             __errno_location
        - Src:             'fsio.c:2257,16'
          Dst:             __errno_location
        - Src:             'fsio.c:2257,7'
          Dst:             strerror
        - Src:             'fsio.c:2256,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:2258,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2269,15'
          Dst:             pr_get_fs
        - Src:             'fsio.c:2271,21'
          Dst:             pstrcat
        - Src:             'fsio.c:2315,7'
          Dst:             pr_insert_fs
        - Src:             'fsio.c:2316,14'
          Dst:             __errno_location
        - Src:             'fsio.c:2318,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:2321,5'
          Dst:             destroy_pool
        - Src:             'fsio.c:2322,5'
          Dst:             __errno_location
    - functionName:    pr_insert_fs
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2363
      functionLinenumberEnd: 2455
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          274
      EdgeCount:       56
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - fs_cmp
        - make_array
        - make_sub_pool
        - pr_fs_clean_path
        - pr_log_pri
        - pr_pool_tag
        - pstrdup
        - push_array
        - qsort
        - sstrncpy
        - strcmp
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:2368,5'
          Dst:             __errno_location
        - Src:             'fsio.c:2373,22'
          Dst:             make_sub_pool
        - Src:             'fsio.c:2374,5'
          Dst:             pr_pool_tag
        - Src:             'fsio.c:2376,14'
          Dst:             make_array
        - Src:             'fsio.c:2383,5'
          Dst:             pr_fs_clean_path
        - Src:             'fsio.c:2390,14'
          Dst:             strlen
        - Src:             'fsio.c:2391,20'
          Dst:             strlen
        - Src:             'fsio.c:2402,5'
          Dst:             sstrncpy
        - Src:             'fsio.c:2406,19'
          Dst:             pstrdup
        - Src:             'fsio.c:2417,11'
          Dst:             strcmp
        - Src:             'fsio.c:2421,13'
          Dst:             strcmp
        - Src:             'fsio.c:2422,11'
          Dst:             pr_log_pri
        - Src:             'fsio.c:2424,11'
          Dst:             __errno_location
        - Src:             'fsio.c:2440,18'
          Dst:             push_array
        - Src:             'fsio.c:2446,5'
          Dst:             qsort
        - Src:             'fsio.c:2446,5'
          Dst:             fs_cmp
    - functionName:    pr_fs_copy_file
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2234
      functionLinenumberEnd: 2235
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_fs_copy_file2
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:2235,10'
          Dst:             pr_fs_copy_file2
    - functionName:    pr_fs_copy_file2
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1850
      functionLinenumberEnd: 2232
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         120
      ICount:          757
      EdgeCount:       162
      CyclomaticComplexity: 44
      functionsReached:
        - __errno_location
        - copy_progress_cb
        - exit
        - palloc
        - pr_fs_clear_cache2
        - pr_fsio_close
        - pr_fsio_fgetxattr
        - pr_fsio_flistxattr
        - pr_fsio_fsetxattr
        - pr_fsio_fstat
        - pr_fsio_open
        - pr_fsio_read
        - pr_fsio_set_block
        - pr_fsio_stat
        - pr_fsio_truncate
        - pr_fsio_unlink
        - pr_fsio_write
        - pr_log_pri
        - pr_signals_handle
        - pr_trace_msg
        - strcmp
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1862,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1871,12'
          Dst:             pr_fsio_open
        - Src:             'fsio.c:1873,18'
          Dst:             __errno_location
        - Src:             'fsio.c:1876,31'
          Dst:             strerror
        - Src:             'fsio.c:1875,5'
          Dst:             pr_log_pri
        - Src:             'fsio.c:1878,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1888,7'
          Dst:             pr_fsio_fstat
        - Src:             'fsio.c:1890,49'
          Dst:             __errno_location
        - Src:             'fsio.c:1890,40'
          Dst:             strerror
        - Src:             'fsio.c:1889,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1896,5'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:1899,7'
          Dst:             strerror
        - Src:             'fsio.c:1898,5'
          Dst:             pr_log_pri
        - Src:             'fsio.c:1901,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1905,7'
          Dst:             pr_fsio_set_block
        - Src:             'fsio.c:1907,66'
          Dst:             __errno_location
        - Src:             'fsio.c:1907,57'
          Dst:             strerror
        - Src:             'fsio.c:1906,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1914,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'fsio.c:1915,7'
          Dst:             pr_fsio_stat
        - Src:             'fsio.c:1919,14'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:1922,62'
          Dst:             strerror
        - Src:             'fsio.c:1921,7'
          Dst:             pr_log_pri
        - Src:             'fsio.c:1924,7'
          Dst:             __errno_location
        - Src:             'fsio.c:1929,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'fsio.c:1935,12'
          Dst:             pr_fsio_open
        - Src:             'fsio.c:1937,18'
          Dst:             __errno_location
        - Src:             'fsio.c:1939,12'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:1942,31'
          Dst:             strerror
        - Src:             'fsio.c:1941,5'
          Dst:             pr_log_pri
        - Src:             'fsio.c:1944,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1948,7'
          Dst:             pr_fsio_set_block
        - Src:             'fsio.c:1950,66'
          Dst:             __errno_location
        - Src:             'fsio.c:1950,57'
          Dst:             strerror
        - Src:             'fsio.c:1949,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1954,7'
          Dst:             pr_fsio_fstat
        - Src:             'fsio.c:1955,18'
          Dst:             __errno_location
        - Src:             'fsio.c:1958,31'
          Dst:             strerror
        - Src:             'fsio.c:1957,5'
          Dst:             pr_log_pri
        - Src:             'fsio.c:1960,12'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:1961,12'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:1966,13'
          Dst:             pr_fsio_unlink
        - Src:             'fsio.c:1968,69'
          Dst:             __errno_location
        - Src:             'fsio.c:1968,60'
          Dst:             strerror
        - Src:             'fsio.c:1967,11'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:1973,5'
          Dst:             __errno_location
        - Src:             'fsio.c:1977,7'
          Dst:             pr_fsio_fstat
        - Src:             'fsio.c:1985,9'
          Dst:             strcmp
        - Src:             'fsio.c:1991,14'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:1992,14'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:2002,5'
          Dst:             pr_log_pri
        - Src:             'fsio.c:2003,5'
          Dst:             exit
        - Src:             'fsio.c:2009,5'
          Dst:             pr_fsio_truncate
        - Src:             'fsio.c:2013,17'
          Dst:             pr_fsio_read
        - Src:             'fsio.c:2017,5'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:2024,13'
          Dst:             pr_fsio_write
        - Src:             'fsio.c:2026,22'
          Dst:             __errno_location
        - Src:             'fsio.c:2030,11'
          Dst:             pr_signals_handle
        - Src:             'fsio.c:2034,16'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:2035,16'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:2040,17'
          Dst:             pr_fsio_unlink
        - Src:             'fsio.c:2042,73'
          Dst:             __errno_location
        - Src:             'fsio.c:2042,64'
          Dst:             strerror
        - Src:             'fsio.c:2041,15'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:2048,11'
          Dst:             strerror
        - Src:             'fsio.c:2047,9'
          Dst:             pr_log_pri
        - Src:             'fsio.c:2051,9'
          Dst:             __errno_location
        - Src:             'fsio.c:2059,9'
          Dst:             copy_progress_cb
        - Src:             'fsio.c:2169,7'
          Dst:             pr_fsio_flistxattr
        - Src:             'fsio.c:2180,15'
          Dst:             pr_fsio_fgetxattr
        - Src:             'fsio.c:2185,15'
          Dst:             palloc
        - Src:             'fsio.c:2186,14'
          Dst:             pr_fsio_fgetxattr
        - Src:             'fsio.c:2188,16'
          Dst:             pr_fsio_fsetxattr
        - Src:             'fsio.c:2191,15'
          Dst:             __errno_location
        - Src:             'fsio.c:2194,67'
          Dst:             __errno_location
        - Src:             'fsio.c:2194,58'
          Dst:             strerror
        - Src:             'fsio.c:2192,13'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:2202,10'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:2208,5'
          Dst:             copy_progress_cb
        - Src:             'fsio.c:2211,9'
          Dst:             pr_fsio_close
        - Src:             'fsio.c:2213,18'
          Dst:             __errno_location
        - Src:             'fsio.c:2218,13'
          Dst:             pr_fsio_unlink
        - Src:             'fsio.c:2220,69'
          Dst:             __errno_location
        - Src:             'fsio.c:2220,60'
          Dst:             strerror
        - Src:             'fsio.c:2219,11'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:2226,7'
          Dst:             strerror
        - Src:             'fsio.c:2225,5'
          Dst:             pr_log_pri
        - Src:             'fsio.c:2228,5'
          Dst:             __errno_location
    - functionName:    pr_fsio_fstat
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4817
      functionLinenumberEnd: 4840
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          103
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_trace_msg
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:4823,5'
          Dst:             __errno_location
        - Src:             'fsio.c:4835,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_set_block
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7430
      functionLinenumberEnd: 7445
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - fcntl
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:7434,5'
          Dst:             __errno_location
        - Src:             'fsio.c:7438,11'
          Dst:             fcntl
        - Src:             'fsio.c:7443,9'
          Dst:             fcntl
    - functionName:    pr_fsio_truncate
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5587
      functionLinenumberEnd: 5616
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          109
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - lookup_file_fs
        - pr_fs_clear_cache2
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:5592,5'
          Dst:             __errno_location
        - Src:             'fsio.c:5596,8'
          Dst:             lookup_file_fs
        - Src:             'fsio.c:5608,3'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:5612,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    copy_progress_cb
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          84
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_timer_reset
        - pr_trace_msg
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:181,9'
          Dst:             pr_timer_reset
        - Src:             'fsio.c:184,16'
          Dst:             __errno_location
        - Src:             'fsio.c:184,7'
          Dst:             strerror
        - Src:             'fsio.c:183,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:187,9'
          Dst:             pr_timer_reset
        - Src:             'fsio.c:190,63'
          Dst:             __errno_location
        - Src:             'fsio.c:190,54'
          Dst:             strerror
        - Src:             'fsio.c:189,5'
          Dst:             pr_trace_msg
        - Src:             'fsio.c:193,9'
          Dst:             pr_timer_reset
        - Src:             'fsio.c:196,60'
          Dst:             __errno_location
        - Src:             'fsio.c:196,51'
          Dst:             strerror
        - Src:             'fsio.c:195,5'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_flistxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6292
      functionLinenumberEnd: 6320
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          125
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6299,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6304,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6316,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_fgetxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6194
      functionLinenumberEnd: 6222
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          131
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - pr_trace_msg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6201,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6206,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6218,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fsio_fsetxattr
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6491
      functionLinenumberEnd: 6519
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          134
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:6498,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6503,5'
          Dst:             __errno_location
        - Src:             'fsio.c:6515,3'
          Dst:             pr_trace_msg
    - functionName:    pr_fs_clear_cache
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1843
      functionLinenumberEnd: 1845
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_fs_clear_cache2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1844,10'
          Dst:             pr_fs_clear_cache2
    - functionName:    pr_fs_statcache_set_policy
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1755
      functionLinenumberEnd: 1761
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    statcache_dumpf
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1683
      functionLinenumberEnd: 1695
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_trace_msg
        - pr_vsnprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1690,3'
          Dst:             pr_vsnprintf
        - Src:             'fsio.c:1694,10'
          Dst:             pr_trace_msg
    - functionName:    pr_fs_statcache_dump
      functionSourceFile: '/src/proftpd/src/fsio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1697
      functionLinenumberEnd: 1700
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_table_dump
        - statcache_dumpf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fsio.c:1698,3'
          Dst:             pr_table_dump
        - Src:             'fsio.c:1698,3'
          Dst:             statcache_dumpf
        - Src:             'fsio.c:1699,3'
          Dst:             pr_table_dump
        - Src:             'fsio.c:1699,3'
          Dst:             statcache_dumpf
    - functionName:    add_log_ts
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 492
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          70
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - gettimeofday
        - pr_localtime
        - pr_snprintf
        - strftime
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'log.c:498,3'
          Dst:             gettimeofday
        - Src:             'log.c:499,8'
          Dst:             pr_localtime
        - Src:             'log.c:504,9'
          Dst:             strftime
        - Src:             'log.c:510,10'
          Dst:             pr_snprintf
    - functionName:    init_log
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1039
      functionLinenumberEnd: 1051
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - gethostname
        - log_closesyslog
        - pr_netaddr_validate_dns_str
        - sstrncpy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'log.c:1043,7'
          Dst:             gethostname
        - Src:             'log.c:1044,5'
          Dst:             sstrncpy
        - Src:             'log.c:1047,37'
          Dst:             pr_netaddr_validate_dns_str
        - Src:             'log.c:1047,3'
          Dst:             sstrncpy
        - Src:             'log.c:1050,3'
          Dst:             log_closesyslog
    - functionName:    gethostname
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log_closesyslog
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 470
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - close
        - pr_closelog
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'log.c:471,10'
          Dst:             close
        - Src:             'log.c:474,10'
          Dst:             pr_closelog
    - functionName:    pr_log_stacktrace
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 969
      functionLinenumberEnd: 1037
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          186
      EdgeCount:       44
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - backtrace
        - backtrace_symbols
        - pr_log_pri
        - pr_log_writefile
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'log.c:982,12'
          Dst:             pr_log_writefile
        - Src:             'log.c:985,12'
          Dst:             pr_log_pri
        - Src:             'log.c:988,13'
          Dst:             backtrace
        - Src:             'log.c:992,18'
          Dst:             __errno_location
        - Src:             'log.c:992,9'
          Dst:             strerror
        - Src:             'log.c:991,14'
          Dst:             pr_log_writefile
        - Src:             'log.c:996,18'
          Dst:             __errno_location
        - Src:             'log.c:996,9'
          Dst:             strerror
        - Src:             'log.c:995,14'
          Dst:             pr_log_pri
        - Src:             'log.c:1002,15'
          Dst:             backtrace_symbols
        - Src:             'log.c:1008,18'
          Dst:             pr_log_writefile
        - Src:             'log.c:1011,18'
          Dst:             pr_log_pri
        - Src:             'log.c:1021,61'
          Dst:             __errno_location
        - Src:             'log.c:1021,52'
          Dst:             strerror
        - Src:             'log.c:1020,16'
          Dst:             pr_log_writefile
        - Src:             'log.c:1025,61'
          Dst:             __errno_location
        - Src:             'log.c:1025,52'
          Dst:             strerror
        - Src:             'log.c:1024,16'
          Dst:             pr_log_pri
        - Src:             'log.c:1031,12'
          Dst:             pr_log_writefile
        - Src:             'log.c:1034,12'
          Dst:             pr_log_pri
    - functionName:    pr_log_writefile
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pr_log_vwritefile
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'log.c:410,5'
          Dst:             __errno_location
        - Src:             'log.c:415,9'
          Dst:             pr_log_vwritefile
    - functionName:    pr_log_pri
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 756
      functionLinenumberEnd: 768
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - log_write
        - pr_vsnprintf
      functionUses:    463
      BranchProfiles:  []
      Callsites:
        - Src:             'log.c:761,3'
          Dst:             pr_vsnprintf
        - Src:             'log.c:767,3'
          Dst:             log_write
    - functionName:    backtrace
      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:    backtrace_symbols
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log_write
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 514
      functionLinenumberEnd: 754
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         113
      ICount:          691
      EdgeCount:       153
      CyclomaticComplexity: 42
      functionsReached:
        - __errno_location
        - add_log_ts
        - destroy_pool
        - fflush
        - fprintf
        - get_param_ptr
        - getpid
        - make_sub_pool
        - pr_log_event_generate
        - pr_log_event_listening
        - pr_netaddr_get_ipstr
        - pr_netaddr_get_sess_remote_addr
        - pr_netaddr_get_sess_remote_name
        - pr_openlog
        - pr_pool_tag
        - pr_signals_handle
        - pr_snprintf
        - pr_syslog
        - pr_trace_msg
        - strerror
        - strlen
        - write
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'log.c:526,19'
          Dst:             pr_netaddr_get_sess_remote_addr
        - Src:             'log.c:527,19'
          Dst:             pr_netaddr_get_sess_remote_name
        - Src:             'log.c:532,13'
          Dst:             pr_snprintf
        - Src:             'log.c:543,22'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'log.c:541,7'
          Dst:             pr_snprintf
        - Src:             'log.c:558,18'
          Dst:             make_sub_pool
        - Src:             'log.c:559,7'
          Dst:             pr_pool_tag
        - Src:             'log.c:561,13'
          Dst:             add_log_ts
        - Src:             'log.c:562,7'
          Dst:             destroy_pool
        - Src:             'log.c:570,13'
          Dst:             pr_snprintf
        - Src:             'log.c:575,43'
          Dst:             getpid
        - Src:             'log.c:587,13'
          Dst:             pr_snprintf
        - Src:             'log.c:592,13'
          Dst:             pr_snprintf
        - Src:             'log.c:599,5'
          Dst:             pr_log_event_generate
        - Src:             'log.c:602,5'
          Dst:             fprintf
        - Src:             'log.c:603,5'
          Dst:             fflush
        - Src:             'log.c:609,9'
          Dst:             pr_log_event_listening
        - Src:             'log.c:610,9'
          Dst:             pr_log_event_listening
        - Src:             'log.c:616,11'
          Dst:             get_param_ptr
        - Src:             'log.c:636,9'
          Dst:             pr_log_event_listening
        - Src:             'log.c:637,9'
          Dst:             pr_log_event_listening
        - Src:             'log.c:651,18'
          Dst:             make_sub_pool
        - Src:             'log.c:652,7'
          Dst:             pr_pool_tag
        - Src:             'log.c:654,13'
          Dst:             add_log_ts
        - Src:             'log.c:655,7'
          Dst:             destroy_pool
        - Src:             'log.c:663,13'
          Dst:             pr_snprintf
        - Src:             'log.c:668,43'
          Dst:             getpid
        - Src:             'log.c:680,13'
          Dst:             pr_snprintf
        - Src:             'log.c:685,13'
          Dst:             pr_snprintf
        - Src:             'log.c:692,5'
          Dst:             pr_log_event_generate
        - Src:             'log.c:710,12'
          Dst:             write
        - Src:             'log.c:711,11'
          Dst:             __errno_location
        - Src:             'log.c:712,9'
          Dst:             pr_signals_handle
        - Src:             'log.c:723,5'
          Dst:             strlen
        - Src:             'log.c:722,3'
          Dst:             pr_log_event_generate
        - Src:             'log.c:730,21'
          Dst:             pr_openlog
        - Src:             'log.c:733,49'
          Dst:             __errno_location
        - Src:             'log.c:733,40'
          Dst:             strerror
        - Src:             'log.c:732,14'
          Dst:             pr_trace_msg
        - Src:             'log.c:749,5'
          Dst:             pr_syslog
        - Src:             'log.c:752,5'
          Dst:             pr_syslog
    - functionName:    pr_log_event_generate
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 924
      functionLinenumberEnd: 950
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          82
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - get_log_event_name
        - pr_event_generate
        - pr_log_event_listening
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'log.c:930,5'
          Dst:             __errno_location
        - Src:             'log.c:934,7'
          Dst:             pr_log_event_listening
        - Src:             'log.c:935,5'
          Dst:             __errno_location
        - Src:             'log.c:939,16'
          Dst:             get_log_event_name
        - Src:             'log.c:948,3'
          Dst:             pr_event_generate
    - 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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_log_event_listening
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 952
      functionLinenumberEnd: 967
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          45
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - get_log_event_name
        - pr_event_listening
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'log.c:956,16'
          Dst:             get_log_event_name
        - Src:             'log.c:961,9'
          Dst:             pr_event_listening
    - functionName:    get_log_event_name
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 887
      functionLinenumberEnd: 921
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          61
      EdgeCount:       23
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
      functionUses:    2
      BranchProfiles:
        - Branch String:   'log.c:890,3'
          Branch Sides:    []
      Callsites:
        - Src:             'log.c:916,7'
          Dst:             __errno_location
    - functionName:    pr_log_vwritefile
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 403
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          207
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - destroy_pool
        - getpid
        - gettimeofday
        - make_sub_pool
        - pr_localtime
        - pr_log_event_generate
        - pr_pool_tag
        - pr_signals_handle
        - pr_snprintf
        - pr_vsnprintf
        - strftime
        - write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'log.c:340,5'
          Dst:             __errno_location
        - Src:             'log.c:344,14'
          Dst:             make_sub_pool
        - Src:             'log.c:345,3'
          Dst:             pr_pool_tag
        - Src:             'log.c:347,3'
          Dst:             gettimeofday
        - Src:             'log.c:348,8'
          Dst:             pr_localtime
        - Src:             'log.c:350,18'
          Dst:             __errno_location
        - Src:             'log.c:352,5'
          Dst:             destroy_pool
        - Src:             'log.c:353,5'
          Dst:             __errno_location
        - Src:             'log.c:358,9'
          Dst:             strftime
        - Src:             'log.c:365,9'
          Dst:             pr_snprintf
        - Src:             'log.c:370,49'
          Dst:             getpid
        - Src:             'log.c:369,9'
          Dst:             pr_snprintf
        - Src:             'log.c:375,9'
          Dst:             pr_vsnprintf
        - Src:             'log.c:390,3'
          Dst:             pr_log_event_generate
        - Src:             'log.c:391,3'
          Dst:             destroy_pool
        - Src:             'log.c:393,10'
          Dst:             write
        - Src:             'log.c:394,9'
          Dst:             __errno_location
        - Src:             'log.c:395,7'
          Dst:             pr_signals_handle
    - functionName:    pr_log_str2sysloglevel
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 820
      functionLinenumberEnd: 856
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          102
      EdgeCount:       28
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - strcasecmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'log.c:822,7'
          Dst:             strcasecmp
        - Src:             'log.c:826,7'
          Dst:             strcasecmp
        - Src:             'log.c:830,7'
          Dst:             strcasecmp
        - Src:             'log.c:834,7'
          Dst:             strcasecmp
        - Src:             'log.c:838,7'
          Dst:             strcasecmp
        - Src:             'log.c:842,7'
          Dst:             strcasecmp
        - Src:             'log.c:846,7'
          Dst:             strcasecmp
        - Src:             'log.c:850,7'
          Dst:             strcasecmp
        - Src:             'log.c:854,3'
          Dst:             __errno_location
    - functionName:    pr_log_set_options
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 812
      functionLinenumberEnd: 814
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_log_setdefaultlevel
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 806
      functionLinenumberEnd: 809
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_log_setdebuglevel
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 799
      functionLinenumberEnd: 802
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log_stderr
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 791
      functionLinenumberEnd: 793
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_log_auth
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 773
      functionLinenumberEnd: 785
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - log_write
        - pr_vsnprintf
      functionUses:    36
      BranchProfiles:  []
      Callsites:
        - Src:             'log.c:778,3'
          Dst:             pr_vsnprintf
        - Src:             'log.c:784,3'
          Dst:             log_write
    - functionName:    log_discard
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 488
      functionLinenumberEnd: 490
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log_setfacility
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 486
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log_getfacility
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 480
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log_opensyslog
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 421
      functionLinenumberEnd: 468
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          125
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - close
        - fcntl
        - pr_closelog
        - pr_fs_get_usable_fd
        - pr_log_openfile
        - pr_openlog
        - pr_trace_msg
        - sstrncpy
        - strerror
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'log.c:430,5'
          Dst:             sstrncpy
        - Src:             'log.c:436,5'
          Dst:             pr_closelog
        - Src:             'log.c:438,21'
          Dst:             pr_openlog
        - Src:             'log.c:440,20'
          Dst:             __errno_location
        - Src:             'log.c:443,40'
          Dst:             strerror
        - Src:             'log.c:442,14'
          Dst:             pr_trace_msg
        - Src:             'log.c:444,7'
          Dst:             __errno_location
        - Src:             'log.c:450,13'
          Dst:             pr_fs_get_usable_fd
        - Src:             'log.c:452,16'
          Dst:             close
        - Src:             'log.c:457,12'
          Dst:             fcntl
        - Src:             'log.c:460,21'
          Dst:             pr_log_openfile
    - functionName:    pr_log_openfile
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         61
      ICount:          455
      EdgeCount:       82
      CyclomaticComplexity: 23
      functionsReached:
        - __errno_location
        - close
        - destroy_pool
        - fcntl
        - fd_set_block
        - fstat
        - get_param_ptr
        - make_sub_pool
        - open
        - pr_fs_fadvise
        - pr_fs_get_usable_fd
        - pr_log_debug
        - pr_log_pri
        - pr_pool_tag
        - pstrdup
        - stat
        - strerror
        - strrchr
      functionUses:    5
      BranchProfiles:
        - Branch String:   'log.c:180,9'
          Branch Sides:    []
      Callsites:
        - Src:             'log.c:76,5'
          Dst:             __errno_location
        - Src:             'log.c:81,14'
          Dst:             make_sub_pool
        - Src:             'log.c:82,3'
          Dst:             pr_pool_tag
        - Src:             'log.c:83,8'
          Dst:             pstrdup
        - Src:             'log.c:85,9'
          Dst:             strrchr
        - Src:             'log.c:87,5'
          Dst:             pr_log_debug
        - Src:             'log.c:88,5'
          Dst:             destroy_pool
        - Src:             'log.c:90,5'
          Dst:             __errno_location
        - Src:             'log.c:101,7'
          Dst:             stat
        - Src:             'log.c:102,18'
          Dst:             __errno_location
        - Src:             'log.c:104,16'
          Dst:             __errno_location
        - Src:             'log.c:104,7'
          Dst:             strerror
        - Src:             'log.c:103,5'
          Dst:             pr_log_debug
        - Src:             'log.c:105,5'
          Dst:             destroy_pool
        - Src:             'log.c:107,5'
          Dst:             __errno_location
        - Src:             'log.c:113,5'
          Dst:             pr_log_debug
        - Src:             'log.c:114,5'
          Dst:             destroy_pool
        - Src:             'log.c:116,5'
          Dst:             __errno_location
        - Src:             'log.c:122,5'
          Dst:             pr_log_pri
        - Src:             'log.c:123,5'
          Dst:             destroy_pool
        - Src:             'log.c:134,24'
          Dst:             get_param_ptr
        - Src:             'log.c:167,15'
          Dst:             open
        - Src:             'log.c:170,11'
          Dst:             __errno_location
        - Src:             'log.c:171,9'
          Dst:             destroy_pool
        - Src:             'log.c:180,17'
          Dst:             __errno_location
        - Src:             'log.c:221,9'
          Dst:             destroy_pool
        - Src:             'log.c:229,9'
          Dst:             fstat
        - Src:             'log.c:235,7'
          Dst:             pr_log_debug
        - Src:             'log.c:238,7'
          Dst:             close
        - Src:             'log.c:240,7'
          Dst:             destroy_pool
        - Src:             'log.c:255,15'
          Dst:             open
        - Src:             'log.c:257,20'
          Dst:             __errno_location
        - Src:             'log.c:259,7'
          Dst:             destroy_pool
        - Src:             'log.c:260,7'
          Dst:             __errno_location
        - Src:             'log.c:268,7'
          Dst:             fstat
        - Src:             'log.c:269,18'
          Dst:             __errno_location
        - Src:             'log.c:272,7'
          Dst:             strerror
        - Src:             'log.c:271,5'
          Dst:             pr_log_debug
        - Src:             'log.c:274,12'
          Dst:             close
        - Src:             'log.c:276,5'
          Dst:             destroy_pool
        - Src:             'log.c:278,5'
          Dst:             __errno_location
        - Src:             'log.c:285,61'
          Dst:             strerror
        - Src:             'log.c:285,5'
          Dst:             pr_log_debug
        - Src:             'log.c:287,12'
          Dst:             close
        - Src:             'log.c:289,5'
          Dst:             destroy_pool
        - Src:             'log.c:291,5'
          Dst:             __errno_location
        - Src:             'log.c:299,11'
          Dst:             pr_fs_get_usable_fd
        - Src:             'log.c:302,27'
          Dst:             __errno_location
        - Src:             'log.c:302,18'
          Dst:             strerror
        - Src:             'log.c:301,7'
          Dst:             pr_log_debug
        - Src:             'log.c:305,7'
          Dst:             close
        - Src:             'log.c:310,7'
          Dst:             fcntl
        - Src:             'log.c:312,25'
          Dst:             __errno_location
        - Src:             'log.c:312,16'
          Dst:             strerror
        - Src:             'log.c:311,5'
          Dst:             pr_log_pri
        - Src:             'log.c:318,3'
          Dst:             pr_fs_fadvise
        - Src:             'log.c:322,10'
          Dst:             fd_set_block
        - Src:             'log.c:325,3'
          Dst:             destroy_pool
    - functionName:    pr_log_debug
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 858
      functionLinenumberEnd: 885
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          78
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - log_write
        - pr_log_event_listening
        - pr_vsnprintf
      functionUses:    474
      BranchProfiles:  []
      Callsites:
        - Src:             'log.c:866,9'
          Dst:             pr_log_event_listening
        - Src:             'log.c:867,9'
          Dst:             pr_log_event_listening
        - Src:             'log.c:878,3'
          Dst:             pr_vsnprintf
        - Src:             'log.c:884,3'
          Dst:             log_write
    - functionName:    fd_set_block
      functionSourceFile: '/src/proftpd/src/log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fcntl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'log.c:60,11'
          Dst:             fcntl
        - Src:             'log.c:61,9'
          Dst:             fcntl
    - functionName:    find_server_ipbinds
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1380
      functionLinenumberEnd: 1400
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          85
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - make_array
        - pr_signals_handle
        - push_array
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:1388,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1392,21'
          Dst:             make_array
        - Src:             'bindings.c:1395,28'
          Dst:             push_array
    - functionName:    trace_ipbind_table
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1495
      functionLinenumberEnd: 1551
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         23
      ICount:          188
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - pr_netaddr_get_ipstr
        - pr_signals_handle
        - pr_trace_get_level
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:1498,7'
          Dst:             pr_trace_get_level
        - Src:             'bindings.c:1502,3'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1506,5'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1512,5'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1516,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1519,7'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1521,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1520,7'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1522,7'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1524,7'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1531,9'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1536,11'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1538,11'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1539,11'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1541,11'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1543,11'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1545,11'
          Dst:             pr_trace_msg
    - functionName:    process_serveralias
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1403
      functionLinenumberEnd: 1493
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          254
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - destroy_pool
        - find_config
        - find_config_next
        - find_server_ipbinds
        - make_array
        - make_sub_pool
        - pr_ipbind_find
        - pr_namebind_create
        - pr_namebind_open
        - pr_netaddr_get_ipstr
        - pr_pool_tag
        - pr_signals_handle
        - pr_trace_msg
        - push_array
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:1430,14'
          Dst:             make_sub_pool
        - Src:             'bindings.c:1431,3'
          Dst:             pr_pool_tag
        - Src:             'bindings.c:1434,12'
          Dst:             pr_ipbind_find
        - Src:             'bindings.c:1437,15'
          Dst:             make_array
        - Src:             'bindings.c:1438,24'
          Dst:             push_array
        - Src:             'bindings.c:1441,15'
          Dst:             find_server_ipbinds
        - Src:             'bindings.c:1443,7'
          Dst:             destroy_pool
        - Src:             'bindings.c:1448,7'
          Dst:             find_config
        - Src:             'bindings.c:1454,5'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1456,5'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1461,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1464,7'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1467,13'
          Dst:             pr_namebind_create
        - Src:             'bindings.c:1471,15'
          Dst:             pr_namebind_open
        - Src:             'bindings.c:1475,22'
          Dst:             __errno_location
        - Src:             'bindings.c:1475,13'
          Dst:             strerror
        - Src:             'bindings.c:1473,11'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1479,13'
          Dst:             __errno_location
        - Src:             'bindings.c:1482,34'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1483,39'
          Dst:             __errno_location
        - Src:             'bindings.c:1483,30'
          Dst:             strerror
        - Src:             'bindings.c:1480,11'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1488,9'
          Dst:             find_config_next
        - Src:             'bindings.c:1491,3'
          Dst:             destroy_pool
    - functionName:    pr_ipbind_find
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 610
      functionLinenumberEnd: 643
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          132
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - init_ipbind_table
        - ipbind_hash_addr
        - pr_netaddr_cmp
        - pr_signals_handle
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:615,5'
          Dst:             __errno_location
        - Src:             'bindings.c:620,3'
          Dst:             init_ipbind_table
        - Src:             'bindings.c:622,7'
          Dst:             ipbind_hash_addr
        - Src:             'bindings.c:625,5'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:632,9'
          Dst:             pr_netaddr_cmp
        - Src:             'bindings.c:641,3'
          Dst:             __errno_location
    - functionName:    pr_namebind_create
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 955
      functionLinenumberEnd: 1062
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          282
      EdgeCount:       55
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - make_array
        - ntohs
        - pcalloc
        - pr_ipbind_find
        - pr_netaddr_clear
        - pr_netaddr_get_family
        - pr_netaddr_get_ipstr
        - pr_netaddr_get_port
        - pr_netaddr_set_family
        - pr_netaddr_set_sockaddr_any
        - pr_netaddr_use_ipv6
        - pr_signals_handle
        - pr_str_is_fnmatch
        - pr_trace_msg
        - push_array
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:961,5'
          Dst:             __errno_location
        - Src:             'bindings.c:966,16'
          Dst:             pr_netaddr_get_port
        - Src:             'bindings.c:966,10'
          Dst:             ntohs
        - Src:             'bindings.c:977,19'
          Dst:             pr_netaddr_get_family
        - Src:             'bindings.c:978,5'
          Dst:             pr_netaddr_clear
        - Src:             'bindings.c:979,5'
          Dst:             pr_netaddr_set_family
        - Src:             'bindings.c:980,5'
          Dst:             pr_netaddr_set_sockaddr_any
        - Src:             'bindings.c:982,14'
          Dst:             pr_ipbind_find
        - Src:             'bindings.c:986,9'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'bindings.c:989,7'
          Dst:             pr_netaddr_clear
        - Src:             'bindings.c:990,7'
          Dst:             pr_netaddr_set_family
        - Src:             'bindings.c:991,7'
          Dst:             pr_netaddr_set_sockaddr_any
        - Src:             'bindings.c:993,16'
          Dst:             pr_ipbind_find
        - Src:             'bindings.c:999,21'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:997,5'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1003,5'
          Dst:             __errno_location
        - Src:             'bindings.c:1009,28'
          Dst:             make_array
        - Src:             'bindings.c:1017,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1030,13'
          Dst:             strcasecmp
        - Src:             'bindings.c:1031,11'
          Dst:             __errno_location
        - Src:             'bindings.c:1038,32'
          Dst:             pcalloc
        - Src:             'bindings.c:1044,7'
          Dst:             pr_str_is_fnmatch
        - Src:             'bindings.c:1050,5'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1048,3'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1060,24'
          Dst:             push_array
    - functionName:    pr_namebind_open
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1221
      functionLinenumberEnd: 1244
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          83
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - ntohs
        - pr_namebind_find
        - pr_netaddr_get_port
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:1227,5'
          Dst:             __errno_location
        - Src:             'bindings.c:1231,16'
          Dst:             pr_netaddr_get_port
        - Src:             'bindings.c:1231,10'
          Dst:             ntohs
        - Src:             'bindings.c:1236,14'
          Dst:             pr_namebind_find
        - Src:             'bindings.c:1238,5'
          Dst:             __errno_location
    - functionName:    pr_namebind_find
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1065
      functionLinenumberEnd: 1187
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          332
      EdgeCount:       65
      CyclomaticComplexity: 19
      functionsReached:
        - __errno_location
        - pr_fnmatch
        - pr_ipbind_find
        - pr_netaddr_clear
        - pr_netaddr_get_family
        - pr_netaddr_get_ipstr
        - pr_netaddr_set_family
        - pr_netaddr_set_sockaddr_any
        - pr_netaddr_use_ipv6
        - pr_signals_handle
        - pr_trace_msg
        - strcasecmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:1070,5'
          Dst:             __errno_location
        - Src:             'bindings.c:1075,12'
          Dst:             pr_ipbind_find
        - Src:             'bindings.c:1082,19'
          Dst:             pr_netaddr_get_family
        - Src:             'bindings.c:1083,5'
          Dst:             pr_netaddr_clear
        - Src:             'bindings.c:1084,5'
          Dst:             pr_netaddr_set_family
        - Src:             'bindings.c:1085,5'
          Dst:             pr_netaddr_set_sockaddr_any
        - Src:             'bindings.c:1087,14'
          Dst:             pr_ipbind_find
        - Src:             'bindings.c:1091,9'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'bindings.c:1094,7'
          Dst:             pr_netaddr_clear
        - Src:             'bindings.c:1095,7'
          Dst:             pr_netaddr_set_family
        - Src:             'bindings.c:1096,7'
          Dst:             pr_netaddr_set_sockaddr_any
        - Src:             'bindings.c:1098,16'
          Dst:             pr_ipbind_find
        - Src:             'bindings.c:1105,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1102,5'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1109,5'
          Dst:             __errno_location
        - Src:             'bindings.c:1121,5'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1126,26'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1124,7'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1133,24'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1131,5'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1137,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1147,9'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1159,9'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1164,15'
          Dst:             strcasecmp
        - Src:             'bindings.c:1171,15'
          Dst:             pr_fnmatch
        - Src:             'bindings.c:1172,13'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:1178,11'
          Dst:             pr_trace_msg
    - functionName:    init_ipbind_table
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         4
      ICount:          18
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ipbind_hash_addr
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_netaddr_get_inaddr
        - pr_netaddr_get_inaddr_len
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:66,12'
          Dst:             pr_netaddr_get_inaddr_len
        - Src:             'bindings.c:72,33'
          Dst:             pr_netaddr_get_inaddr
    - functionName:    server_cleanup_cb
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_standalone_bindings
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1553
      functionLinenumberEnd: 1802
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         122
      ICount:          794
      EdgeCount:       163
      CyclomaticComplexity: 43
      functionsReached:
        - __errno_location
        - destroy_pool
        - get_param_ptr
        - init_ipbind_table
        - pr_inet_set_default_family
        - pr_ipbind_add_binds
        - pr_ipbind_create
        - pr_ipbind_get_listening_conn
        - pr_ipbind_open
        - pr_log_pri
        - pr_netaddr_get_family
        - pr_netaddr_get_ipstr
        - pr_netaddr_use_ipv6
        - pr_signals_handle
        - process_serveralias
        - register_cleanup2
        - server_cleanup_cb
        - strerror
        - trace_ipbind_table
        - xaset_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:1559,3'
          Dst:             init_ipbind_table
        - Src:             'bindings.c:1571,11'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'bindings.c:1572,9'
          Dst:             pr_inet_set_default_family
        - Src:             'bindings.c:1577,26'
          Dst:             pr_netaddr_get_family
        - Src:             'bindings.c:1578,9'
          Dst:             pr_inet_set_default_family
        - Src:             'bindings.c:1586,27'
          Dst:             pr_ipbind_get_listening_conn
        - Src:             'bindings.c:1596,20'
          Dst:             get_param_ptr
        - Src:             'bindings.c:1612,11'
          Dst:             pr_ipbind_create
        - Src:             'bindings.c:1618,18'
          Dst:             __errno_location
        - Src:             'bindings.c:1618,9'
          Dst:             strerror
        - Src:             'bindings.c:1615,7'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1621,11'
          Dst:             pr_ipbind_open
        - Src:             'bindings.c:1626,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1626,59'
          Dst:             __errno_location
        - Src:             'bindings.c:1626,50'
          Dst:             strerror
        - Src:             'bindings.c:1624,7'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1629,11'
          Dst:             pr_ipbind_add_binds
        - Src:             'bindings.c:1633,56'
          Dst:             __errno_location
        - Src:             'bindings.c:1633,47'
          Dst:             strerror
        - Src:             'bindings.c:1631,7'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1640,5'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1642,22'
          Dst:             process_serveralias
        - Src:             'bindings.c:1655,24'
          Dst:             get_param_ptr
        - Src:             'bindings.c:1671,15'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'bindings.c:1672,13'
          Dst:             pr_inet_set_default_family
        - Src:             'bindings.c:1675,46'
          Dst:             pr_netaddr_get_family
        - Src:             'bindings.c:1675,13'
          Dst:             pr_inet_set_default_family
        - Src:             'bindings.c:1682,24'
          Dst:             pr_ipbind_get_listening_conn
        - Src:             'bindings.c:1688,15'
          Dst:             pr_ipbind_create
        - Src:             'bindings.c:1692,71'
          Dst:             __errno_location
        - Src:             'bindings.c:1692,62'
          Dst:             strerror
        - Src:             'bindings.c:1690,11'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1695,15'
          Dst:             pr_ipbind_open
        - Src:             'bindings.c:1700,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1700,56'
          Dst:             __errno_location
        - Src:             'bindings.c:1700,47'
          Dst:             strerror
        - Src:             'bindings.c:1698,11'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1703,15'
          Dst:             pr_ipbind_add_binds
        - Src:             'bindings.c:1707,53'
          Dst:             __errno_location
        - Src:             'bindings.c:1707,44'
          Dst:             strerror
        - Src:             'bindings.c:1705,11'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1713,15'
          Dst:             pr_ipbind_create
        - Src:             'bindings.c:1717,71'
          Dst:             __errno_location
        - Src:             'bindings.c:1717,62'
          Dst:             strerror
        - Src:             'bindings.c:1715,11'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1720,15'
          Dst:             pr_ipbind_open
        - Src:             'bindings.c:1725,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1725,56'
          Dst:             __errno_location
        - Src:             'bindings.c:1725,47'
          Dst:             strerror
        - Src:             'bindings.c:1723,11'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1728,15'
          Dst:             pr_ipbind_add_binds
        - Src:             'bindings.c:1732,53'
          Dst:             __errno_location
        - Src:             'bindings.c:1732,44'
          Dst:             strerror
        - Src:             'bindings.c:1730,11'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1746,24'
          Dst:             get_param_ptr
        - Src:             'bindings.c:1753,7'
          Dst:             register_cleanup2
        - Src:             'bindings.c:1753,7'
          Dst:             server_cleanup_cb
        - Src:             'bindings.c:1755,13'
          Dst:             pr_ipbind_create
        - Src:             'bindings.c:1759,69'
          Dst:             __errno_location
        - Src:             'bindings.c:1759,60'
          Dst:             strerror
        - Src:             'bindings.c:1757,9'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1762,13'
          Dst:             pr_ipbind_open
        - Src:             'bindings.c:1767,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1767,54'
          Dst:             __errno_location
        - Src:             'bindings.c:1767,45'
          Dst:             strerror
        - Src:             'bindings.c:1765,9'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1770,13'
          Dst:             pr_ipbind_add_binds
        - Src:             'bindings.c:1774,51'
          Dst:             __errno_location
        - Src:             'bindings.c:1774,42'
          Dst:             strerror
        - Src:             'bindings.c:1772,9'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1781,5'
          Dst:             process_serveralias
        - Src:             'bindings.c:1784,3'
          Dst:             trace_ipbind_table
        - Src:             'bindings.c:1791,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:1795,9'
          Dst:             xaset_remove
        - Src:             'bindings.c:1796,9'
          Dst:             destroy_pool
    - functionName:    pr_ipbind_get_listening_conn
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          289
      EdgeCount:       63
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
        - make_sub_pool
        - pcalloc
        - pr_inet_create_conn
        - pr_inet_generate_socket_event
        - pr_netaddr_dup
        - pr_netaddr_get_ipstr
        - pr_pool_tag
        - pr_signals_handle
        - strcmp
        - xaset_create
        - xaset_insert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:107,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:113,20'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:125,22'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:129,22'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:129,15'
          Dst:             strcmp
        - Src:             'bindings.c:148,27'
          Dst:             make_sub_pool
        - Src:             'bindings.c:149,5'
          Dst:             pr_pool_tag
        - Src:             'bindings.c:151,27'
          Dst:             xaset_create
        - Src:             'bindings.c:154,7'
          Dst:             make_sub_pool
        - Src:             'bindings.c:155,3'
          Dst:             pr_pool_tag
        - Src:             'bindings.c:157,7'
          Dst:             pr_inet_create_conn
        - Src:             'bindings.c:168,3'
          Dst:             pr_inet_generate_socket_event
        - Src:             'bindings.c:172,8'
          Dst:             pcalloc
        - Src:             'bindings.c:175,14'
          Dst:             pr_netaddr_dup
        - Src:             'bindings.c:177,7'
          Dst:             __errno_location
        - Src:             'bindings.c:183,3'
          Dst:             xaset_insert
    - functionName:    pr_ipbind_create
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 481
      functionLinenumberEnd: 569
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          283
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - find_config
        - init_ipbind_table
        - ipbind_hash_addr
        - make_sub_pool
        - pcalloc
        - pr_log_debug
        - pr_log_pri
        - pr_netaddr_cmp
        - pr_netaddr_get_ipstr
        - pr_pool_tag
        - pr_signals_handle
        - pr_trace_msg
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:487,5'
          Dst:             __errno_location
        - Src:             'bindings.c:492,3'
          Dst:             init_ipbind_table
        - Src:             'bindings.c:494,7'
          Dst:             ipbind_hash_addr
        - Src:             'bindings.c:496,5'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:495,3'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:500,5'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:502,9'
          Dst:             pr_netaddr_cmp
        - Src:             'bindings.c:519,9'
          Dst:             find_config
        - Src:             'bindings.c:522,29'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:521,7'
          Dst:             pr_log_pri
        - Src:             'bindings.c:524,7'
          Dst:             __errno_location
        - Src:             'bindings.c:529,27'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:528,5'
          Dst:             pr_log_debug
        - Src:             'bindings.c:534,20'
          Dst:             make_sub_pool
        - Src:             'bindings.c:535,5'
          Dst:             pr_pool_tag
        - Src:             'bindings.c:538,12'
          Dst:             pcalloc
        - Src:             'bindings.c:548,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:547,3'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:553,5'
          Dst:             pr_trace_msg
    - functionName:    pr_ipbind_open
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 858
      functionLinenumberEnd: 931
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          212
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - pr_ipbind_find
        - pr_namebind_open
        - pr_signals_handle
        - pr_trace_msg
        - strerror
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:862,5'
          Dst:             __errno_location
        - Src:             'bindings.c:867,12'
          Dst:             pr_ipbind_find
        - Src:             'bindings.c:869,5'
          Dst:             __errno_location
        - Src:             'bindings.c:914,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:917,13'
          Dst:             pr_namebind_open
        - Src:             'bindings.c:922,20'
          Dst:             __errno_location
        - Src:             'bindings.c:922,11'
          Dst:             strerror
        - Src:             'bindings.c:920,9'
          Dst:             pr_trace_msg
    - functionName:    pr_ipbind_add_binds
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          230
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - find_config
        - find_config_next
        - pr_ipbind_create
        - pr_ipbind_get_listening_conn
        - pr_ipbind_open
        - pr_log_pri
        - pr_netaddr_get_addr
        - pr_netaddr_get_ipstr
        - pr_signals_handle
        - strerror
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:257,5'
          Dst:             __errno_location
        - Src:             'bindings.c:261,7'
          Dst:             find_config
        - Src:             'bindings.c:265,5'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:267,12'
          Dst:             pr_netaddr_get_addr
        - Src:             'bindings.c:269,7'
          Dst:             pr_log_pri
        - Src:             'bindings.c:271,11'
          Dst:             find_config_next
        - Src:             'bindings.c:280,21'
          Dst:             pr_ipbind_get_listening_conn
        - Src:             'bindings.c:285,13'
          Dst:             pr_ipbind_create
        - Src:             'bindings.c:289,69'
          Dst:             __errno_location
        - Src:             'bindings.c:289,60'
          Dst:             strerror
        - Src:             'bindings.c:287,9'
          Dst:             pr_log_pri
        - Src:             'bindings.c:292,13'
          Dst:             pr_ipbind_open
        - Src:             'bindings.c:297,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:297,48'
          Dst:             __errno_location
        - Src:             'bindings.c:297,39'
          Dst:             strerror
        - Src:             'bindings.c:295,9'
          Dst:             pr_log_pri
        - Src:             'bindings.c:301,13'
          Dst:             pr_ipbind_create
        - Src:             'bindings.c:305,69'
          Dst:             __errno_location
        - Src:             'bindings.c:305,60'
          Dst:             strerror
        - Src:             'bindings.c:303,9'
          Dst:             pr_log_pri
        - Src:             'bindings.c:308,13'
          Dst:             pr_ipbind_open
        - Src:             'bindings.c:313,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:313,48'
          Dst:             __errno_location
        - Src:             'bindings.c:313,39'
          Dst:             strerror
        - Src:             'bindings.c:311,9'
          Dst:             pr_log_pri
        - Src:             'bindings.c:317,9'
          Dst:             find_config_next
    - functionName:    init_inetd_bindings
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1269
      functionLinenumberEnd: 1378
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         43
      ICount:          338
      EdgeCount:       56
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - exit
        - get_param_ptr
        - pr_inet_create_conn
        - pr_inet_generate_socket_event
        - pr_inet_get_conn_info
        - pr_ipbind_add_binds
        - pr_ipbind_create
        - pr_ipbind_open
        - pr_log_pri
        - pr_netaddr_get_ipstr
        - register_cleanup2
        - server_cleanup_cb
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:1279,25'
          Dst:             pr_inet_create_conn
        - Src:             'bindings.c:1288,3'
          Dst:             pr_inet_generate_socket_event
        - Src:             'bindings.c:1292,7'
          Dst:             pr_inet_get_conn_info
        - Src:             'bindings.c:1293,18'
          Dst:             __errno_location
        - Src:             'bindings.c:1296,7'
          Dst:             strerror
        - Src:             'bindings.c:1295,5'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1299,7'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1303,5'
          Dst:             exit
        - Src:             'bindings.c:1306,20'
          Dst:             get_param_ptr
        - Src:             'bindings.c:1312,9'
          Dst:             pr_ipbind_create
        - Src:             'bindings.c:1317,69'
          Dst:             __errno_location
        - Src:             'bindings.c:1317,60'
          Dst:             strerror
        - Src:             'bindings.c:1315,5'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1320,9'
          Dst:             pr_ipbind_open
        - Src:             'bindings.c:1325,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1325,57'
          Dst:             __errno_location
        - Src:             'bindings.c:1325,48'
          Dst:             strerror
        - Src:             'bindings.c:1323,5'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1328,9'
          Dst:             pr_ipbind_add_binds
        - Src:             'bindings.c:1332,54'
          Dst:             __errno_location
        - Src:             'bindings.c:1332,45'
          Dst:             strerror
        - Src:             'bindings.c:1330,5'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1345,5'
          Dst:             register_cleanup2
        - Src:             'bindings.c:1345,5'
          Dst:             server_cleanup_cb
        - Src:             'bindings.c:1348,22'
          Dst:             get_param_ptr
        - Src:             'bindings.c:1354,11'
          Dst:             pr_ipbind_create
        - Src:             'bindings.c:1358,67'
          Dst:             __errno_location
        - Src:             'bindings.c:1358,58'
          Dst:             strerror
        - Src:             'bindings.c:1356,7'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1361,11'
          Dst:             pr_ipbind_open
        - Src:             'bindings.c:1366,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:1366,52'
          Dst:             __errno_location
        - Src:             'bindings.c:1366,43'
          Dst:             strerror
        - Src:             'bindings.c:1364,7'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1369,11'
          Dst:             pr_ipbind_add_binds
        - Src:             'bindings.c:1373,49'
          Dst:             __errno_location
        - Src:             'bindings.c:1373,40'
          Dst:             strerror
        - Src:             'bindings.c:1371,7'
          Dst:             pr_log_pri
    - functionName:    init_bindings
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1804
      functionLinenumberEnd: 1832
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         14
      ICount:          71
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - close
        - exit
        - init_inetd_bindings
        - init_standalone_bindings
        - pr_log_pri
        - pr_netaddr_disable_ipv6
        - socket
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:1811,10'
          Dst:             socket
        - Src:             'bindings.c:1813,5'
          Dst:             pr_netaddr_disable_ipv6
        - Src:             'bindings.c:1816,12'
          Dst:             close
        - Src:             'bindings.c:1821,11'
          Dst:             init_inetd_bindings
        - Src:             'bindings.c:1824,11'
          Dst:             init_standalone_bindings
        - Src:             'bindings.c:1828,5'
          Dst:             pr_log_pri
        - Src:             'bindings.c:1830,5'
          Dst:             exit
    - functionName:    free_bindings
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1246
      functionLinenumberEnd: 1267
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          61
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - destroy_pool
        - pr_signals_handle
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:1248,5'
          Dst:             destroy_pool
        - Src:             'bindings.c:1263,7'
          Dst:             pr_signals_handle
    - functionName:    pr_namebind_count
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1203
      functionLinenumberEnd: 1218
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - pr_ipbind_find
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:1211,12'
          Dst:             pr_ipbind_find
    - functionName:    pr_namebind_get_server
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1190
      functionLinenumberEnd: 1201
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_namebind_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:1195,14'
          Dst:             pr_namebind_find
    - functionName:    pr_ipbind_listen
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 781
      functionLinenumberEnd: 854
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         45
      ICount:          285
      EdgeCount:       58
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - make_array
        - make_sub_pool
        - pr_inet_listen
        - pr_inet_resetlisten
        - pr_netaddr_get_ipstr
        - pr_pool_tag
        - pr_signals_handle
        - pr_trace_msg
        - push_array
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:787,5'
          Dst:             __errno_location
        - Src:             'bindings.c:794,20'
          Dst:             make_sub_pool
        - Src:             'bindings.c:795,5'
          Dst:             pr_pool_tag
        - Src:             'bindings.c:800,21'
          Dst:             make_array
        - Src:             'bindings.c:816,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:826,11'
          Dst:             pr_inet_listen
        - Src:             'bindings.c:831,15'
          Dst:             pr_inet_resetlisten
        - Src:             'bindings.c:835,15'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:836,24'
          Dst:             __errno_location
        - Src:             'bindings.c:836,15'
          Dst:             strerror
        - Src:             'bindings.c:833,13'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:847,25'
          Dst:             push_array
    - functionName:    ipbind_find_port
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 607
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          121
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - pr_signals_handle
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:584,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:602,5'
          Dst:             __errno_location
    - functionName:    pr_ipbind_get_server
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 686
      functionLinenumberEnd: 779
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          220
      EdgeCount:       41
      CyclomaticComplexity: 13
      functionsReached:
        - ipbind_find_port
        - pr_ipbind_find
        - pr_log_debug
        - pr_netaddr_clear
        - pr_netaddr_get_family
        - pr_netaddr_get_ipstr
        - pr_netaddr_is_loopback
        - pr_netaddr_set_family
        - pr_netaddr_set_sockaddr_any
        - pr_netaddr_use_ipv6
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:695,12'
          Dst:             pr_ipbind_find
        - Src:             'bindings.c:698,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:697,5'
          Dst:             pr_log_debug
        - Src:             'bindings.c:710,17'
          Dst:             pr_netaddr_get_family
        - Src:             'bindings.c:712,3'
          Dst:             pr_netaddr_clear
        - Src:             'bindings.c:713,3'
          Dst:             pr_netaddr_set_family
        - Src:             'bindings.c:714,3'
          Dst:             pr_netaddr_set_sockaddr_any
        - Src:             'bindings.c:716,12'
          Dst:             pr_ipbind_find
        - Src:             'bindings.c:719,45'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:718,5'
          Dst:             pr_log_debug
        - Src:             'bindings.c:726,7'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'bindings.c:735,5'
          Dst:             pr_netaddr_clear
        - Src:             'bindings.c:736,5'
          Dst:             pr_netaddr_set_family
        - Src:             'bindings.c:737,5'
          Dst:             pr_netaddr_set_sockaddr_any
        - Src:             'bindings.c:739,14'
          Dst:             pr_ipbind_find
        - Src:             'bindings.c:742,47'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:741,7'
          Dst:             pr_log_debug
        - Src:             'bindings.c:752,12'
          Dst:             ipbind_find_port
        - Src:             'bindings.c:754,5'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:765,29'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:764,5'
          Dst:             pr_log_debug
        - Src:             'bindings.c:774,7'
          Dst:             pr_netaddr_is_loopback
    - functionName:    pr_ipbind_get
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 645
      functionLinenumberEnd: 684
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          90
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_signals_handle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:658,7'
          Dst:             __errno_location
        - Src:             'bindings.c:675,5'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:682,3'
          Dst:             __errno_location
    - functionName:    pr_ipbind_close_listeners
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         16
      ICount:          90
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - close
        - pr_signals_handle
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:468,5'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:472,14'
          Dst:             close
    - functionName:    pr_namebind_close
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 933
      functionLinenumberEnd: 952
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - ntohs
        - pr_namebind_find
        - pr_netaddr_get_port
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:939,5'
          Dst:             __errno_location
        - Src:             'bindings.c:943,16'
          Dst:             pr_netaddr_get_port
        - Src:             'bindings.c:943,10'
          Dst:             ntohs
        - Src:             'bindings.c:944,14'
          Dst:             pr_namebind_find
        - Src:             'bindings.c:946,5'
          Dst:             __errno_location
    - functionName:    pr_ipbind_close
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 452
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          449
      EdgeCount:       90
      CyclomaticComplexity: 24
      functionsReached:
        - __errno_location
        - ipbind_hash_addr
        - pr_inet_close
        - pr_log_pri
        - pr_namebind_close
        - pr_netaddr_cmp
        - pr_netaddr_get_ipstr
        - pr_signals_handle
        - pr_trace_msg
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:331,9'
          Dst:             ipbind_hash_addr
        - Src:             'bindings.c:335,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:334,7'
          Dst:             pr_log_pri
        - Src:             'bindings.c:336,7'
          Dst:             __errno_location
        - Src:             'bindings.c:341,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:343,11'
          Dst:             pr_netaddr_cmp
        - Src:             'bindings.c:352,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:351,7'
          Dst:             pr_log_pri
        - Src:             'bindings.c:353,7'
          Dst:             __errno_location
        - Src:             'bindings.c:359,7'
          Dst:             __errno_location
        - Src:             'bindings.c:374,7'
          Dst:             pr_inet_close
        - Src:             'bindings.c:395,9'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:398,13'
          Dst:             pr_namebind_close
        - Src:             'bindings.c:401,26'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:402,22'
          Dst:             __errno_location
        - Src:             'bindings.c:402,13'
          Dst:             strerror
        - Src:             'bindings.c:399,11'
          Dst:             pr_trace_msg
        - Src:             'bindings.c:412,7'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:417,11'
          Dst:             pr_inet_close
        - Src:             'bindings.c:436,13'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:439,17'
          Dst:             pr_namebind_close
        - Src:             'bindings.c:442,30'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'bindings.c:443,25'
          Dst:             __errno_location
        - Src:             'bindings.c:443,16'
          Dst:             strerror
        - Src:             'bindings.c:440,15'
          Dst:             pr_trace_msg
    - functionName:    pr_ipbind_accept_conn
      functionSourceFile: '/src/proftpd/src/bindings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          172
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - pr_inet_accept_nowait
        - pr_log_pri
        - pr_signals_handle
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'bindings.c:204,5'
          Dst:             __errno_location
        - Src:             'bindings.c:211,5'
          Dst:             pr_signals_handle
        - Src:             'bindings.c:214,16'
          Dst:             pr_inet_accept_nowait
        - Src:             'bindings.c:217,22'
          Dst:             __errno_location
        - Src:             'bindings.c:230,33'
          Dst:             strerror
        - Src:             'bindings.c:229,13'
          Dst:             pr_log_pri
        - Src:             'bindings.c:236,11'
          Dst:             __errno_location
        - Src:             'bindings.c:246,3'
          Dst:             __errno_location
    - functionName:    pr_session_get_ttyname
      functionSourceFile: '/src/proftpd/src/session.c'
      linkageType:     InternalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 498
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         32
      ICount:          162
      EdgeCount:       43
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - getpid
        - pr_snprintf
        - pr_table_get
        - pstrdup
        - strcmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'session.c:444,5'
          Dst:             __errno_location
        - Src:             'session.c:450,12'
          Dst:             pstrdup
        - Src:             'session.c:453,16'
          Dst:             pr_table_get
        - Src:             'session.c:455,9'
          Dst:             strcmp
        - Src:             'session.c:456,9'
          Dst:             strcmp
        - Src:             'session.c:463,16'
          Dst:             strcmp
        - Src:             'session.c:464,16'
          Dst:             strcmp
        - Src:             'session.c:465,16'
          Dst:             strcmp
        - Src:             'session.c:466,16'
          Dst:             strcmp
        - Src:             'session.c:472,22'
          Dst:             pstrdup
        - Src:             'session.c:473,14'
          Dst:             pstrdup
        - Src:             'session.c:491,40'
          Dst:             getpid
        - Src:             'session.c:490,3'
          Dst:             pr_snprintf
        - Src:             'session.c:495,18'
          Dst:             pstrdup
        - Src:             'session.c:497,10'
          Dst:             pstrdup
    - functionName:    pr_session_set_protocol
      functionSourceFile: '/src/proftpd/src/session.c'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          76
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_scoreboard_entry_update
        - pr_table_add
        - pr_table_exists
        - pr_table_set
        - pstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'session.c:416,5'
          Dst:             __errno_location
        - Src:             'session.c:420,11'
          Dst:             pr_table_exists
        - Src:             'session.c:422,39'
          Dst:             pstrdup
        - Src:             'session.c:423,7'
          Dst:             pstrdup
        - Src:             'session.c:422,11'
          Dst:             pr_table_set
        - Src:             'session.c:424,14'
          Dst:             __errno_location
        - Src:             'session.c:427,39'
          Dst:             pstrdup
        - Src:             'session.c:428,7'
          Dst:             pstrdup
        - Src:             'session.c:427,11'
          Dst:             pr_table_add
        - Src:             'session.c:429,14'
          Dst:             __errno_location
        - Src:             'session.c:433,3'
          Dst:             pr_scoreboard_entry_update
        - Src:             'session.c:435,3'
          Dst:             __errno_location
    - functionName:    pr_session_set_idle
      functionSourceFile: '/src/proftpd/src/session.c'
      linkageType:     InternalLinkage
      functionLinenumber: 391
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_proctitle_set
        - pr_scoreboard_entry_update
        - time
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'session.c:395,26'
          Dst:             time
        - Src:             'session.c:394,3'
          Dst:             pr_scoreboard_entry_update
        - Src:             'session.c:398,3'
          Dst:             pr_scoreboard_entry_update
        - Src:             'session.c:408,3'
          Dst:             pr_proctitle_set
    - functionName:    pr_session_send_banner
      functionSourceFile: '/src/proftpd/src/session.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         63
      ICount:          361
      EdgeCount:       83
      CyclomaticComplexity: 22
      functionsReached:
        - __errno_location
        - find_config
        - get_param_ptr
        - pr_display_file
        - pr_log_debug
        - pr_netaddr_get_addr
        - pr_netaddr_get_ipstr
        - pr_response_add
        - pr_response_send
        - sreplace
        - strerror
        - strstr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'session.c:275,13'
          Dst:             get_param_ptr
        - Src:             'session.c:277,9'
          Dst:             pr_display_file
        - Src:             'session.c:279,27'
          Dst:             __errno_location
        - Src:             'session.c:279,18'
          Dst:             strerror
        - Src:             'session.c:278,7'
          Dst:             pr_log_debug
        - Src:             'session.c:283,19'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'session.c:285,10'
          Dst:             find_config
        - Src:             'session.c:301,7'
          Dst:             pr_log_debug
        - Src:             'session.c:303,19'
          Dst:             pr_netaddr_get_addr
        - Src:             'session.c:311,9'
          Dst:             pr_log_debug
        - Src:             'session.c:316,23'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'session.c:320,7'
          Dst:             find_config
        - Src:             'session.c:325,21'
          Dst:             get_param_ptr
        - Src:             'session.c:333,11'
          Dst:             strstr
        - Src:             'session.c:334,24'
          Dst:             sreplace
        - Src:             'session.c:338,11'
          Dst:             strstr
        - Src:             'session.c:339,24'
          Dst:             sreplace
        - Src:             'session.c:343,11'
          Dst:             strstr
        - Src:             'session.c:344,24'
          Dst:             sreplace
        - Src:             'session.c:348,11'
          Dst:             strstr
        - Src:             'session.c:349,24'
          Dst:             sreplace
        - Src:             'session.c:354,9'
          Dst:             pr_response_send
        - Src:             'session.c:357,9'
          Dst:             pr_response_add
        - Src:             'session.c:364,9'
          Dst:             pr_response_send
        - Src:             'session.c:367,9'
          Dst:             pr_response_add
        - Src:             'session.c:372,9'
          Dst:             pr_response_send
        - Src:             'session.c:376,9'
          Dst:             pr_response_add
        - Src:             'session.c:383,7'
          Dst:             pr_response_send
        - Src:             'session.c:386,7'
          Dst:             pr_response_add
    - functionName:    pr_session_get_protocol
      functionSourceFile: '/src/proftpd/src/session.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          105
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - pr_table_get
        - strcmp
      functionUses:    18
      BranchProfiles:  []
      Callsites:
        - Src:             'session.c:242,16'
          Dst:             pr_table_get
        - Src:             'session.c:253,7'
          Dst:             strcmp
        - Src:             'session.c:254,7'
          Dst:             strcmp
        - Src:             'session.c:258,7'
          Dst:             strcmp
        - Src:             'session.c:259,7'
          Dst:             strcmp
        - Src:             'session.c:260,7'
          Dst:             strcmp
        - Src:             'session.c:261,7'
          Dst:             strcmp
    - functionName:    pr_session_get_disconnect_reason
      functionSourceFile: '/src/proftpd/src/session.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          104
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - pr_table_get
      functionUses:    1
      BranchProfiles:
        - Branch String:   'session.c:178,3'
          Branch Sides:    []
      Callsites:
        - Src:             'session.c:233,16'
          Dst:             pr_table_get
    - functionName:    sess_cleanup
      functionSourceFile: '/src/proftpd/src/session.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         51
      ICount:          232
      EdgeCount:       69
      CyclomaticComplexity: 20
      functionsReached:
        - __errno_location
        - log_closesyslog
        - log_wtmp
        - pr_event_generate
        - pr_inet_close
        - pr_log_debug
        - pr_log_pri
        - pr_netaddr_get_sess_remote_addr
        - pr_netaddr_get_sess_remote_name
        - pr_scoreboard_entry_del
        - pr_session_get_protocol
        - pr_session_get_ttyname
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'session.c:44,11'
          Dst:             pr_scoreboard_entry_del
        - Src:             'session.c:45,11'
          Dst:             __errno_location
        - Src:             'session.c:46,11'
          Dst:             __errno_location
        - Src:             'session.c:48,20'
          Dst:             __errno_location
        - Src:             'session.c:48,11'
          Dst:             strerror
        - Src:             'session.c:47,9'
          Dst:             pr_log_debug
        - Src:             'session.c:54,9'
          Dst:             pr_scoreboard_entry_del
        - Src:             'session.c:55,9'
          Dst:             __errno_location
        - Src:             'session.c:56,9'
          Dst:             __errno_location
        - Src:             'session.c:58,18'
          Dst:             __errno_location
        - Src:             'session.c:58,9'
          Dst:             strerror
        - Src:             'session.c:57,7'
          Dst:             pr_log_debug
        - Src:             'session.c:67,16'
          Dst:             pr_session_get_ttyname
        - Src:             'session.c:68,28'
          Dst:             pr_netaddr_get_sess_remote_name
        - Src:             'session.c:69,7'
          Dst:             pr_netaddr_get_sess_remote_addr
        - Src:             'session.c:68,5'
          Dst:             log_wtmp
        - Src:             'session.c:76,5'
          Dst:             pr_inet_close
        - Src:             'session.c:81,5'
          Dst:             pr_inet_close
        - Src:             'session.c:86,3'
          Dst:             pr_event_generate
        - Src:             'session.c:103,7'
          Dst:             pr_session_get_protocol
        - Src:             'session.c:102,5'
          Dst:             pr_log_pri
        - Src:             'session.c:106,3'
          Dst:             log_closesyslog
    - functionName:    pr_session_end
      functionSourceFile: '/src/proftpd/src/session.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - _exit
        - sess_cleanup
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'session.c:144,3'
          Dst:             sess_cleanup
        - Src:             'session.c:171,3'
          Dst:             _exit
    - functionName:    _exit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_session_disconnect
      functionSourceFile: '/src/proftpd/src/session.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          85
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_log_debug
        - pr_session_end
        - pr_table_add_dup
        - strerror
      functionUses:    32
      BranchProfiles:  []
      Callsites:
        - Src:             'session.c:123,9'
          Dst:             pr_table_add_dup
        - Src:             'session.c:125,20'
          Dst:             __errno_location
        - Src:             'session.c:129,32'
          Dst:             strerror
        - Src:             'session.c:128,9'
          Dst:             pr_log_debug
        - Src:             'session.c:138,3'
          Dst:             pr_session_end
    - functionName:    session_set_connected
      functionSourceFile: '/src/proftpd/src/session.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ctrls_prepare
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          63
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_block_ctrls
        - pr_ctrls_alloc
        - pr_unblock_ctrls
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:90,3'
          Dst:             pr_block_ctrls
        - Src:             'ctrls.c:93,10'
          Dst:             pr_ctrls_alloc
        - Src:             'ctrls.c:107,3'
          Dst:             pr_unblock_ctrls
    - functionName:    pr_block_ctrls
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1749
      functionLinenumberEnd: 1751
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_ctrls_alloc
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - pcalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:140,27'
          Dst:             pcalloc
    - functionName:    pr_unblock_ctrls
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1753
      functionLinenumberEnd: 1755
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_ctrls
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2525
      functionLinenumberEnd: 2529
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - init_ctrls2
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:2528,10'
          Dst:             init_ctrls2
    - functionName:    init_ctrls2
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2427
      functionLinenumberEnd: 2523
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          175
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - bind
        - close
        - ctrls_cleanup_cb
        - destroy_pool
        - fstat
        - make_sub_pool
        - pr_log_debug
        - pr_pool_tag
        - pr_trace_msg
        - register_cleanup2
        - socket
        - sstrncpy
        - strerror
        - unlink
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:2434,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:2437,16'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:2438,3'
          Dst:             pr_pool_tag
        - Src:             'ctrls.c:2439,3'
          Dst:             register_cleanup2
        - Src:             'ctrls.c:2439,3'
          Dst:             ctrls_cleanup_cb
        - Src:             'ctrls.c:2456,8'
          Dst:             socket
        - Src:             'ctrls.c:2457,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:2461,7'
          Dst:             strerror
        - Src:             'ctrls.c:2460,5'
          Dst:             pr_log_debug
        - Src:             'ctrls.c:2463,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2469,3'
          Dst:             sstrncpy
        - Src:             'ctrls.c:2472,7'
          Dst:             bind
        - Src:             'ctrls.c:2473,14'
          Dst:             __errno_location
        - Src:             'ctrls.c:2476,20'
          Dst:             strerror
        - Src:             'ctrls.c:2475,5'
          Dst:             pr_log_debug
        - Src:             'ctrls.c:2477,12'
          Dst:             close
        - Src:             'ctrls.c:2478,12'
          Dst:             unlink
        - Src:             'ctrls.c:2480,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2484,7'
          Dst:             fstat
        - Src:             'ctrls.c:2485,14'
          Dst:             __errno_location
        - Src:             'ctrls.c:2488,20'
          Dst:             strerror
        - Src:             'ctrls.c:2487,5'
          Dst:             pr_log_debug
        - Src:             'ctrls.c:2489,12'
          Dst:             close
        - Src:             'ctrls.c:2490,12'
          Dst:             unlink
        - Src:             'ctrls.c:2492,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2497,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:2507,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:2516,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:2520,10'
          Dst:             close
        - Src:             'ctrls.c:2521,10'
          Dst:             unlink
    - functionName:    ctrls_cleanup_cb
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2415
      functionLinenumberEnd: 2424
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_ctrls_log
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2396
      functionLinenumberEnd: 2413
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - pr_log_vwritefile
      functionUses:    20
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:2409,9'
          Dst:             pr_log_vwritefile
    - functionName:    pr_ctrls_set_logfd
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2385
      functionLinenumberEnd: 2393
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - close
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:2389,12'
          Dst:             close
    - functionName:    pr_ctrls_unregister_module_actions
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2372
      functionLinenumberEnd: 2383
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_ctrls_unregister_module_actions2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:2376,9'
          Dst:             pr_ctrls_unregister_module_actions2
    - functionName:    pr_ctrls_unregister_module_actions2
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2314
      functionLinenumberEnd: 2369
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          244
      EdgeCount:       52
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - destroy_pool
        - pr_ctrls_unregister
        - pr_trace_msg
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:2321,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2333,11'
          Dst:             strcmp
        - Src:             'ctrls.c:2341,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:2354,11'
          Dst:             strcmp
        - Src:             'ctrls.c:2361,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:2363,7'
          Dst:             pr_ctrls_unregister
        - Src:             'ctrls.c:2364,7'
          Dst:             destroy_pool
    - functionName:    pr_ctrls_unregister
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          181
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - destroy_pool
        - pr_block_ctrls
        - pr_trace_msg
        - pr_unblock_ctrls
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:266,3'
          Dst:             pr_block_ctrls
        - Src:             'ctrls.c:271,28'
          Dst:             strcmp
        - Src:             'ctrls.c:287,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:292,7'
          Dst:             destroy_pool
        - Src:             'ctrls.c:296,3'
          Dst:             pr_unblock_ctrls
        - Src:             'ctrls.c:299,5'
          Dst:             __errno_location
    - functionName:    pr_ctrls_set_module_acls
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2300
      functionLinenumberEnd: 2311
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_ctrls_set_module_acls2
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:2304,9'
          Dst:             pr_ctrls_set_module_acls2
    - functionName:    pr_ctrls_set_module_acls2
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2218
      functionLinenumberEnd: 2297
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         62
      ICount:          357
      EdgeCount:       83
      CyclomaticComplexity: 23
      functionsReached:
        - __errno_location
        - pr_ctrls_set_group_acl
        - pr_ctrls_set_user_acl
        - strcasecmp
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:2227,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2231,7'
          Dst:             strcasecmp
        - Src:             'ctrls.c:2232,7'
          Dst:             strcasecmp
        - Src:             'ctrls.c:2233,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2244,9'
          Dst:             strcasecmp
        - Src:             'ctrls.c:2249,11'
          Dst:             strcmp
        - Src:             'ctrls.c:2257,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:2266,9'
          Dst:             strcasecmp
        - Src:             'ctrls.c:2274,11'
          Dst:             strcmp
        - Src:             'ctrls.c:2279,13'
          Dst:             strcasecmp
        - Src:             'ctrls.c:2280,17'
          Dst:             pr_ctrls_set_user_acl
        - Src:             'ctrls.c:2283,20'
          Dst:             strcasecmp
        - Src:             'ctrls.c:2284,17'
          Dst:             pr_ctrls_set_group_acl
    - functionName:    pr_ctrls_set_user_acl
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2159
      functionLinenumberEnd: 2214
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          162
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - destroy_pool
        - make_array
        - make_sub_pool
        - pr_auth_name2uid
        - pr_ctrls_parse_acl
        - push_array
        - strcasecmp
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:2170,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2174,14'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:2176,7'
          Dst:             strcasecmp
        - Src:             'ctrls.c:2186,11'
          Dst:             pr_ctrls_parse_acl
        - Src:             'ctrls.c:2189,14'
          Dst:             make_array
        - Src:             'ctrls.c:2194,9'
          Dst:             strcmp
        - Src:             'ctrls.c:2197,7'
          Dst:             destroy_pool
        - Src:             'ctrls.c:2201,11'
          Dst:             pr_auth_name2uid
        - Src:             'ctrls.c:2206,17'
          Dst:             push_array
        - Src:             'ctrls.c:2212,3'
          Dst:             destroy_pool
    - functionName:    pr_ctrls_set_group_acl
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2102
      functionLinenumberEnd: 2156
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          162
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - destroy_pool
        - make_array
        - make_sub_pool
        - pr_auth_name2gid
        - pr_ctrls_parse_acl
        - push_array
        - strcasecmp
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:2112,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2116,14'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:2118,7'
          Dst:             strcasecmp
        - Src:             'ctrls.c:2128,12'
          Dst:             pr_ctrls_parse_acl
        - Src:             'ctrls.c:2131,14'
          Dst:             make_array
        - Src:             'ctrls.c:2136,9'
          Dst:             strcmp
        - Src:             'ctrls.c:2139,7'
          Dst:             destroy_pool
        - Src:             'ctrls.c:2143,11'
          Dst:             pr_auth_name2gid
        - Src:             'ctrls.c:2148,17'
          Dst:             push_array
        - Src:             'ctrls.c:2154,3'
          Dst:             destroy_pool
    - functionName:    pr_ctrls_parse_acl
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2064
      functionLinenumberEnd: 2099
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          88
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - ctrls_argsep
        - destroy_pool
        - make_array
        - make_sub_pool
        - pstrdup
        - push_array
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:2071,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2075,14'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:2076,18'
          Dst:             pstrdup
        - Src:             'ctrls.c:2079,13'
          Dst:             make_array
        - Src:             'ctrls.c:2082,18'
          Dst:             ctrls_argsep
        - Src:             'ctrls.c:2085,12'
          Dst:             pstrdup
        - Src:             'ctrls.c:2088,17'
          Dst:             push_array
        - Src:             'ctrls.c:2092,15'
          Dst:             push_array
        - Src:             'ctrls.c:2095,3'
          Dst:             destroy_pool
    - functionName:    ctrls_argsep
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2015
      functionLinenumberEnd: 2062
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         50
      ICount:          296
      EdgeCount:       67
      CyclomaticComplexity: 19
      functionsReached:
        - __ctype_b_loc
        - __errno_location
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:2022,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:2027,10'
          Dst:             __ctype_b_loc
        - Src:             'ctrls.c:2043,41'
          Dst:             __ctype_b_loc
    - functionName:    pr_ctrls_init_acl
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2003
      functionLinenumberEnd: 2013
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:2005,5'
          Dst:             __errno_location
    - functionName:    pr_ctrls_check_acl
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1971
      functionLinenumberEnd: 2001
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          163
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - pr_ctrls_check_group_acl
        - pr_ctrls_check_user_acl
        - strcmp
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:1978,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1983,9'
          Dst:             strcmp
        - Src:             'ctrls.c:1987,22'
          Dst:             pr_ctrls_check_user_acl
        - Src:             'ctrls.c:1989,23'
          Dst:             pr_ctrls_check_group_acl
    - functionName:    pr_ctrls_check_user_acl
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1938
      functionLinenumberEnd: 1967
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          116
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:1942,5'
          Dst:             __errno_location
    - functionName:    pr_ctrls_check_group_acl
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1903
      functionLinenumberEnd: 1932
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          116
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:1907,5'
          Dst:             __errno_location
    - functionName:    pr_ctrls_reset
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1867
      functionLinenumberEnd: 1894
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          47
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - pr_ctrls_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:1890,7'
          Dst:             pr_ctrls_free
    - functionName:    pr_ctrls_free
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          134
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - destroy_pool
        - pr_block_ctrls
        - pr_unblock_ctrls
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:154,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:159,3'
          Dst:             pr_block_ctrls
        - Src:             'ctrls.c:184,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:195,3'
          Dst:             pr_unblock_ctrls
    - functionName:    pr_run_ctrls
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1776
      functionLinenumberEnd: 1865
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          273
      EdgeCount:       54
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - pr_block_ctrls
        - pr_ctrls_add_response
        - pr_trace_msg
        - pr_unblock_ctrls
        - strcmp
        - time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:1782,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1786,9'
          Dst:             time
        - Src:             'ctrls.c:1794,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1804,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1811,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1818,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1824,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1828,7'
          Dst:             pr_ctrls_add_response
        - Src:             'ctrls.c:1833,9'
          Dst:             strcmp
        - Src:             'ctrls.c:1834,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1841,5'
          Dst:             pr_unblock_ctrls
        - Src:             'ctrls.c:1845,5'
          Dst:             pr_block_ctrls
        - Src:             'ctrls.c:1847,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1851,7'
          Dst:             pr_trace_msg
    - functionName:    pr_ctrls_add_response
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 434
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          108
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - make_array
        - make_sub_pool
        - pr_pool_tag
        - pr_vsnprintf
        - pstrdup
        - push_array
        - strlen
      functionUses:    47
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:405,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:413,28'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:414,5'
          Dst:             pr_pool_tag
        - Src:             'ctrls.c:418,28'
          Dst:             make_array
        - Src:             'ctrls.c:424,22'
          Dst:             strlen
        - Src:             'ctrls.c:424,49'
          Dst:             strlen
        - Src:             'ctrls.c:424,3'
          Dst:             pr_vsnprintf
        - Src:             'ctrls.c:431,5'
          Dst:             pstrdup
        - Src:             'ctrls.c:430,15'
          Dst:             push_array
    - functionName:    pr_ctrls_check_actions
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1757
      functionLinenumberEnd: 1774
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          67
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - ctrls_lookup_action
        - pr_log_pri
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:1763,11'
          Dst:             ctrls_lookup_action
        - Src:             'ctrls.c:1764,9'
          Dst:             pr_log_pri
        - Src:             'ctrls.c:1767,9'
          Dst:             __errno_location
    - functionName:    ctrls_lookup_action
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1049
      functionLinenumberEnd: 1057
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ctrls_lookup_next_action
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:1057,10'
          Dst:             ctrls_lookup_next_action
    - functionName:    ctrls_lookup_next_action
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1061
      functionLinenumberEnd: 1089
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          131
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - ctrls_lookup_action
        - ctrls_prepare
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:1066,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1071,12'
          Dst:             ctrls_lookup_action
        - Src:             'ctrls.c:1079,9'
          Dst:             strcmp
        - Src:             'ctrls.c:1084,14'
          Dst:             ctrls_prepare
    - functionName:    ctrls_get_creds_basic
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1561
      functionLinenumberEnd: 1674
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          331
      EdgeCount:       59
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - atol
        - close
        - destroy_pool
        - make_sub_pool
        - pr_ctrls_issock_unix
        - pr_ctrls_send_response
        - pr_privs_relinquish
        - pr_privs_root
        - pr_signals_handle
        - pr_trace_msg
        - stat
        - strerror
        - time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:1568,3'
          Dst:             pr_privs_root
        - Src:             'ctrls.c:1569,10'
          Dst:             stat
        - Src:             'ctrls.c:1570,18'
          Dst:             __errno_location
        - Src:             'ctrls.c:1573,7'
          Dst:             pr_signals_handle
        - Src:             'ctrls.c:1577,5'
          Dst:             pr_privs_relinquish
        - Src:             'ctrls.c:1579,23'
          Dst:             strerror
        - Src:             'ctrls.c:1578,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1580,12'
          Dst:             close
        - Src:             'ctrls.c:1582,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1585,3'
          Dst:             pr_privs_relinquish
        - Src:             'ctrls.c:1588,7'
          Dst:             pr_ctrls_issock_unix
        - Src:             'ctrls.c:1589,12'
          Dst:             close
        - Src:             'ctrls.c:1590,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1597,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1599,12'
          Dst:             close
        - Src:             'ctrls.c:1600,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1605,16'
          Dst:             time
        - Src:             'ctrls.c:1613,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1620,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1628,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1636,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1641,16'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:1643,9'
          Dst:             pr_ctrls_send_response
        - Src:             'ctrls.c:1645,18'
          Dst:             __errno_location
        - Src:             'ctrls.c:1645,9'
          Dst:             strerror
        - Src:             'ctrls.c:1644,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1648,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:1649,12'
          Dst:             close
        - Src:             'ctrls.c:1651,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1658,12'
          Dst:             atol
    - functionName:    pr_ctrls_issock_unix
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1339
      functionLinenumberEnd: 1357
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          51
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:1355,3'
          Dst:             __errno_location
    - functionName:    pr_ctrls_send_response
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 805
      functionLinenumberEnd: 878
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          200
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - ctrls_send_msg
        - destroy_pool
        - make_sub_pool
        - pr_json_array_alloc
        - pr_json_array_append_string
        - pr_json_array_free
        - pr_json_object_alloc
        - pr_json_object_free
        - pr_json_object_set_array
        - pr_json_object_set_number
        - pr_pool_tag
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:814,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:820,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:824,14'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:825,3'
          Dst:             pr_pool_tag
        - Src:             'ctrls.c:827,10'
          Dst:             pr_json_object_alloc
        - Src:             'ctrls.c:829,9'
          Dst:             pr_json_object_set_number
        - Src:             'ctrls.c:831,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:834,5'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:835,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:837,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:841,11'
          Dst:             pr_json_array_alloc
        - Src:             'ctrls.c:844,11'
          Dst:             pr_json_array_append_string
        - Src:             'ctrls.c:845,14'
          Dst:             __errno_location
        - Src:             'ctrls.c:848,7'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:849,7'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:850,7'
          Dst:             destroy_pool
        - Src:             'ctrls.c:852,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:857,9'
          Dst:             pr_json_object_set_array
        - Src:             'ctrls.c:858,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:861,5'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:862,5'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:863,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:865,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:869,9'
          Dst:             ctrls_send_msg
        - Src:             'ctrls.c:870,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:872,3'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:873,3'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:874,3'
          Dst:             destroy_pool
        - Src:             'ctrls.c:876,3'
          Dst:             __errno_location
    - functionName:    atol
      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:    ctrls_send_msg
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 507
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          102
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_json_object_to_text
        - pr_signals_block
        - pr_signals_unblock
        - strlen
        - write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:467,9'
          Dst:             pr_json_object_to_text
        - Src:             'ctrls.c:472,12'
          Dst:             strlen
        - Src:             'ctrls.c:475,3'
          Dst:             pr_signals_block
        - Src:             'ctrls.c:477,9'
          Dst:             write
        - Src:             'ctrls.c:478,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:481,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:483,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:488,11'
          Dst:             write
        - Src:             'ctrls.c:489,14'
          Dst:             __errno_location
        - Src:             'ctrls.c:496,7'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:498,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:505,3'
          Dst:             pr_signals_unblock
    - functionName:    ctrls_get_creds_peercred
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1361
      functionLinenumberEnd: 1394
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          91
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - getsockopt
        - pr_trace_msg
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:1370,7'
          Dst:             getsockopt
        - Src:             'ctrls.c:1371,18'
          Dst:             __errno_location
        - Src:             'ctrls.c:1375,7'
          Dst:             strerror
        - Src:             'ctrls.c:1373,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1377,5'
          Dst:             __errno_location
    - functionName:    pr_ctrls_accept
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1677
      functionLinenumberEnd: 1747
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          127
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - accept
        - ctrls_get_creds_basic
        - ctrls_get_creds_peercred
        - pr_privs_relinquish
        - pr_privs_root
        - pr_signals_handle
        - pr_trace_msg
        - strerror
        - unlink
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:1684,11'
          Dst:             accept
        - Src:             'ctrls.c:1685,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:1689,7'
          Dst:             pr_signals_handle
        - Src:             'ctrls.c:1691,15'
          Dst:             accept
        - Src:             'ctrls.c:1692,16'
          Dst:             __errno_location
        - Src:             'ctrls.c:1697,54'
          Dst:             strerror
        - Src:             'ctrls.c:1696,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1699,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1707,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1709,9'
          Dst:             ctrls_get_creds_peercred
        - Src:             'ctrls.c:1733,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1735,11'
          Dst:             ctrls_get_creds_basic
        - Src:             'ctrls.c:1742,3'
          Dst:             pr_privs_root
        - Src:             'ctrls.c:1743,10'
          Dst:             unlink
        - Src:             'ctrls.c:1744,3'
          Dst:             pr_privs_relinquish
    - functionName:    pr_ctrls_connect
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1220
      functionLinenumberEnd: 1337
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          193
      EdgeCount:       22
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - bind
        - chmod
        - close
        - connect
        - fcntl
        - getpid
        - pr_signals_block
        - pr_signals_unblock
        - pr_snprintf
        - pr_trace_msg
        - socket
        - sstrncpy
        - strerror
        - unlink
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:1225,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1230,3'
          Dst:             pr_signals_block
        - Src:             'ctrls.c:1233,8'
          Dst:             socket
        - Src:             'ctrls.c:1235,18'
          Dst:             __errno_location
        - Src:             'ctrls.c:1237,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:1239,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1243,7'
          Dst:             fcntl
        - Src:             'ctrls.c:1244,18'
          Dst:             __errno_location
        - Src:             'ctrls.c:1246,12'
          Dst:             close
        - Src:             'ctrls.c:1247,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:1249,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1265,35'
          Dst:             getpid
        - Src:             'ctrls.c:1264,3'
          Dst:             pr_snprintf
        - Src:             'ctrls.c:1269,10'
          Dst:             unlink
        - Src:             'ctrls.c:1272,7'
          Dst:             bind
        - Src:             'ctrls.c:1273,18'
          Dst:             __errno_location
        - Src:             'ctrls.c:1276,25'
          Dst:             strerror
        - Src:             'ctrls.c:1275,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1277,12'
          Dst:             unlink
        - Src:             'ctrls.c:1278,12'
          Dst:             close
        - Src:             'ctrls.c:1279,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:1281,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1286,7'
          Dst:             chmod
        - Src:             'ctrls.c:1287,18'
          Dst:             __errno_location
        - Src:             'ctrls.c:1290,7'
          Dst:             strerror
        - Src:             'ctrls.c:1289,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1291,12'
          Dst:             unlink
        - Src:             'ctrls.c:1292,12'
          Dst:             close
        - Src:             'ctrls.c:1293,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:1295,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1303,3'
          Dst:             sstrncpy
        - Src:             'ctrls.c:1306,7'
          Dst:             connect
        - Src:             'ctrls.c:1307,18'
          Dst:             __errno_location
        - Src:             'ctrls.c:1310,27'
          Dst:             strerror
        - Src:             'ctrls.c:1309,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1311,12'
          Dst:             unlink
        - Src:             'ctrls.c:1312,12'
          Dst:             close
        - Src:             'ctrls.c:1313,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:1315,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1335,3'
          Dst:             pr_signals_unblock
    - functionName:    pr_set_registered_actions
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1148
      functionLinenumberEnd: 1188
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          195
      EdgeCount:       56
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:1157,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1163,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1174,10'
          Dst:             strcmp
        - Src:             'ctrls.c:1175,10'
          Dst:             strcmp
        - Src:             'ctrls.c:1183,5'
          Dst:             __errno_location
    - functionName:    pr_get_registered_actions
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1091
      functionLinenumberEnd: 1145
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          159
      EdgeCount:       30
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_ctrls_add_response
      functionUses:    2
      BranchProfiles:
        - Branch String:   'ctrls.c:1107,5'
          Branch Sides:    []
      Callsites:
        - Src:             'ctrls.c:1096,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1102,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1110,11'
          Dst:             pr_ctrls_add_response
        - Src:             'ctrls.c:1114,12'
          Dst:             pr_ctrls_add_response
        - Src:             'ctrls.c:1126,11'
          Dst:             pr_ctrls_add_response
        - Src:             'ctrls.c:1130,11'
          Dst:             pr_ctrls_add_response
        - Src:             'ctrls.c:1137,9'
          Dst:             pr_ctrls_add_response
    - functionName:    pr_ctrls_recv_response
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 880
      functionLinenumberEnd: 1046
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          347
      EdgeCount:       47
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - destroy_pool
        - make_array
        - make_sub_pool
        - pcalloc
        - pr_json_array_count
        - pr_json_array_free
        - pr_json_array_get_string
        - pr_json_object_free
        - pr_json_object_from_text
        - pr_json_object_get_array
        - pr_json_object_get_number
        - pr_pool_tag
        - pr_signals_block
        - pr_signals_unblock
        - pr_trace_msg
        - pstrdup
        - push_array
        - read
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:895,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:900,3'
          Dst:             pr_signals_block
        - Src:             'ctrls.c:904,11'
          Dst:             read
        - Src:             'ctrls.c:905,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:908,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:913,42'
          Dst:             strerror
        - Src:             'ctrls.c:911,14'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:914,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:918,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:921,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:925,14'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:926,3'
          Dst:             pr_pool_tag
        - Src:             'ctrls.c:929,9'
          Dst:             pcalloc
        - Src:             'ctrls.c:930,11'
          Dst:             read
        - Src:             'ctrls.c:931,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:936,31'
          Dst:             strerror
        - Src:             'ctrls.c:934,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:937,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:938,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:940,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:946,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:949,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:950,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:952,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:956,10'
          Dst:             pr_json_object_from_text
        - Src:             'ctrls.c:957,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:963,7'
          Dst:             strerror
        - Src:             'ctrls.c:960,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:964,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:965,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:967,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:971,9'
          Dst:             pr_json_object_get_number
        - Src:             'ctrls.c:972,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:977,7'
          Dst:             strerror
        - Src:             'ctrls.c:975,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:978,5'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:979,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:980,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:982,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:987,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:989,9'
          Dst:             pr_json_object_get_array
        - Src:             'ctrls.c:990,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:995,7'
          Dst:             strerror
        - Src:             'ctrls.c:993,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:996,5'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:997,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:998,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:1000,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:1004,14'
          Dst:             pr_json_array_count
        - Src:             'ctrls.c:1005,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1007,13'
          Dst:             make_array
        - Src:             'ctrls.c:1017,11'
          Dst:             pr_json_array_get_string
        - Src:             'ctrls.c:1018,14'
          Dst:             __errno_location
        - Src:             'ctrls.c:1023,14'
          Dst:             strerror
        - Src:             'ctrls.c:1021,14'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:1024,7'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:1025,7'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:1026,7'
          Dst:             destroy_pool
        - Src:             'ctrls.c:1027,7'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:1029,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:1033,40'
          Dst:             pstrdup
        - Src:             'ctrls.c:1033,17'
          Dst:             push_array
        - Src:             'ctrls.c:1040,3'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:1041,3'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:1042,3'
          Dst:             destroy_pool
        - Src:             'ctrls.c:1043,3'
          Dst:             pr_signals_unblock
    - functionName:    pr_ctrls_recv_request
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 585
      functionLinenumberEnd: 802
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         38
      ICount:          437
      EdgeCount:       53
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - ctrls_lookup_action
        - ctrls_lookup_next_action
        - destroy_pool
        - make_sub_pool
        - pcalloc
        - pr_ctrls_add_arg
        - pr_ctrls_copy_args
        - pr_json_array_count
        - pr_json_array_free
        - pr_json_array_get_string
        - pr_json_object_free
        - pr_json_object_from_text
        - pr_json_object_get_array
        - pr_json_object_get_string
        - pr_pool_tag
        - pr_signals_block
        - pr_signals_unblock
        - pr_trace_msg
        - push_array
        - read
        - strerror
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:597,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:602,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:607,3'
          Dst:             pr_signals_block
        - Src:             'ctrls.c:611,11'
          Dst:             read
        - Src:             'ctrls.c:612,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:617,23'
          Dst:             strerror
        - Src:             'ctrls.c:615,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:618,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:620,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:626,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:629,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:630,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:634,14'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:635,3'
          Dst:             pr_pool_tag
        - Src:             'ctrls.c:638,9'
          Dst:             pcalloc
        - Src:             'ctrls.c:640,11'
          Dst:             read
        - Src:             'ctrls.c:641,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:646,31'
          Dst:             strerror
        - Src:             'ctrls.c:644,5'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:647,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:648,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:650,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:656,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:659,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:660,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:661,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:665,10'
          Dst:             pr_json_object_from_text
        - Src:             'ctrls.c:666,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:672,7'
          Dst:             strerror
        - Src:             'ctrls.c:669,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:673,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:674,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:676,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:680,9'
          Dst:             pr_json_object_get_string
        - Src:             'ctrls.c:682,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:687,7'
          Dst:             strerror
        - Src:             'ctrls.c:685,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:688,5'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:689,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:690,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:692,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:696,9'
          Dst:             pr_json_object_get_array
        - Src:             'ctrls.c:697,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:702,7'
          Dst:             strerror
        - Src:             'ctrls.c:700,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:703,5'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:704,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:705,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:707,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:711,14'
          Dst:             pr_json_array_count
        - Src:             'ctrls.c:712,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:717,10'
          Dst:             ctrls_lookup_action
        - Src:             'ctrls.c:719,12'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:721,5'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:722,5'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:723,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:724,5'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:727,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:731,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:737,11'
          Dst:             pr_json_array_get_string
        - Src:             'ctrls.c:738,14'
          Dst:             __errno_location
        - Src:             'ctrls.c:743,14'
          Dst:             strerror
        - Src:             'ctrls.c:741,14'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:744,7'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:745,7'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:746,7'
          Dst:             destroy_pool
        - Src:             'ctrls.c:747,7'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:749,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:753,17'
          Dst:             strlen
        - Src:             'ctrls.c:754,11'
          Dst:             pr_ctrls_add_arg
        - Src:             'ctrls.c:755,14'
          Dst:             __errno_location
        - Src:             'ctrls.c:760,9'
          Dst:             strerror
        - Src:             'ctrls.c:758,7'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:761,7'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:762,7'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:763,7'
          Dst:             destroy_pool
        - Src:             'ctrls.c:764,7'
          Dst:             pr_signals_unblock
        - Src:             'ctrls.c:766,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:772,21'
          Dst:             push_array
        - Src:             'ctrls.c:781,15'
          Dst:             ctrls_lookup_next_action
        - Src:             'ctrls.c:784,12'
          Dst:             pr_ctrls_copy_args
        - Src:             'ctrls.c:787,23'
          Dst:             push_array
        - Src:             'ctrls.c:793,17'
          Dst:             ctrls_lookup_next_action
        - Src:             'ctrls.c:796,3'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:797,3'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:798,3'
          Dst:             destroy_pool
        - Src:             'ctrls.c:799,3'
          Dst:             pr_signals_unblock
    - functionName:    pr_ctrls_add_arg
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          147
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - __ctype_b_loc
        - __errno_location
        - make_array
        - make_sub_pool
        - pr_pool_tag
        - pstrndup
        - push_array
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:312,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:318,10'
          Dst:             __ctype_b_loc
        - Src:             'ctrls.c:319,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:328,28'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:329,5'
          Dst:             pr_pool_tag
        - Src:             'ctrls.c:333,27'
          Dst:             make_array
        - Src:             'ctrls.c:337,50'
          Dst:             pstrndup
        - Src:             'ctrls.c:337,15'
          Dst:             push_array
    - functionName:    pr_ctrls_copy_args
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          87
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - copy_array
        - make_sub_pool
        - pr_pool_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:347,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:362,32'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:363,5'
          Dst:             pr_pool_tag
        - Src:             'ctrls.c:369,29'
          Dst:             copy_array
    - functionName:    pr_ctrls_send_request
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 583
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          206
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - ctrls_send_msg
        - destroy_pool
        - make_sub_pool
        - pr_json_array_alloc
        - pr_json_array_append_string
        - pr_json_array_free
        - pr_json_object_alloc
        - pr_json_object_free
        - pr_json_object_set_array
        - pr_json_object_set_string
        - pr_pool_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:520,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:526,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:530,14'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:531,3'
          Dst:             pr_pool_tag
        - Src:             'ctrls.c:533,10'
          Dst:             pr_json_object_alloc
        - Src:             'ctrls.c:535,9'
          Dst:             pr_json_object_set_string
        - Src:             'ctrls.c:536,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:539,5'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:540,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:542,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:546,10'
          Dst:             pr_json_array_alloc
        - Src:             'ctrls.c:549,11'
          Dst:             pr_json_array_append_string
        - Src:             'ctrls.c:550,14'
          Dst:             __errno_location
        - Src:             'ctrls.c:553,7'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:554,7'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:555,7'
          Dst:             destroy_pool
        - Src:             'ctrls.c:557,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:562,9'
          Dst:             pr_json_object_set_array
        - Src:             'ctrls.c:563,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:566,5'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:567,5'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:568,5'
          Dst:             destroy_pool
        - Src:             'ctrls.c:570,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:574,9'
          Dst:             ctrls_send_msg
        - Src:             'ctrls.c:575,12'
          Dst:             __errno_location
        - Src:             'ctrls.c:577,3'
          Dst:             pr_json_array_free
        - Src:             'ctrls.c:578,3'
          Dst:             pr_json_object_free
        - Src:             'ctrls.c:579,3'
          Dst:             destroy_pool
        - Src:             'ctrls.c:581,3'
          Dst:             __errno_location
    - functionName:    pr_ctrls_flush_response
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 436
      functionLinenumberEnd: 460
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          85
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_ctrls_send_response
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:438,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:447,7'
          Dst:             __errno_location
        - Src:             'ctrls.c:451,11'
          Dst:             pr_ctrls_send_response
    - functionName:    pr_ctrls_copy_resps
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          80
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - copy_array
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:379,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:388,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:392,30'
          Dst:             copy_array
    - functionName:    ctrls_action_new
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:115,14'
          Dst:             make_sub_pool
        - Src:             'ctrls.c:116,3'
          Dst:             pr_pool_tag
        - Src:             'ctrls.c:118,9'
          Dst:             pcalloc
    - functionName:    pr_ctrls_register
      functionSourceFile: '/src/proftpd/src/ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          168
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - ctrls_action_new
        - pr_block_ctrls
        - pr_random_next
        - pr_trace_msg
        - pr_unblock_ctrls
        - pstrdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ctrls.c:208,5'
          Dst:             __errno_location
        - Src:             'ctrls.c:212,3'
          Dst:             pr_trace_msg
        - Src:             'ctrls.c:217,3'
          Dst:             pr_block_ctrls
        - Src:             'ctrls.c:220,9'
          Dst:             ctrls_action_new
        - Src:             'ctrls.c:226,29'
          Dst:             pr_random_next
        - Src:             'ctrls.c:243,17'
          Dst:             pstrdup
        - Src:             'ctrls.c:257,3'
          Dst:             pr_unblock_ctrls
    - functionName:    chk_on_blk_list
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    run_cleanups
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 947
      functionLinenumberEnd: 955
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    smalloc
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          43
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - null_alloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:111,5'
          Dst:             null_alloc
        - Src:             'pool.c:116,5'
          Dst:             null_alloc
    - functionName:    null_alloc
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          3
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - exit
        - pr_log_pri
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:90,3'
          Dst:             pr_log_pri
        - Src:             'pool.c:97,3'
          Dst:             exit
    - functionName:    malloc_block
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - smalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:127,25'
          Dst:             smalloc
    - functionName:    subpools_in_pool
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - subpools_in_pool
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:283,15'
          Dst:             subpools_in_pool
    - functionName:    unregister_cleanup
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 921
      functionLinenumberEnd: 945
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          79
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    register_cleanup
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 916
      functionLinenumberEnd: 919
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - register_cleanup2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:918,3'
          Dst:             register_cleanup2
    - functionName:    register_cleanup2
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 899
      functionLinenumberEnd: 913
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pcalloc
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:906,7'
          Dst:             pcalloc
    - functionName:    pcalloc
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 691
      functionLinenumberEnd: 703
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - palloc
      functionUses:    275
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:695,5'
          Dst:             __errno_location
        - Src:             'pool.c:699,9'
          Dst:             palloc
    - functionName:    palloc
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 683
      functionLinenumberEnd: 684
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - alloc_pool
      functionUses:    81
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:684,10'
          Dst:             alloc_pool
    - functionName:    alloc_pool
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 628
      functionLinenumberEnd: 681
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          126
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - new_block
        - pr_alarms_block
        - pr_alarms_unblock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:636,5'
          Dst:             __errno_location
        - Src:             'pool.c:646,5'
          Dst:             __errno_location
        - Src:             'pool.c:658,5'
          Dst:             __errno_location
        - Src:             'pool.c:670,3'
          Dst:             pr_alarms_block
        - Src:             'pool.c:672,10'
          Dst:             new_block
        - Src:             'pool.c:679,3'
          Dst:             pr_alarms_unblock
    - functionName:    new_block
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          98
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - malloc_block
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:219,10'
          Dst:             malloc_block
    - functionName:    append_arrays
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 874
      functionLinenumberEnd: 888
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - array_cat
        - copy_array_hdr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:880,5'
          Dst:             __errno_location
        - Src:             'pool.c:884,9'
          Dst:             copy_array_hdr
        - Src:             'pool.c:886,3'
          Dst:             array_cat
    - functionName:    copy_array_hdr
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 853
      functionLinenumberEnd: 871
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - palloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:858,5'
          Dst:             __errno_location
        - Src:             'pool.c:862,9'
          Dst:             palloc
    - functionName:    array_cat
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 810
      functionLinenumberEnd: 812
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - array_cat2
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:811,10'
          Dst:             array_cat2
    - functionName:    array_cat2
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 772
      functionLinenumberEnd: 808
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          161
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pcalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:777,5'
          Dst:             __errno_location
        - Src:             'pool.c:796,16'
          Dst:             pcalloc
    - functionName:    copy_array_str
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 834
      functionLinenumberEnd: 851
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          80
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - copy_array
        - pstrdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:840,5'
          Dst:             __errno_location
        - Src:             'pool.c:844,9'
          Dst:             copy_array
        - Src:             'pool.c:847,32'
          Dst:             pstrdup
    - functionName:    copy_array
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 814
      functionLinenumberEnd: 831
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          83
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - make_array
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:819,5'
          Dst:             __errno_location
        - Src:             'pool.c:823,9'
          Dst:             make_array
    - functionName:    make_array
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 743
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          82
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - palloc
        - pcalloc
      functionUses:    56
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:726,5'
          Dst:             __errno_location
        - Src:             'pool.c:730,9'
          Dst:             palloc
        - Src:             'pool.c:736,15'
          Dst:             pcalloc
    - functionName:    push_array
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 754
      functionLinenumberEnd: 770
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          99
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pcalloc
      functionUses:    84
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:756,5'
          Dst:             __errno_location
        - Src:             'pool.c:761,22'
          Dst:             pcalloc
    - functionName:    clear_array
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 745
      functionLinenumberEnd: 752
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pcalloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:750,15'
          Dst:             pcalloc
    - functionName:    pcallocsz
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 705
      functionLinenumberEnd: 717
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pallocsz
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:709,5'
          Dst:             __errno_location
        - Src:             'pool.c:713,9'
          Dst:             pallocsz
    - functionName:    pallocsz
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 687
      functionLinenumberEnd: 688
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - alloc_pool
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:688,10'
          Dst:             alloc_pool
    - functionName:    free_blocks
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - chk_on_blk_list
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:174,5'
          Dst:             chk_on_blk_list
        - Src:             'pool.c:179,3'
          Dst:             chk_on_blk_list
    - functionName:    clear_pool
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 560
      functionLinenumberEnd: 588
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          81
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - destroy_pool
        - free_blocks
        - pr_alarms_block
        - pr_alarms_unblock
        - run_cleanups
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:567,3'
          Dst:             pr_alarms_block
        - Src:             'pool.c:570,3'
          Dst:             run_cleanups
        - Src:             'pool.c:575,5'
          Dst:             destroy_pool
        - Src:             'pool.c:580,3'
          Dst:             free_blocks
        - Src:             'pool.c:587,3'
          Dst:             pr_alarms_unblock
    - functionName:    destroy_pool
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 590
      functionLinenumberEnd: 623
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          108
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - clear_pool
        - free_blocks
        - pr_alarms_block
        - pr_alarms_unblock
      functionUses:    248
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:595,3'
          Dst:             pr_alarms_block
        - Src:             'pool.c:611,3'
          Dst:             clear_pool
        - Src:             'pool.c:612,3'
          Dst:             free_blocks
        - Src:             'pool.c:614,3'
          Dst:             pr_alarms_unblock
    - functionName:    pool_release_free_block_list
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 480
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         7
      ICount:          40
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - pr_alarms_block
        - pr_alarms_unblock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:471,3'
          Dst:             pr_alarms_block
        - Src:             'pool.c:479,3'
          Dst:             pr_alarms_unblock
    - functionName:    free_pools
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 554
      functionLinenumberEnd: 558
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - destroy_pool
        - pool_release_free_block_list
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:555,3'
          Dst:             destroy_pool
        - Src:             'pool.c:557,3'
          Dst:             pool_release_free_block_list
    - functionName:    init_pools
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 546
      functionLinenumberEnd: 552
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          26
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - make_sub_pool
        - pr_pool_tag
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:548,22'
          Dst:             make_sub_pool
        - Src:             'pool.c:551,3'
          Dst:             pr_pool_tag
    - functionName:    make_sub_pool
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 510
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          87
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - new_block
        - pr_alarms_block
        - pr_alarms_unblock
      functionUses:    147
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:486,3'
          Dst:             pr_alarms_block
        - Src:             'pool.c:488,10'
          Dst:             new_block
        - Src:             'pool.c:508,3'
          Dst:             pr_alarms_unblock
    - functionName:    pr_pool_tag
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          31
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    123
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_pool_create_sz
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 541
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          92
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - new_block
        - pr_alarms_block
        - pr_alarms_unblock
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:517,3'
          Dst:             pr_alarms_block
        - Src:             'pool.c:519,10'
          Dst:             new_block
        - Src:             'pool.c:539,3'
          Dst:             pr_alarms_unblock
    - functionName:    pr_pool_get_tag
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:460,5'
          Dst:             __errno_location
    - functionName:    pr_pool_debug_set_flags
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:441,5'
          Dst:             __errno_location
    - functionName:    blocks_in_block_list
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bytes_in_block_list
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          35
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    visit_pools
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 329
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          126
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - blocks_in_block_list
        - bytes_in_block_list
        - subpools_in_pool
        - visit_pools
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:305,18'
          Dst:             bytes_in_block_list
        - Src:             'pool.c:306,19'
          Dst:             blocks_in_block_list
        - Src:             'pool.c:307,21'
          Dst:             subpools_in_pool
        - Src:             'pool.c:324,22'
          Dst:             visit_pools
    - functionName:    pool_visitf
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 392
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          200
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_pool_debug_memory2
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 404
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          85
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - blocks_in_block_list
        - bytes_in_block_list
        - visit_pools
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:414,22'
          Dst:             visit_pools
        - Src:             'pool.c:418,27'
          Dst:             bytes_in_block_list
        - Src:             'pool.c:419,28'
          Dst:             blocks_in_block_list
    - functionName:    pool_printf
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_trace_msg
        - pr_vsnprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:338,3'
          Dst:             pr_vsnprintf
        - Src:             'pool.c:342,3'
          Dst:             pr_trace_msg
    - functionName:    pr_pool_debug_memory
      functionSourceFile: '/src/proftpd/src/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 394
      functionLinenumberEnd: 401
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pool_visitf
        - pr_pool_debug_memory2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'pool.c:400,3'
          Dst:             pr_pool_debug_memory2
        - Src:             'pool.c:400,3'
          Dst:             pool_visitf
    - functionName:    display_flush_lines
      functionSourceFile: '/src/proftpd/src/display.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          81
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - pr_response_send_raw
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'display.c:99,9'
          Dst:             pr_response_send_raw
        - Src:             'display.c:102,9'
          Dst:             pr_response_send_raw
        - Src:             'display.c:111,7'
          Dst:             pr_response_send_raw
        - Src:             'display.c:117,9'
          Dst:             pr_response_send_raw
        - Src:             'display.c:120,9'
          Dst:             pr_response_send_raw
    - functionName:    display_add_line
      functionSourceFile: '/src/proftpd/src/display.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          79
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - pr_response_send_raw
        - pstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'display.c:74,19'
          Dst:             pstrdup
        - Src:             'display.c:79,5'
          Dst:             pr_response_send_raw
        - Src:             'display.c:83,16'
          Dst:             pstrdup
        - Src:             'display.c:88,5'
          Dst:             pr_response_send_raw
        - Src:             'display.c:91,14'
          Dst:             pstrdup
    - functionName:    format_size_str
      functionSourceFile: '/src/proftpd/src/display.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          113
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - pr_signals_handle
        - pr_snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'display.c:50,5'
          Dst:             pr_signals_handle
        - Src:             'display.c:57,9'
          Dst:             pr_snprintf
    - functionName:    pr_display_file
      functionSourceFile: '/src/proftpd/src/display.c'
      linkageType:     InternalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 498
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          133
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - display_fh
        - pr_fsio_close
        - pr_fsio_fstat
        - pr_fsio_open_canon
        - pr_trace_msg
        - strerror
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'display.c:452,5'
          Dst:             __errno_location
        - Src:             'display.c:456,8'
          Dst:             pr_fsio_open_canon
        - Src:             'display.c:457,12'
          Dst:             __errno_location
        - Src:             'display.c:461,13'
          Dst:             strerror
        - Src:             'display.c:460,5'
          Dst:             pr_trace_msg
        - Src:             'display.c:463,5'
          Dst:             __errno_location
        - Src:             'display.c:467,9'
          Dst:             pr_fsio_fstat
        - Src:             'display.c:468,12'
          Dst:             __errno_location
        - Src:             'display.c:472,13'
          Dst:             strerror
        - Src:             'display.c:471,5'
          Dst:             pr_trace_msg
        - Src:             'display.c:474,5'
          Dst:             pr_fsio_close
        - Src:             'display.c:476,5'
          Dst:             __errno_location
        - Src:             'display.c:481,5'
          Dst:             pr_fsio_close
        - Src:             'display.c:485,61'
          Dst:             strerror
        - Src:             'display.c:484,5'
          Dst:             pr_trace_msg
        - Src:             'display.c:487,5'
          Dst:             __errno_location
        - Src:             'display.c:491,9'
          Dst:             display_fh
        - Src:             'display.c:492,12'
          Dst:             __errno_location
        - Src:             'display.c:494,3'
          Dst:             pr_fsio_close
        - Src:             'display.c:496,3'
          Dst:             __errno_location
    - functionName:    display_fh
      functionSourceFile: '/src/proftpd/src/display.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         121
      ICount:          831
      EdgeCount:       161
      CyclomaticComplexity: 42
      functionsReached:
        - __errno_location
        - destroy_pool
        - display_add_line
        - display_flush_lines
        - find_config
        - find_config_next
        - format_size_str
        - get_param_ptr
        - make_sub_pool
        - pr_env_get
        - pr_fs_fgetsize
        - pr_fsio_fstat
        - pr_fsio_gets
        - pr_localtime
        - pr_log_debug
        - pr_netaddr_get_dnsstr
        - pr_pool_tag
        - pr_response_add
        - pr_signals_handle
        - pr_snprintf
        - pr_strtime3
        - pr_table_get
        - pr_trace_msg
        - pr_var_get
        - pstrdup
        - pstrndup
        - sreplace
        - sstrncpy
        - strchr
        - strcmp
        - strerror
        - strftime
        - strlen
        - strncmp
        - strstr
        - time
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'display.c:161,7'
          Dst:             pr_fsio_fstat
        - Src:             'display.c:166,9'
          Dst:             pr_fs_fgetsize
        - Src:             'display.c:168,7'
          Dst:             __errno_location
        - Src:             'display.c:170,29'
          Dst:             __errno_location
        - Src:             'display.c:170,20'
          Dst:             strerror
        - Src:             'display.c:169,12'
          Dst:             pr_log_debug
        - Src:             'display.c:174,3'
          Dst:             pr_snprintf
        - Src:             'display.c:175,3'
          Dst:             format_size_str
        - Src:             'display.c:177,7'
          Dst:             make_sub_pool
        - Src:             'display.c:178,3'
          Dst:             pr_pool_tag
        - Src:             'display.c:182,28'
          Dst:             time
        - Src:             'display.c:182,13'
          Dst:             pr_strtime3
        - Src:             'display.c:184,17'
          Dst:             get_param_ptr
        - Src:             'display.c:186,7'
          Dst:             pr_table_get
        - Src:             'display.c:191,3'
          Dst:             pr_snprintf
        - Src:             'display.c:200,9'
          Dst:             pr_table_get
        - Src:             'display.c:205,5'
          Dst:             pr_snprintf
        - Src:             'display.c:213,12'
          Dst:             find_config
        - Src:             'display.c:217,7'
          Dst:             pr_signals_handle
        - Src:             'display.c:219,11'
          Dst:             strcmp
        - Src:             'display.c:220,16'
          Dst:             find_config_next
        - Src:             'display.c:230,14'
          Dst:             find_config
        - Src:             'display.c:236,5'
          Dst:             pr_snprintf
        - Src:             'display.c:239,5'
          Dst:             pr_snprintf
        - Src:             'display.c:241,5'
          Dst:             pr_snprintf
        - Src:             'display.c:244,3'
          Dst:             pr_snprintf
        - Src:             'display.c:246,3'
          Dst:             pr_snprintf
        - Src:             'display.c:250,5'
          Dst:             pr_snprintf
        - Src:             'display.c:254,5'
          Dst:             pr_snprintf
        - Src:             'display.c:258,5'
          Dst:             pr_snprintf
        - Src:             'display.c:262,3'
          Dst:             pr_snprintf
        - Src:             'display.c:264,10'
          Dst:             pr_table_get
        - Src:             'display.c:269,7'
          Dst:             find_config
        - Src:             'display.c:278,20'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'display.c:283,3'
          Dst:             pr_snprintf
        - Src:             'display.c:287,3'
          Dst:             pr_snprintf
        - Src:             'display.c:291,3'
          Dst:             pr_snprintf
        - Src:             'display.c:295,19'
          Dst:             pr_table_get
        - Src:             'display.c:300,10'
          Dst:             pr_fsio_gets
        - Src:             'display.c:303,5'
          Dst:             pr_signals_handle
        - Src:             'display.c:306,11'
          Dst:             strlen
        - Src:             'display.c:315,11'
          Dst:             strstr
        - Src:             'display.c:320,7'
          Dst:             pr_signals_handle
        - Src:             'display.c:322,14'
          Dst:             strchr
        - Src:             'display.c:324,15'
          Dst:             strstr
        - Src:             'display.c:328,13'
          Dst:             pstrndup
        - Src:             'display.c:340,11'
          Dst:             strncmp
        - Src:             'display.c:345,36'
          Dst:             strlen
        - Src:             'display.c:345,15'
          Dst:             pstrndup
        - Src:             'display.c:347,9'
          Dst:             time
        - Src:             'display.c:350,14'
          Dst:             pr_localtime
        - Src:             'display.c:352,11'
          Dst:             strftime
        - Src:             'display.c:355,15'
          Dst:             pstrdup
        - Src:             'display.c:357,18'
          Dst:             strncmp
        - Src:             'display.c:360,40'
          Dst:             strlen
        - Src:             'display.c:360,19'
          Dst:             pstrndup
        - Src:             'display.c:361,15'
          Dst:             pr_env_get
        - Src:             'display.c:363,11'
          Dst:             pr_trace_msg
        - Src:             'display.c:370,15'
          Dst:             pr_var_get
        - Src:             'display.c:374,22'
          Dst:             __errno_location
        - Src:             'display.c:374,13'
          Dst:             strerror
        - Src:             'display.c:372,11'
          Dst:             pr_trace_msg
        - Src:             'display.c:379,14'
          Dst:             sreplace
        - Src:             'display.c:380,7'
          Dst:             sstrncpy
        - Src:             'display.c:382,13'
          Dst:             strstr
        - Src:             'display.c:385,12'
          Dst:             sreplace
        - Src:             'display.c:409,5'
          Dst:             sstrncpy
        - Src:             'display.c:418,7'
          Dst:             display_add_line
        - Src:             'display.c:421,7'
          Dst:             pr_response_add
        - Src:             'display.c:426,5'
          Dst:             display_flush_lines
        - Src:             'display.c:429,3'
          Dst:             destroy_pool
    - functionName:    pr_display_fh
      functionSourceFile: '/src/proftpd/src/display.c'
      linkageType:     InternalLinkage
      functionLinenumber: 434
      functionLinenumberEnd: 442
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - display_fh
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'display.c:437,5'
          Dst:             __errno_location
        - Src:             'display.c:441,10'
          Dst:             display_fh
    - functionName:    copy_recur
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2418
      functionLinenumberEnd: 2458
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          182
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - copy_recur
        - pcalloc
        - pr_config_add_set
        - pr_signals_handle
        - xaset_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:2424,12'
          Dst:             xaset_create
        - Src:             'dirtree.c:2427,13'
          Dst:             pr_config_add_set
        - Src:             'dirtree.c:2438,21'
          Dst:             pcalloc
        - Src:             'dirtree.c:2454,7'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:2455,7'
          Dst:             copy_recur
    - functionName:    copy_global_to_all
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2460
      functionLinenumberEnd: 2475
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          78
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - copy_recur
        - pr_signals_handle
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:2471,7'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:2472,7'
          Dst:             copy_recur
    - functionName:    strmatch
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 448
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          98
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:438,12'
          Dst:             strlen
    - functionName:    find_best_dir
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2148
      functionLinenumberEnd: 2229
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          254
      EdgeCount:       61
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - find_best_dir
        - pr_signals_handle
        - strlen
        - strmatch
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:2156,5'
          Dst:             __errno_location
        - Src:             'dirtree.c:2160,13'
          Dst:             strlen
        - Src:             'dirtree.c:2163,5'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:2180,13'
          Dst:             strlen
        - Src:             'dirtree.c:2212,11'
          Dst:             strncmp
        - Src:             'dirtree.c:2213,16'
          Dst:             find_best_dir
        - Src:             'dirtree.c:2214,21'
          Dst:             strmatch
    - functionName:    reparent_all
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2129
      functionLinenumberEnd: 2143
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          77
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - xaset_create
        - xaset_insert
        - xaset_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:2133,25'
          Dst:             xaset_create
        - Src:             'dirtree.c:2138,5'
          Dst:             xaset_remove
        - Src:             'dirtree.c:2139,5'
          Dst:             xaset_insert
    - functionName:    check_ip_positive
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1085
      functionLinenumberEnd: 1113
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          76
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - pr_netacl_get_negated
        - pr_netacl_match
      functionUses:    1
      BranchProfiles:
        - Branch String:   'dirtree.c:1094,5'
          Branch Sides:    []
      Callsites:
        - Src:             'dirtree.c:1090,9'
          Dst:             pr_netacl_get_negated
        - Src:             'dirtree.c:1094,13'
          Dst:             pr_netacl_match
    - functionName:    check_ip_negative
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1045
      functionLinenumberEnd: 1080
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          77
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - pr_log_pri
        - pr_netacl_get_negated
        - pr_netacl_match
      functionUses:    1
      BranchProfiles:
        - Branch String:   'dirtree.c:1054,5'
          Branch Sides:    []
      Callsites:
        - Src:             'dirtree.c:1050,9'
          Dst:             pr_netacl_get_negated
        - Src:             'dirtree.c:1054,13'
          Dst:             pr_netacl_match
        - Src:             'dirtree.c:1065,9'
          Dst:             pr_log_pri
    - functionName:    check_filter_access
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 986
      functionLinenumberEnd: 1026
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          116
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - find_config
        - find_config_next
        - pr_regexp_exec
        - pr_regexp_get_pattern
        - pr_signals_handle
        - pr_trace_msg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:995,7'
          Dst:             find_config
        - Src:             'dirtree.c:1000,5'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:1004,46'
          Dst:             pr_regexp_get_pattern
        - Src:             'dirtree.c:1002,5'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1005,15'
          Dst:             pr_regexp_exec
        - Src:             'dirtree.c:1008,46'
          Dst:             pr_regexp_get_pattern
        - Src:             'dirtree.c:1006,5'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1016,9'
          Dst:             find_config_next
        - Src:             'dirtree.c:1019,3'
          Dst:             pr_trace_msg
    - functionName:    check_ip_access
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1115
      functionLinenumberEnd: 1142
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - check_ip_negative
        - check_ip_positive
        - find_config
        - find_config_next
        - pr_signals_handle
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:1119,7'
          Dst:             find_config
        - Src:             'dirtree.c:1121,5'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:1126,9'
          Dst:             check_ip_negative
        - Src:             'dirtree.c:1131,9'
          Dst:             check_ip_positive
        - Src:             'dirtree.c:1138,9'
          Dst:             find_config_next
    - functionName:    check_class_access
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 942
      functionLinenumberEnd: 984
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          152
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - find_config
        - find_config_next
        - pr_expr_eval_class_and
        - pr_expr_eval_class_or
        - pr_regexp_exec
        - pr_signals_handle
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:951,7'
          Dst:             find_config
        - Src:             'dirtree.c:953,5'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:959,11'
          Dst:             pr_regexp_exec
        - Src:             'dirtree.c:968,13'
          Dst:             pr_expr_eval_class_or
        - Src:             'dirtree.c:974,13'
          Dst:             pr_expr_eval_class_and
        - Src:             'dirtree.c:980,9'
          Dst:             find_config_next
    - functionName:    check_group_access
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 886
      functionLinenumberEnd: 940
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          191
      EdgeCount:       46
      CyclomaticComplexity: 13
      functionsReached:
        - find_config
        - find_config_next
        - pr_expr_eval_group_and
        - pr_expr_eval_group_or
        - pr_regexp_exec
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:897,7'
          Dst:             find_config
        - Src:             'dirtree.c:903,11'
          Dst:             pr_regexp_exec
        - Src:             'dirtree.c:912,15'
          Dst:             pr_regexp_exec
        - Src:             'dirtree.c:924,13'
          Dst:             pr_expr_eval_group_or
        - Src:             'dirtree.c:930,13'
          Dst:             pr_expr_eval_group_and
        - Src:             'dirtree.c:936,9'
          Dst:             find_config_next
    - functionName:    check_user_access
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 841
      functionLinenumberEnd: 884
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          149
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - find_config
        - find_config_next
        - pr_expr_eval_user_and
        - pr_expr_eval_user_or
        - pr_regexp_exec
        - pr_signals_handle
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:852,7'
          Dst:             find_config
        - Src:             'dirtree.c:854,5'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:860,11'
          Dst:             pr_regexp_exec
        - Src:             'dirtree.c:868,13'
          Dst:             pr_expr_eval_user_or
        - Src:             'dirtree.c:874,13'
          Dst:             pr_expr_eval_user_and
        - Src:             'dirtree.c:880,9'
          Dst:             find_config_next
    - functionName:    check_limit_allow
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1146
      functionLinenumberEnd: 1194
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          164
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - check_class_access
        - check_filter_access
        - check_group_access
        - check_ip_access
        - check_user_access
        - find_config
        - get_param_ptr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:1157,9'
          Dst:             find_config
        - Src:             'dirtree.c:1161,14'
          Dst:             check_user_access
        - Src:             'dirtree.c:1166,9'
          Dst:             find_config
        - Src:             'dirtree.c:1170,14'
          Dst:             check_group_access
        - Src:             'dirtree.c:1175,7'
          Dst:             check_class_access
        - Src:             'dirtree.c:1179,7'
          Dst:             check_ip_access
        - Src:             'dirtree.c:1183,7'
          Dst:             check_filter_access
        - Src:             'dirtree.c:1187,15'
          Dst:             get_param_ptr
    - functionName:    check_limit_deny
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1196
      functionLinenumberEnd: 1229
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          144
      EdgeCount:       38
      CyclomaticComplexity: 12
      functionsReached:
        - check_class_access
        - check_filter_access
        - check_group_access
        - check_ip_access
        - check_user_access
        - get_param_ptr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:1199,14'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:1206,7'
          Dst:             check_user_access
        - Src:             'dirtree.c:1211,7'
          Dst:             check_group_access
        - Src:             'dirtree.c:1216,7'
          Dst:             check_class_access
        - Src:             'dirtree.c:1220,7'
          Dst:             check_ip_access
        - Src:             'dirtree.c:1224,7'
          Dst:             check_filter_access
    - functionName:    pr_config_get_server_xfer_bufsz
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3018
      functionLinenumberEnd: 3033
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - pr_config_get_xfer_bufsz2
      functionUses:    8
      BranchProfiles:
        - Branch String:   'dirtree.c:3020,5'
          Branch Sides:    []
      Callsites:
        - Src:             'dirtree.c:3032,10'
          Dst:             pr_config_get_xfer_bufsz2
    - functionName:    pr_config_get_xfer_bufsz2
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3006
      functionLinenumberEnd: 3016
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          30
      EdgeCount:       8
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'dirtree.c:3007,3'
          Branch Sides:    []
      Callsites:       []
    - functionName:    pr_config_get_xfer_bufsz
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3002
      functionLinenumberEnd: 3003
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_full_cmd
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2998
      functionLinenumberEnd: 2999
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_cmd_get_displayable_str
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:2999,10'
          Dst:             pr_cmd_get_displayable_str
    - functionName:    get_boolean
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2992
      functionLinenumberEnd: 2995
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_str_is_boolean
      functionUses:    51
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:2995,10'
          Dst:             pr_str_is_boolean
    - functionName:    get_context_name
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2933
      functionLinenumberEnd: 2990
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          128
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - pr_snprintf
      functionUses:    169
      BranchProfiles:
        - Branch String:   'dirtree.c:2951,3'
          Branch Sides:    []
      Callsites:
        - Src:             'dirtree.c:2985,7'
          Dst:             pr_snprintf
    - functionName:    check_context
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2914
      functionLinenumberEnd: 2931
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    170
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_tcp_bufsz
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2727
      functionLinenumberEnd: 2850
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          184
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - close
        - endprotoent
        - getprotobyname
        - getsockopt
        - pr_log_debug
        - setprotoent
        - socket
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:2733,3'
          Dst:             setprotoent
        - Src:             'dirtree.c:2736,7'
          Dst:             getprotobyname
        - Src:             'dirtree.c:2742,3'
          Dst:             endprotoent
        - Src:             'dirtree.c:2758,73'
          Dst:             __errno_location
        - Src:             'dirtree.c:2758,64'
          Dst:             strerror
        - Src:             'dirtree.c:2758,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2759,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2773,12'
          Dst:             socket
        - Src:             'dirtree.c:2778,55'
          Dst:             __errno_location
        - Src:             'dirtree.c:2778,46'
          Dst:             strerror
        - Src:             'dirtree.c:2778,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2779,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2787,7'
          Dst:             getsockopt
        - Src:             'dirtree.c:2791,73'
          Dst:             __errno_location
        - Src:             'dirtree.c:2791,64'
          Dst:             strerror
        - Src:             'dirtree.c:2791,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2792,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2803,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2817,7'
          Dst:             getsockopt
        - Src:             'dirtree.c:2821,73'
          Dst:             __errno_location
        - Src:             'dirtree.c:2821,64'
          Dst:             strerror
        - Src:             'dirtree.c:2821,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2822,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2833,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2849,10'
          Dst:             close
    - functionName:    init_dirtree
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2852
      functionLinenumberEnd: 2910
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          133
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - destroy_pool
        - make_sub_pool
        - palloc
        - pcalloc
        - pr_inet_getservport
        - pr_pool_tag
        - pr_table_nalloc
        - set_tcp_bufsz
        - xaset_create
        - xaset_insert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:2853,24'
          Dst:             make_sub_pool
        - Src:             'dirtree.c:2854,3'
          Dst:             pr_pool_tag
        - Src:             'dirtree.c:2869,7'
          Dst:             destroy_pool
        - Src:             'dirtree.c:2872,5'
          Dst:             destroy_pool
        - Src:             'dirtree.c:2881,17'
          Dst:             xaset_create
        - Src:             'dirtree.c:2883,18'
          Dst:             make_sub_pool
        - Src:             'dirtree.c:2884,3'
          Dst:             pr_pool_tag
        - Src:             'dirtree.c:2886,32'
          Dst:             pcalloc
        - Src:             'dirtree.c:2887,3'
          Dst:             xaset_insert
        - Src:             'dirtree.c:2892,24'
          Dst:             pr_table_nalloc
        - Src:             'dirtree.c:2898,32'
          Dst:             palloc
        - Src:             'dirtree.c:2906,29'
          Dst:             pr_inet_getservport
        - Src:             'dirtree.c:2909,3'
          Dst:             set_tcp_bufsz
    - functionName:    fixup_globals
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2477
      functionLinenumberEnd: 2514
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          173
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - copy_global_to_all
        - destroy_pool
        - strcmp
        - xaset_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:2495,11'
          Dst:             strcmp
        - Src:             'dirtree.c:2501,11'
          Dst:             copy_global_to_all
        - Src:             'dirtree.c:2504,9'
          Dst:             xaset_remove
        - Src:             'dirtree.c:2508,11'
          Dst:             destroy_pool
    - functionName:    fixup_servers
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2546
      functionLinenumberEnd: 2725
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         80
      ICount:          546
      EdgeCount:       106
      CyclomaticComplexity: 28
      functionsReached:
        - destroy_pool
        - find_config
        - fixup_dirs
        - fixup_globals
        - get_param_ptr
        - pcalloc
        - pr_conf_add_server_config_param_str
        - pr_inet_clear
        - pr_log_pri
        - pr_netaddr_get_addr
        - pr_netaddr_get_addr2
        - pr_netaddr_get_dnsstr
        - pr_netaddr_get_family
        - pr_netaddr_get_ipstr
        - pr_netaddr_get_localaddr_str
        - pr_netaddr_set_sockaddr_any
        - pr_netaddr_use_ipv6
        - pr_session_end
        - pr_snprintf
        - pstrcat
        - pstrdup
        - xaset_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:2550,3'
          Dst:             fixup_globals
        - Src:             'dirtree.c:2556,9'
          Dst:             find_config
        - Src:             'dirtree.c:2558,23'
          Dst:             pstrdup
        - Src:             'dirtree.c:2561,23'
          Dst:             pstrdup
        - Src:             'dirtree.c:2572,26'
          Dst:             pr_netaddr_get_localaddr_str
        - Src:             'dirtree.c:2573,17'
          Dst:             pr_netaddr_get_addr
        - Src:             'dirtree.c:2583,19'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'dirtree.c:2585,15'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'dirtree.c:2586,27'
          Dst:             pcalloc
        - Src:             'dirtree.c:2587,17'
          Dst:             pr_netaddr_get_family
        - Src:             'dirtree.c:2592,15'
          Dst:             pr_snprintf
        - Src:             'dirtree.c:2593,23'
          Dst:             pstrdup
        - Src:             'dirtree.c:2599,13'
          Dst:             pr_conf_add_server_config_param_str
        - Src:             'dirtree.c:2610,17'
          Dst:             pr_netaddr_get_addr2
        - Src:             'dirtree.c:2622,11'
          Dst:             pr_log_pri
        - Src:             'dirtree.c:2626,11'
          Dst:             pr_session_end
        - Src:             'dirtree.c:2636,7'
          Dst:             pr_log_pri
        - Src:             'dirtree.c:2638,7'
          Dst:             xaset_remove
        - Src:             'dirtree.c:2641,9'
          Dst:             destroy_pool
        - Src:             'dirtree.c:2648,21'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'dirtree.c:2655,24'
          Dst:             pstrcat
        - Src:             'dirtree.c:2659,11'
          Dst:             find_config
        - Src:             'dirtree.c:2661,25'
          Dst:             pstrdup
        - Src:             'dirtree.c:2667,25'
          Dst:             pstrdup
        - Src:             'dirtree.c:2679,9'
          Dst:             find_config
        - Src:             'dirtree.c:2684,21'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'dirtree.c:2691,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'dirtree.c:2690,7'
          Dst:             pr_log_pri
        - Src:             'dirtree.c:2697,22'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:2703,9'
          Dst:             pr_netaddr_set_sockaddr_any
        - Src:             'dirtree.c:2706,9'
          Dst:             pr_log_pri
        - Src:             'dirtree.c:2711,5'
          Dst:             fixup_dirs
        - Src:             'dirtree.c:2719,5'
          Dst:             pr_log_pri
        - Src:             'dirtree.c:2723,3'
          Dst:             pr_inet_clear
    - functionName:    fixup_dirs
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2516
      functionLinenumberEnd: 2540
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          77
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - pr_config_dump
        - pr_config_merge_down
        - pr_log_debug
        - reorder_dirs
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:2523,7'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2524,7'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2530,3'
          Dst:             reorder_dirs
        - Src:             'dirtree.c:2533,3'
          Dst:             pr_config_merge_down
        - Src:             'dirtree.c:2536,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2537,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2538,5'
          Dst:             pr_config_dump
    - functionName:    reorder_dirs
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2235
      functionLinenumberEnd: 2301
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         56
      ICount:          300
      EdgeCount:       74
      CyclomaticComplexity: 20
      functionsReached:
        - find_best_dir
        - pr_signals_handle
        - reorder_dirs
        - reparent_all
        - strcmp
        - xaset_create
        - xaset_insert
        - xaset_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:2255,5'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:2271,11'
          Dst:             strcmp
        - Src:             'dirtree.c:2274,11'
          Dst:             reparent_all
        - Src:             'dirtree.c:2277,9'
          Dst:             xaset_remove
        - Src:             'dirtree.c:2280,21'
          Dst:             find_best_dir
        - Src:             'dirtree.c:2283,33'
          Dst:             xaset_create
        - Src:             'dirtree.c:2286,11'
          Dst:             xaset_remove
        - Src:             'dirtree.c:2287,11'
          Dst:             xaset_insert
        - Src:             'dirtree.c:2298,7'
          Dst:             reorder_dirs
    - functionName:    resolve_deferred_dirs
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2367
      functionLinenumberEnd: 2415
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          187
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - dir_best_path
        - dir_canonical_path
        - dir_interpolate
        - path_subst_uservar
        - pr_trace_get_level
        - pr_trace_msg
        - pstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:2381,11'
          Dst:             pr_trace_get_level
        - Src:             'dirtree.c:2382,21'
          Dst:             pstrdup
        - Src:             'dirtree.c:2386,26'
          Dst:             path_subst_uservar
        - Src:             'dirtree.c:2389,20'
          Dst:             dir_interpolate
        - Src:             'dirtree.c:2397,18'
          Dst:             dir_best_path
        - Src:             'dirtree.c:2402,20'
          Dst:             dir_canonical_path
        - Src:             'dirtree.c:2408,7'
          Dst:             pr_trace_msg
    - functionName:    resolve_anonymous_dirs
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2336
      functionLinenumberEnd: 2364
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          134
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - dir_best_path
        - dir_canonical_path
        - resolve_anonymous_dirs
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:2347,19'
          Dst:             dir_best_path
        - Src:             'dirtree.c:2352,21'
          Dst:             dir_canonical_path
        - Src:             'dirtree.c:2360,9'
          Dst:             resolve_anonymous_dirs
    - functionName:    dir_check_canon
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2122
      functionLinenumberEnd: 2123
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dir_best_path
        - dir_check
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:2123,36'
          Dst:             dir_best_path
        - Src:             'dirtree.c:2123,10'
          Dst:             dir_check
    - functionName:    dir_check
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1949
      functionLinenumberEnd: 2115
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         178
      ICount:          902
      EdgeCount:       240
      CyclomaticComplexity: 64
      functionsReached:
        - __errno_location
        - build_dyn_config
        - destroy_pool
        - dir_check_full
        - dir_check_limits
        - dir_check_op
        - dir_hide_file
        - dir_match_path
        - get_param_ptr
        - make_sub_pool
        - pdircat
        - pr_auth_getgrnam
        - pr_auth_getpwnam
        - pr_cmd_cmp
        - pr_cmd_get_id
        - pr_fsio_stat
        - pr_log_debug
        - pr_pool_tag
        - pr_trace_msg
        - strcmp
        - strlen
        - strncmp
        - umask
      functionUses:    30
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:1959,5'
          Dst:             __errno_location
        - Src:             'dirtree.c:1963,7'
          Dst:             make_sub_pool
        - Src:             'dirtree.c:1964,3'
          Dst:             pr_pool_tag
        - Src:             'dirtree.c:1969,16'
          Dst:             pdircat
        - Src:             'dirtree.c:1976,34'
          Dst:             strlen
        - Src:             'dirtree.c:1976,7'
          Dst:             strncmp
        - Src:             'dirtree.c:1977,5'
          Dst:             destroy_pool
        - Src:             'dirtree.c:1978,12'
          Dst:             dir_check_full
        - Src:             'dirtree.c:1982,12'
          Dst:             pr_fsio_stat
        - Src:             'dirtree.c:1987,3'
          Dst:             build_dyn_config
        - Src:             'dirtree.c:1990,18'
          Dst:             dir_hide_file
        - Src:             'dirtree.c:1995,28'
          Dst:             dir_match_path
        - Src:             'dirtree.c:1997,5'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:2008,19'
          Dst:             pr_cmd_get_id
        - Src:             'dirtree.c:2014,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:2015,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:2018,19'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:2020,9'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:2029,28'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:2037,11'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:2042,10'
          Dst:             pr_auth_getpwnam
        - Src:             'dirtree.c:2048,11'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:2052,9'
          Dst:             strcmp
        - Src:             'dirtree.c:2055,12'
          Dst:             pr_auth_getgrnam
        - Src:             'dirtree.c:2069,18'
          Dst:             dir_check_op
        - Src:             'dirtree.c:2072,11'
          Dst:             dir_check_op
        - Src:             'dirtree.c:2077,11'
          Dst:             dir_check_limits
        - Src:             'dirtree.c:2084,13'
          Dst:             dir_check_limits
        - Src:             'dirtree.c:2092,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:2093,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:2094,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:2095,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:2096,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:2097,9'
          Dst:             strncmp
        - Src:             'dirtree.c:2098,13'
          Dst:             dir_check_limits
        - Src:             'dirtree.c:2105,47'
          Dst:             umask
        - Src:             'dirtree.c:2104,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:2108,3'
          Dst:             destroy_pool
    - functionName:    dir_check_full
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1776
      functionLinenumberEnd: 1941
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         170
      ICount:          861
      EdgeCount:       229
      CyclomaticComplexity: 61
      functionsReached:
        - __errno_location
        - build_dyn_config
        - destroy_pool
        - dir_check_limits
        - dir_check_op
        - dir_hide_file
        - dir_match_path
        - get_param_ptr
        - make_sub_pool
        - pdircat
        - pr_auth_getgrnam
        - pr_auth_getpwnam
        - pr_cmd_cmp
        - pr_cmd_get_id
        - pr_fsio_stat
        - pr_log_debug
        - pr_pool_tag
        - pr_trace_msg
        - strcmp
        - strncmp
        - umask
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:1786,5'
          Dst:             __errno_location
        - Src:             'dirtree.c:1790,7'
          Dst:             make_sub_pool
        - Src:             'dirtree.c:1791,3'
          Dst:             pr_pool_tag
        - Src:             'dirtree.c:1796,16'
          Dst:             pdircat
        - Src:             'dirtree.c:1801,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:1806,12'
          Dst:             pr_fsio_stat
        - Src:             'dirtree.c:1811,3'
          Dst:             build_dyn_config
        - Src:             'dirtree.c:1814,18'
          Dst:             dir_hide_file
        - Src:             'dirtree.c:1819,28'
          Dst:             dir_match_path
        - Src:             'dirtree.c:1821,5'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1831,19'
          Dst:             pr_cmd_get_id
        - Src:             'dirtree.c:1837,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:1838,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:1841,19'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:1843,9'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1852,28'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:1860,11'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:1865,10'
          Dst:             pr_auth_getpwnam
        - Src:             'dirtree.c:1871,11'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:1875,9'
          Dst:             strcmp
        - Src:             'dirtree.c:1878,12'
          Dst:             pr_auth_getgrnam
        - Src:             'dirtree.c:1890,18'
          Dst:             dir_check_op
        - Src:             'dirtree.c:1893,11'
          Dst:             dir_check_op
        - Src:             'dirtree.c:1902,11'
          Dst:             dir_check_limits
        - Src:             'dirtree.c:1909,13'
          Dst:             dir_check_limits
        - Src:             'dirtree.c:1917,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:1918,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:1919,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:1920,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:1921,9'
          Dst:             pr_cmd_cmp
        - Src:             'dirtree.c:1922,9'
          Dst:             strncmp
        - Src:             'dirtree.c:1923,13'
          Dst:             dir_check_limits
        - Src:             'dirtree.c:1931,47'
          Dst:             umask
        - Src:             'dirtree.c:1929,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:1934,3'
          Dst:             destroy_pool
    - functionName:    build_dyn_config
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1503
      functionLinenumberEnd: 1760
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         129
      ICount:          781
      EdgeCount:       176
      CyclomaticComplexity: 49
      functionsReached:
        - __errno_location
        - allow_dyn_config
        - destroy_pool
        - dir_match_path
        - fixup_dirs
        - pcalloc
        - pdircat
        - pr_config_add_set
        - pr_config_merge_down
        - pr_fsio_stat
        - pr_log_debug
        - pr_parser_cleanup
        - pr_parser_parse_file
        - pr_parser_prepare
        - pr_signals_handle
        - pr_trace_msg
        - pstrdup
        - strcmp
        - strerror
        - strlen
        - strrchr
        - xaset_remove
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:1532,8'
          Dst:             allow_dyn_config
        - Src:             'dirtree.c:1538,19'
          Dst:             pstrdup
        - Src:             'dirtree.c:1547,11'
          Dst:             strrchr
        - Src:             'dirtree.c:1556,5'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:1558,24'
          Dst:             strlen
        - Src:             'dirtree.c:1584,22'
          Dst:             pdircat
        - Src:             'dirtree.c:1593,24'
          Dst:             pdircat
        - Src:             'dirtree.c:1596,27'
          Dst:             strlen
        - Src:             'dirtree.c:1609,7'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1611,16'
          Dst:             pr_fsio_stat
        - Src:             'dirtree.c:1617,9'
          Dst:             dir_match_path
        - Src:             'dirtree.c:1625,7'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1627,11'
          Dst:             pr_config_add_set
        - Src:             'dirtree.c:1630,17'
          Dst:             pcalloc
        - Src:             'dirtree.c:1637,11'
          Dst:             strcmp
        - Src:             'dirtree.c:1640,9'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1642,16'
          Dst:             pr_config_add_set
        - Src:             'dirtree.c:1645,22'
          Dst:             pcalloc
        - Src:             'dirtree.c:1650,18'
          Dst:             strcmp
        - Src:             'dirtree.c:1664,15'
          Dst:             xaset_remove
        - Src:             'dirtree.c:1672,11'
          Dst:             destroy_pool
        - Src:             'dirtree.c:1680,13'
          Dst:             xaset_remove
        - Src:             'dirtree.c:1693,20'
          Dst:             pcalloc
        - Src:             'dirtree.c:1698,7'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1700,7'
          Dst:             pr_parser_prepare
        - Src:             'dirtree.c:1701,13'
          Dst:             pr_parser_parse_file
        - Src:             'dirtree.c:1703,7'
          Dst:             pr_parser_cleanup
        - Src:             'dirtree.c:1707,9'
          Dst:             pr_config_merge_down
        - Src:             'dirtree.c:1709,9'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1710,9'
          Dst:             fixup_dirs
        - Src:             'dirtree.c:1713,22'
          Dst:             __errno_location
        - Src:             'dirtree.c:1716,11'
          Dst:             strerror
        - Src:             'dirtree.c:1715,9'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1718,11'
          Dst:             strerror
        - Src:             'dirtree.c:1717,9'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:1726,7'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:1727,7'
          Dst:             pr_config_merge_down
        - Src:             'dirtree.c:1735,11'
          Dst:             strrchr
        - Src:             'dirtree.c:1744,13'
          Dst:             strcmp
    - functionName:    dir_hide_file
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         73
      ICount:          530
      EdgeCount:       98
      CyclomaticComplexity: 27
      functionsReached:
        - destroy_pool
        - find_config
        - find_config_next
        - get_dir_ctxt
        - make_sub_pool
        - pr_expr_eval_class_or
        - pr_expr_eval_group_and
        - pr_expr_eval_user_or
        - pr_log_debug
        - pr_pool_tag
        - pr_regexp_exec
        - pr_signals_handle
        - pstrdup
        - strcasecmp
        - strlen
        - strrchr
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:167,14'
          Dst:             make_sub_pool
        - Src:             'dirtree.c:168,3'
          Dst:             pr_pool_tag
        - Src:             'dirtree.c:174,14'
          Dst:             pstrdup
        - Src:             'dirtree.c:176,15'
          Dst:             strrchr
        - Src:             'dirtree.c:188,11'
          Dst:             strlen
        - Src:             'dirtree.c:202,19'
          Dst:             get_dir_ctxt
        - Src:             'dirtree.c:202,7'
          Dst:             find_config
        - Src:             'dirtree.c:206,5'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:210,11'
          Dst:             strcasecmp
        - Src:             'dirtree.c:211,13'
          Dst:             pr_expr_eval_user_or
        - Src:             'dirtree.c:225,18'
          Dst:             strcasecmp
        - Src:             'dirtree.c:226,13'
          Dst:             pr_expr_eval_group_and
        - Src:             'dirtree.c:243,18'
          Dst:             strcasecmp
        - Src:             'dirtree.c:244,13'
          Dst:             pr_expr_eval_class_or
        - Src:             'dirtree.c:259,7'
          Dst:             destroy_pool
        - Src:             'dirtree.c:274,9'
          Dst:             find_config_next
        - Src:             'dirtree.c:281,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:287,7'
          Dst:             destroy_pool
        - Src:             'dirtree.c:291,7'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:296,9'
          Dst:             pr_regexp_exec
        - Src:             'dirtree.c:297,7'
          Dst:             destroy_pool
        - Src:             'dirtree.c:299,7'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:309,5'
          Dst:             destroy_pool
        - Src:             'dirtree.c:311,5'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:321,3'
          Dst:             destroy_pool
    - functionName:    dir_match_path
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 561
      functionLinenumberEnd: 610
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          201
      EdgeCount:       48
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - pr_trace_msg
        - pstrdup
        - recur_match_path
        - strerror
        - strlen
        - strncmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:569,5'
          Dst:             __errno_location
        - Src:             'dirtree.c:573,9'
          Dst:             pstrdup
        - Src:             'dirtree.c:574,12'
          Dst:             strlen
        - Src:             'dirtree.c:578,14'
          Dst:             strlen
        - Src:             'dirtree.c:586,11'
          Dst:             recur_match_path
        - Src:             'dirtree.c:590,46'
          Dst:             strlen
        - Src:             'dirtree.c:590,12'
          Dst:             strncmp
        - Src:             'dirtree.c:597,11'
          Dst:             recur_match_path
        - Src:             'dirtree.c:601,5'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:606,21'
          Dst:             __errno_location
        - Src:             'dirtree.c:606,12'
          Dst:             strerror
        - Src:             'dirtree.c:605,5'
          Dst:             pr_trace_msg
    - functionName:    dir_check_op
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 614
      functionLinenumberEnd: 839
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         93
      ICount:          546
      EdgeCount:       123
      CyclomaticComplexity: 32
      functionsReached:
        - __errno_location
        - find_config
        - find_config_next
        - get_param_ptr
        - pr_auth_getgrnam
        - pr_auth_getpwnam
        - pr_fsio_access
        - pr_log_debug
        - pr_signals_handle
        - pr_trace_msg
        - strcmp
        - strerror
      functionUses:    4
      BranchProfiles:
        - Branch String:   'dirtree.c:623,3'
          Branch Sides:    []
      Callsites:
        - Src:             'dirtree.c:625,11'
          Dst:             find_config
        - Src:             'dirtree.c:631,9'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:636,13'
          Dst:             strcmp
        - Src:             'dirtree.c:642,16'
          Dst:             pr_auth_getpwnam
        - Src:             'dirtree.c:644,13'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:647,17'
          Dst:             find_config_next
        - Src:             'dirtree.c:656,13'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:664,11'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:670,13'
          Dst:             find_config_next
        - Src:             'dirtree.c:679,13'
          Dst:             find_config
        - Src:             'dirtree.c:685,11'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:690,15'
          Dst:             strcmp
        - Src:             'dirtree.c:696,18'
          Dst:             pr_auth_getgrnam
        - Src:             'dirtree.c:698,15'
          Dst:             pr_log_debug
        - Src:             'dirtree.c:702,19'
          Dst:             find_config_next
        - Src:             'dirtree.c:712,17'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:721,15'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:735,17'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:747,19'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:758,15'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:765,15'
          Dst:             find_config_next
        - Src:             'dirtree.c:776,26'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:784,19'
          Dst:             pr_fsio_access
        - Src:             'dirtree.c:787,28'
          Dst:             __errno_location
        - Src:             'dirtree.c:791,23'
          Dst:             strerror
        - Src:             'dirtree.c:789,15'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:792,15'
          Dst:             __errno_location
        - Src:             'dirtree.c:799,19'
          Dst:             pr_fsio_access
        - Src:             'dirtree.c:802,28'
          Dst:             __errno_location
        - Src:             'dirtree.c:806,17'
          Dst:             strerror
        - Src:             'dirtree.c:804,15'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:807,15'
          Dst:             __errno_location
        - Src:             'dirtree.c:817,19'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:818,18'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:829,17'
          Dst:             strerror
        - Src:             'dirtree.c:827,9'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:831,9'
          Dst:             __errno_location
    - functionName:    dir_check_limits
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1456
      functionLinenumberEnd: 1470
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          83
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - check_limits
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:1460,11'
          Dst:             check_limits
        - Src:             'dirtree.c:1467,11'
          Dst:             check_limits
    - functionName:    check_limits
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1383
      functionLinenumberEnd: 1453
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          236
      EdgeCount:       59
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - check_limit
        - get_param_ptr
        - pr_signals_handle
        - strcasecmp
      functionUses:    2
      BranchProfiles:
        - Branch String:   'dirtree.c:1431,7'
          Branch Sides:    []
      Callsites:
        - Src:             'dirtree.c:1387,3'
          Dst:             __errno_location
        - Src:             'dirtree.c:1394,5'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:1400,13'
          Dst:             strcasecmp
        - Src:             'dirtree.c:1419,18'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:1426,11'
          Dst:             __errno_location
        - Src:             'dirtree.c:1431,15'
          Dst:             check_limit
        - Src:             'dirtree.c:1448,7'
          Dst:             __errno_location
        - Src:             'dirtree.c:1449,5'
          Dst:             __errno_location
    - functionName:    check_limit
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1235
      functionLinenumberEnd: 1274
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          103
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - check_limit_allow
        - check_limit_deny
        - get_param_ptr
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:1238,9'
          Dst:             get_param_ptr
        - Src:             'dirtree.c:1244,9'
          Dst:             check_limit_deny
        - Src:             'dirtree.c:1246,7'
          Dst:             __errno_location
        - Src:             'dirtree.c:1250,9'
          Dst:             check_limit_allow
        - Src:             'dirtree.c:1256,5'
          Dst:             __errno_location
        - Src:             'dirtree.c:1261,7'
          Dst:             check_limit_allow
        - Src:             'dirtree.c:1266,7'
          Dst:             check_limit_deny
        - Src:             'dirtree.c:1268,5'
          Dst:             __errno_location
    - functionName:    recur_match_path
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 450
      functionLinenumberEnd: 559
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          357
      EdgeCount:       75
      CyclomaticComplexity: 21
      functionsReached:
        - __errno_location
        - dir_canonical_path
        - pdircat
        - pr_fnmatch
        - pr_str_is_fnmatch
        - pr_trace_msg
        - pstrcat
        - recur_match_path
        - strcmp
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:455,5'
          Dst:             __errno_location
        - Src:             'dirtree.c:467,24'
          Dst:             dir_canonical_path
        - Src:             'dirtree.c:470,20'
          Dst:             pdircat
        - Src:             'dirtree.c:474,11'
          Dst:             strcmp
        - Src:             'dirtree.c:475,9'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:491,18'
          Dst:             strlen
        - Src:             'dirtree.c:501,15'
          Dst:             strcmp
        - Src:             'dirtree.c:502,13'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:508,25'
          Dst:             pdircat
        - Src:             'dirtree.c:512,25'
          Dst:             pstrcat
        - Src:             'dirtree.c:520,7'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:531,11'
          Dst:             pr_fnmatch
        - Src:             'dirtree.c:532,12'
          Dst:             pr_str_is_fnmatch
        - Src:             'dirtree.c:533,12'
          Dst:             pr_fnmatch
        - Src:             'dirtree.c:534,9'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:541,17'
          Dst:             recur_match_path
        - Src:             'dirtree.c:543,13'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:550,9'
          Dst:             pr_trace_msg
        - Src:             'dirtree.c:557,3'
          Dst:             __errno_location
    - functionName:    get_dir_ctxt
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          101
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - dir_match_path
        - pdircat
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:131,19'
          Dst:             pdircat
        - Src:             'dirtree.c:134,19'
          Dst:             pdircat
        - Src:             'dirtree.c:138,17'
          Dst:             pdircat
        - Src:             'dirtree.c:141,7'
          Dst:             dir_match_path
    - functionName:    allow_dyn_config
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          141
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - find_config
        - find_config_next
        - pr_signals_handle
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:65,7'
          Dst:             find_config
        - Src:             'dirtree.c:67,5'
          Dst:             pr_signals_handle
        - Src:             'dirtree.c:79,9'
          Dst:             find_config_next
        - Src:             'dirtree.c:87,5'
          Dst:             pr_trace_msg
    - functionName:    login_check_limits
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1282
      functionLinenumberEnd: 1378
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         98
      ICount:          464
      EdgeCount:       125
      CyclomaticComplexity: 29
      functionsReached:
        - check_limit
        - login_check_limits
        - strcasecmp
      functionUses:    6
      BranchProfiles:
        - Branch String:   'dirtree.c:1308,11'
          Branch Sides:    []
        - Branch String:   'dirtree.c:1326,11'
          Branch Sides:    []
      Callsites:
        - Src:             'dirtree.c:1301,13'
          Dst:             strcasecmp
        - Src:             'dirtree.c:1308,19'
          Dst:             check_limit
        - Src:             'dirtree.c:1326,19'
          Dst:             check_limit
        - Src:             'dirtree.c:1348,25'
          Dst:             login_check_limits
        - Src:             'dirtree.c:1357,18'
          Dst:             login_check_limits
    - functionName:    kludge_enable_umask
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 425
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    kludge_disable_umask
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 419
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_define_exists
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          157
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:385,5'
          Dst:             __errno_location
        - Src:             'dirtree.c:396,11'
          Dst:             strcmp
        - Src:             'dirtree.c:409,11'
          Dst:             strcmp
        - Src:             'dirtree.c:415,3'
          Dst:             __errno_location
    - functionName:    define_restart_ev
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - define_restart_ev
        - destroy_pool
        - pr_event_unregister
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:330,5'
          Dst:             destroy_pool
        - Src:             'dirtree.c:335,3'
          Dst:             pr_event_unregister
        - Src:             'dirtree.c:335,3'
          Dst:             define_restart_ev
    - functionName:    pr_define_add
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          129
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - define_restart_ev
        - make_array
        - make_sub_pool
        - pr_event_register
        - pr_pool_tag
        - pstrdup
        - push_array
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:349,5'
          Dst:             __errno_location
        - Src:             'dirtree.c:355,22'
          Dst:             make_sub_pool
        - Src:             'dirtree.c:356,7'
          Dst:             pr_pool_tag
        - Src:             'dirtree.c:357,7'
          Dst:             pr_event_register
        - Src:             'dirtree.c:357,7'
          Dst:             define_restart_ev
        - Src:             'dirtree.c:361,22'
          Dst:             make_array
        - Src:             'dirtree.c:365,45'
          Dst:             pstrdup
        - Src:             'dirtree.c:365,17'
          Dst:             push_array
        - Src:             'dirtree.c:370,25'
          Dst:             make_sub_pool
        - Src:             'dirtree.c:371,5'
          Dst:             pr_pool_tag
        - Src:             'dirtree.c:375,25'
          Dst:             make_array
        - Src:             'dirtree.c:379,5'
          Dst:             pstrdup
        - Src:             'dirtree.c:378,15'
          Dst:             push_array
    - functionName:    is_dotdir
      functionSourceFile: '/src/proftpd/src/dirtree.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          58
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - strcmp
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'dirtree.c:101,7'
          Dst:             strcmp
        - Src:             'dirtree.c:102,7'
          Dst:             strcmp
        - Src:             'dirtree.c:103,7'
          Dst:             strcmp
        - Src:             'dirtree.c:104,7'
          Dst:             strcmp
    - functionName:    config_type_str
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          72
      EdgeCount:       26
      CyclomaticComplexity: 14
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'configdb.c:248,3'
          Branch Sides:    []
      Callsites:       []
    - functionName:    init_config
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 960
      functionLinenumberEnd: 999
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         12
      ICount:          72
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - destroy_pool
        - make_sub_pool
        - pr_log_debug
        - pr_pool_tag
        - pr_table_alloc
        - pr_table_ctl
        - pr_table_empty
        - pr_table_free
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:965,5'
          Dst:             destroy_pool
        - Src:             'configdb.c:973,12'
          Dst:             pr_table_empty
        - Src:             'configdb.c:974,12'
          Dst:             pr_table_free
        - Src:             'configdb.c:976,18'
          Dst:             pr_table_alloc
        - Src:             'configdb.c:985,23'
          Dst:             make_sub_pool
        - Src:             'configdb.c:986,5'
          Dst:             pr_pool_tag
        - Src:             'configdb.c:987,18'
          Dst:             pr_table_alloc
        - Src:             'configdb.c:995,7'
          Dst:             pr_table_ctl
        - Src:             'configdb.c:997,25'
          Dst:             __errno_location
        - Src:             'configdb.c:997,16'
          Dst:             strerror
        - Src:             'configdb.c:996,5'
          Dst:             pr_log_debug
    - functionName:    add_config_param
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 865
      functionLinenumberEnd: 893
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          110
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pcalloc
        - pr_config_add
      functionUses:    121
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:870,5'
          Dst:             __errno_location
        - Src:             'configdb.c:874,7'
          Dst:             pr_config_add
        - Src:             'configdb.c:880,15'
          Dst:             pcalloc
    - functionName:    pr_config_add
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          141
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - make_sub_pool
        - pr_config_add_set
        - pr_parser_config_ctxt_get
        - pr_parser_server_ctxt_get
        - pr_pool_tag
        - xaset_create
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:151,9'
          Dst:             pr_parser_server_ctxt_get
        - Src:             'configdb.c:155,5'
          Dst:             __errno_location
        - Src:             'configdb.c:159,7'
          Dst:             pr_parser_config_ctxt_get
        - Src:             'configdb.c:172,11'
          Dst:             make_sub_pool
        - Src:             'configdb.c:173,7'
          Dst:             pr_pool_tag
        - Src:             'configdb.c:183,12'
          Dst:             xaset_create
        - Src:             'configdb.c:186,7'
          Dst:             pr_config_add_set
    - functionName:    pr_config_add_set
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          79
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - make_sub_pool
        - pr_config_add_config_to_set
        - pr_config_alloc
        - pr_pool_create_sz
        - pr_pool_tag
        - xaset_create
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:110,5'
          Dst:             __errno_location
        - Src:             'configdb.c:118,16'
          Dst:             make_sub_pool
        - Src:             'configdb.c:119,5'
          Dst:             pr_pool_tag
        - Src:             'configdb.c:121,12'
          Dst:             xaset_create
        - Src:             'configdb.c:129,15'
          Dst:             pr_pool_create_sz
        - Src:             'configdb.c:130,3'
          Dst:             pr_pool_tag
        - Src:             'configdb.c:132,7'
          Dst:             pr_config_alloc
        - Src:             'configdb.c:133,3'
          Dst:             pr_config_add_config_to_set
    - functionName:    pr_config_alloc
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pcalloc
        - pr_config_set_id
        - pstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:54,5'
          Dst:             __errno_location
        - Src:             'configdb.c:58,22'
          Dst:             pcalloc
        - Src:             'configdb.c:63,15'
          Dst:             pstrdup
        - Src:             'configdb.c:64,20'
          Dst:             pr_config_set_id
    - functionName:    pr_config_add_config_to_set
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_event_generate
        - xaset_insert
        - xaset_insert_end
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:77,5'
          Dst:             __errno_location
        - Src:             'configdb.c:90,5'
          Dst:             xaset_insert
        - Src:             'configdb.c:93,5'
          Dst:             xaset_insert_end
        - Src:             'configdb.c:99,3'
          Dst:             pr_event_generate
    - functionName:    pr_config_set_id
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 919
      functionLinenumberEnd: 958
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          98
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_config_get_id
        - pr_log_debug
        - pr_table_add
        - pr_table_pcalloc
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:924,5'
          Dst:             __errno_location
        - Src:             'configdb.c:929,5'
          Dst:             __errno_location
        - Src:             'configdb.c:933,9'
          Dst:             pr_table_pcalloc
        - Src:             'configdb.c:936,7'
          Dst:             pr_table_add
        - Src:             'configdb.c:937,9'
          Dst:             __errno_location
        - Src:             'configdb.c:938,12'
          Dst:             pr_config_get_id
        - Src:             'configdb.c:941,11'
          Dst:             __errno_location
        - Src:             'configdb.c:942,9'
          Dst:             pr_log_debug
        - Src:             'configdb.c:947,26'
          Dst:             __errno_location
        - Src:             'configdb.c:947,17'
          Dst:             strerror
        - Src:             'configdb.c:946,9'
          Dst:             pr_log_debug
    - functionName:    pr_config_get_id
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 895
      functionLinenumberEnd: 917
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - pr_table_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:900,5'
          Dst:             __errno_location
        - Src:             'configdb.c:905,5'
          Dst:             __errno_location
        - Src:             'configdb.c:909,9'
          Dst:             pr_table_get
        - Src:             'configdb.c:911,5'
          Dst:             __errno_location
    - functionName:    pr_conf_add_server_config_param_str
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 833
      functionLinenumberEnd: 863
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          127
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - pcalloc
        - pr_config_add
        - pstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:839,7'
          Dst:             pr_config_add
        - Src:             'configdb.c:846,13'
          Dst:             pcalloc
        - Src:             'configdb.c:854,17'
          Dst:             pstrdup
    - functionName:    add_config_param_str
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 801
      functionLinenumberEnd: 829
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          120
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - pcalloc
        - pr_config_add
        - pstrdup
      functionUses:    36
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:807,7'
          Dst:             pr_config_add
        - Src:             'configdb.c:811,15'
          Dst:             pcalloc
        - Src:             'configdb.c:819,19'
          Dst:             pstrdup
    - functionName:    add_config_param_set
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 775
      functionLinenumberEnd: 799
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          103
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - pcalloc
        - pr_config_add_set
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:780,7'
          Dst:             pr_config_add_set
        - Src:             'configdb.c:787,13'
          Dst:             pcalloc
    - functionName:    remove_config
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 770
      functionLinenumberEnd: 771
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_config_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:771,10'
          Dst:             pr_config_remove
    - functionName:    pr_config_remove
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 727
      functionLinenumberEnd: 767
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          151
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - destroy_pool
        - find_config
        - pr_parser_server_ctxt_get
        - pr_signals_handle
        - pr_table_remove
        - xaset_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:732,7'
          Dst:             pr_parser_server_ctxt_get
        - Src:             'configdb.c:737,15'
          Dst:             find_config
        - Src:             'configdb.c:740,5'
          Dst:             pr_signals_handle
        - Src:             'configdb.c:745,5'
          Dst:             xaset_remove
        - Src:             'configdb.c:748,12'
          Dst:             pr_table_remove
        - Src:             'configdb.c:763,7'
          Dst:             destroy_pool
    - functionName:    find_config
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 679
      functionLinenumberEnd: 680
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - find_config2
      functionUses:    146
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:680,10'
          Dst:             find_config2
    - functionName:    find_config2
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 665
      functionLinenumberEnd: 677
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - find_config_next2
        - find_config_set_top
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:669,5'
          Dst:             __errno_location
        - Src:             'configdb.c:673,3'
          Dst:             find_config_set_top
        - Src:             'configdb.c:675,10'
          Dst:             find_config_next2
    - functionName:    find_config_set_top
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 654
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          34
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    find_config_next2
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 497
      functionLinenumberEnd: 647
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         93
      ICount:          448
      EdgeCount:       125
      CyclomaticComplexity: 34
      functionsReached:
        - __errno_location
        - find_config_next2
        - pr_config_get_id
        - pr_signals_handle
        - strlen
        - strncmp
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:523,5'
          Dst:             __errno_location
        - Src:             'configdb.c:532,11'
          Dst:             pr_config_get_id
        - Src:             'configdb.c:533,15'
          Dst:             strlen
        - Src:             'configdb.c:540,7'
          Dst:             pr_signals_handle
        - Src:             'configdb.c:551,13'
          Dst:             pr_signals_handle
        - Src:             'configdb.c:577,19'
          Dst:             find_config_next2
        - Src:             'configdb.c:602,7'
          Dst:             pr_signals_handle
        - Src:             'configdb.c:616,13'
          Dst:             strncmp
        - Src:             'configdb.c:645,3'
          Dst:             __errno_location
    - functionName:    get_param_ptr_next
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 704
      functionLinenumberEnd: 725
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          80
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - find_config_next
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:710,5'
          Dst:             __errno_location
        - Src:             'configdb.c:714,7'
          Dst:             find_config_next
        - Src:             'configdb.c:723,3'
          Dst:             __errno_location
    - functionName:    find_config_next
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 650
      functionLinenumberEnd: 651
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - find_config_next2
      functionUses:    51
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:651,10'
          Dst:             find_config_next2
    - functionName:    get_param_ptr
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 683
      functionLinenumberEnd: 702
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          70
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - find_config
      functionUses:    124
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:688,5'
          Dst:             __errno_location
        - Src:             'configdb.c:692,7'
          Dst:             find_config
        - Src:             'configdb.c:700,3'
          Dst:             __errno_location
    - functionName:    copy_config_from
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 408
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          148
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - pcalloc
        - pr_config_add_set
        - pr_signals_handle
        - xaset_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:382,19'
          Dst:             xaset_create
        - Src:             'configdb.c:385,7'
          Dst:             pr_config_add_set
        - Src:             'configdb.c:395,13'
          Dst:             pcalloc
        - Src:             'configdb.c:402,5'
          Dst:             pr_signals_handle
    - functionName:    config_cmp
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          239
      EdgeCount:       38
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - config_type_str
        - pr_trace_msg
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:311,5'
          Dst:             __errno_location
        - Src:             'configdb.c:318,23'
          Dst:             config_type_str
        - Src:             'configdb.c:319,7'
          Dst:             config_type_str
        - Src:             'configdb.c:316,5'
          Dst:             pr_trace_msg
        - Src:             'configdb.c:324,5'
          Dst:             pr_trace_msg
        - Src:             'configdb.c:331,5'
          Dst:             pr_trace_msg
        - Src:             'configdb.c:342,9'
          Dst:             pr_trace_msg
        - Src:             'configdb.c:351,5'
          Dst:             pr_trace_msg
        - Src:             'configdb.c:358,7'
          Dst:             strcmp
        - Src:             'configdb.c:359,5'
          Dst:             pr_trace_msg
    - functionName:    pr_config_merge_down
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 410
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         67
      ICount:          328
      EdgeCount:       88
      CyclomaticComplexity: 23
      functionsReached:
        - config_cmp
        - copy_config_from
        - find_config
        - pr_config_merge_down
        - pr_signals_handle
        - pr_trace_msg
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:419,5'
          Dst:             pr_signals_handle
        - Src:             'configdb.c:432,15'
          Dst:             find_config
        - Src:             'configdb.c:461,15'
          Dst:             pr_signals_handle
        - Src:             'configdb.c:463,19'
          Dst:             config_cmp
        - Src:             'configdb.c:466,17'
          Dst:             pr_trace_msg
        - Src:             'configdb.c:474,22'
          Dst:             copy_config_from
        - Src:             'configdb.c:479,20'
          Dst:             copy_config_from
        - Src:             'configdb.c:491,7'
          Dst:             pr_config_merge_down
    - functionName:    config_dumpf
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_log_debug
        - pr_vsnprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:201,3'
          Dst:             pr_vsnprintf
        - Src:             'configdb.c:206,3'
          Dst:             pr_log_debug
    - functionName:    pr_config_dump
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          136
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - destroy_pool
        - make_sub_pool
        - pr_config_dump
        - pr_pool_tag
        - pr_signals_handle
        - pstrcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:226,5'
          Dst:             pr_signals_handle
        - Src:             'configdb.c:237,19'
          Dst:             make_sub_pool
        - Src:             'configdb.c:238,7'
          Dst:             pr_pool_tag
        - Src:             'configdb.c:239,40'
          Dst:             pstrcat
        - Src:             'configdb.c:239,7'
          Dst:             pr_config_dump
        - Src:             'configdb.c:240,7'
          Dst:             destroy_pool
    - functionName:    add_config
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_config_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:193,10'
          Dst:             pr_config_add
    - functionName:    add_config_set
      functionSourceFile: '/src/proftpd/src/configdb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_config_add_set
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'configdb.c:139,10'
          Dst:             pr_config_add_set
    - functionName:    modules_init
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 491
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - exit
        - pr_log_pri
        - pr_module_load
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'modules.c:484,9'
          Dst:             pr_module_load
        - Src:             'modules.c:486,27'
          Dst:             __errno_location
        - Src:             'modules.c:486,18'
          Dst:             strerror
        - Src:             'modules.c:485,7'
          Dst:             pr_log_pri
        - Src:             'modules.c:487,7'
          Dst:             exit
    - functionName:    pr_module_load
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          159
      EdgeCount:       37
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - pr_event_generate
        - pr_module_get
        - pr_module_load_authtab
        - pr_module_load_cmdtab
        - pr_module_load_conftab
        - pr_snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'modules.c:327,5'
          Dst:             __errno_location
        - Src:             'modules.c:333,5'
          Dst:             __errno_location
        - Src:             'modules.c:339,3'
          Dst:             pr_snprintf
        - Src:             'modules.c:342,7'
          Dst:             pr_module_get
        - Src:             'modules.c:343,5'
          Dst:             __errno_location
        - Src:             'modules.c:355,9'
          Dst:             pr_module_load_conftab
        - Src:             'modules.c:359,9'
          Dst:             pr_module_load_cmdtab
        - Src:             'modules.c:363,9'
          Dst:             pr_module_load_authtab
        - Src:             'modules.c:376,5'
          Dst:             pr_event_generate
        - Src:             'modules.c:380,3'
          Dst:             __errno_location
    - functionName:    pr_module_get
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - pr_snprintf
        - strcmp
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'modules.c:173,5'
          Dst:             __errno_location
        - Src:             'modules.c:180,5'
          Dst:             pr_snprintf
        - Src:             'modules.c:183,9'
          Dst:             strcmp
        - Src:             'modules.c:188,3'
          Dst:             __errno_location
    - functionName:    pr_module_load_conftab
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          83
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_stash_add_symbol
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'modules.c:303,5'
          Dst:             __errno_location
        - Src:             'modules.c:313,11'
          Dst:             pr_stash_add_symbol
    - functionName:    pr_module_load_cmdtab
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          108
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - pr_stash_add_symbol
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'modules.c:273,5'
          Dst:             __errno_location
        - Src:             'modules.c:284,13'
          Dst:             pr_stash_add_symbol
        - Src:             'modules.c:290,13'
          Dst:             pr_stash_add_symbol
    - functionName:    pr_module_load_authtab
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          83
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_stash_add_symbol
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'modules.c:251,5'
          Dst:             __errno_location
        - Src:             'modules.c:261,11'
          Dst:             pr_stash_add_symbol
    - functionName:    pr_module_unload
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 476
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         41
      ICount:          257
      EdgeCount:       53
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - pr_ctrls_unregister
        - pr_event_generate
        - pr_event_unregister
        - pr_module_get
        - pr_snprintf
        - pr_stash_remove_symbol
        - pr_timer_remove
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'modules.c:389,5'
          Dst:             __errno_location
        - Src:             'modules.c:398,3'
          Dst:             pr_snprintf
        - Src:             'modules.c:401,7'
          Dst:             pr_module_get
        - Src:             'modules.c:402,5'
          Dst:             __errno_location
        - Src:             'modules.c:407,3'
          Dst:             pr_event_generate
        - Src:             'modules.c:431,7'
          Dst:             pr_stash_remove_symbol
        - Src:             'modules.c:440,9'
          Dst:             pr_stash_remove_symbol
        - Src:             'modules.c:444,9'
          Dst:             pr_stash_remove_symbol
        - Src:             'modules.c:453,7'
          Dst:             pr_stash_remove_symbol
        - Src:             'modules.c:470,3'
          Dst:             pr_ctrls_unregister
        - Src:             'modules.c:472,3'
          Dst:             pr_event_unregister
        - Src:             'modules.c:473,3'
          Dst:             pr_timer_remove
    - functionName:    modules_list
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - modules_list2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'modules.c:245,3'
          Dst:             modules_list2
    - functionName:    modules_list2
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          178
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_module_exists
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_module_get
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'modules.c:165,10'
          Dst:             pr_module_get
    - functionName:    command_exists
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - pr_signals_handle
        - pr_stash_get_symbol2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'modules.c:155,12'
          Dst:             pr_stash_get_symbol2
        - Src:             'modules.c:157,5'
          Dst:             pr_signals_handle
        - Src:             'modules.c:158,14'
          Dst:             pr_stash_get_symbol2
    - functionName:    modules_session_init
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          86
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - pr_log_pri
        - pr_trace_msg
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'modules.c:131,7'
          Dst:             pr_trace_msg
        - Src:             'modules.c:134,22'
          Dst:             __errno_location
        - Src:             'modules.c:138,35'
          Dst:             strerror
        - Src:             'modules.c:136,9'
          Dst:             pr_log_pri
        - Src:             'modules.c:140,9'
          Dst:             __errno_location
    - functionName:    mod_create_error
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pcalloc
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'modules.c:110,5'
          Dst:             __errno_location
        - Src:             'modules.c:114,9'
          Dst:             pcalloc
    - functionName:    mod_create_ret
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          87
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - pcalloc
        - pstrdup
      functionUses:    1143
      BranchProfiles:  []
      Callsites:
        - Src:             'modules.c:87,5'
          Dst:             __errno_location
        - Src:             'modules.c:91,9'
          Dst:             pcalloc
        - Src:             'modules.c:96,23'
          Dst:             pstrdup
        - Src:             'modules.c:100,23'
          Dst:             pstrdup
    - functionName:    mod_create_data
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pcalloc
      functionUses:    24
      BranchProfiles:  []
      Callsites:
        - Src:             'modules.c:72,5'
          Dst:             __errno_location
        - Src:             'modules.c:76,9'
          Dst:             pcalloc
    - functionName:    pr_module_call
      functionSourceFile: '/src/proftpd/src/modules.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          85
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - make_sub_pool
        - pr_pool_tag
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'modules.c:49,5'
          Dst:             __errno_location
        - Src:             'modules.c:54,21'
          Dst:             make_sub_pool
        - Src:             'modules.c:55,5'
          Dst:             pr_pool_tag
    - functionName:    netaddr_dnscache_set
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          152
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - make_array
        - netaddr_dnscache_get
        - pr_table_add
        - pr_trace_msg
        - pstrdup
        - push_array
        - strcmp
        - strerror
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:103,11'
          Dst:             netaddr_dnscache_get
        - Src:             'netaddr.c:106,13'
          Dst:             make_array
        - Src:             'netaddr.c:117,15'
          Dst:             strcmp
        - Src:             'netaddr.c:118,13'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:127,36'
          Dst:             pstrdup
        - Src:             'netaddr.c:127,17'
          Dst:             push_array
        - Src:             'netaddr.c:131,40'
          Dst:             pstrdup
        - Src:             'netaddr.c:131,11'
          Dst:             pr_table_add
        - Src:             'netaddr.c:135,55'
          Dst:             __errno_location
        - Src:             'netaddr.c:135,46'
          Dst:             strerror
        - Src:             'netaddr.c:133,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:138,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:144,7'
          Dst:             pr_trace_msg
    - functionName:    netaddr_dnscache_get
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          77
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - copy_array_str
        - pr_table_get
        - pr_trace_msg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:74,9'
          Dst:             pr_table_get
        - Src:             'netaddr.c:78,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:84,16'
          Dst:             copy_array_str
        - Src:             'netaddr.c:91,3'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:93,3'
          Dst:             __errno_location
    - functionName:    init_netaddr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2516
      functionLinenumberEnd: 2528
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - destroy_pool
        - make_sub_pool
        - pr_netaddr_clear_cache
        - pr_pool_tag
        - pr_table_alloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:2518,5'
          Dst:             pr_netaddr_clear_cache
        - Src:             'netaddr.c:2519,5'
          Dst:             destroy_pool
        - Src:             'netaddr.c:2523,18'
          Dst:             make_sub_pool
        - Src:             'netaddr.c:2524,3'
          Dst:             pr_pool_tag
        - Src:             'netaddr.c:2526,19'
          Dst:             pr_table_alloc
        - Src:             'netaddr.c:2527,20'
          Dst:             pr_table_alloc
    - functionName:    pr_netaddr_clear_cache
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2484
      functionLinenumberEnd: 2502
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - pr_table_alloc
        - pr_table_empty
        - pr_table_free
        - pr_trace_msg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:2486,5'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:2487,12'
          Dst:             pr_table_empty
        - Src:             'netaddr.c:2488,12'
          Dst:             pr_table_free
        - Src:             'netaddr.c:2491,21'
          Dst:             pr_table_alloc
        - Src:             'netaddr.c:2495,5'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:2496,12'
          Dst:             pr_table_empty
        - Src:             'netaddr.c:2497,12'
          Dst:             pr_table_free
        - Src:             'netaddr.c:2500,22'
          Dst:             pr_table_alloc
    - functionName:    pr_netaddr_clear_ipcache
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2510
      functionLinenumberEnd: 2514
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_table_remove
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:2512,12'
          Dst:             pr_table_remove
    - functionName:    pr_netaddr_clear_dnscache
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2504
      functionLinenumberEnd: 2508
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_table_remove
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:2506,12'
          Dst:             pr_table_remove
    - functionName:    pr_netaddr_enable_ipv6
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2478
      functionLinenumberEnd: 2482
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_netaddr_disable_ipv6
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2472
      functionLinenumberEnd: 2476
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_netaddr_use_ipv6
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2464
      functionLinenumberEnd: 2470
      functionDepth:   0
      returnType:      char
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         4
      ICount:          20
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    26
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_netaddr_set_sess_addrs
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2445
      functionLinenumberEnd: 2462
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_netaddr_get_family
        - pr_netaddr_get_sockaddr
        - pr_netaddr_set_family
        - pr_netaddr_set_sockaddr
        - sstrncpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:2448,5'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:2447,3'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:2450,5'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'netaddr.c:2449,3'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netaddr.c:2455,5'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:2454,3'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:2457,5'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'netaddr.c:2456,3'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netaddr.c:2460,3'
          Dst:             sstrncpy
    - functionName:    pr_netaddr_get_family
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1022
      functionLinenumberEnd: 1029
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    54
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:1024,5'
          Dst:             __errno_location
    - functionName:    pr_netaddr_set_family
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1031
      functionLinenumberEnd: 1062
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    37
      BranchProfiles:
        - Branch String:   'netaddr.c:1038,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1033,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1053,7'
          Dst:             __errno_location
    - functionName:    pr_netaddr_get_sockaddr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1106
      functionLinenumberEnd: 1126
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pr_netaddr_get_family
      functionUses:    27
      BranchProfiles:
        - Branch String:   'netaddr.c:1112,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1108,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1112,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1124,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_set_sockaddr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1128
      functionLinenumberEnd: 1152
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          78
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
      functionUses:    20
      BranchProfiles:
        - Branch String:   'netaddr.c:1136,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1131,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1150,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_get_sess_remote_name
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2436
      functionLinenumberEnd: 2443
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:2441,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_get_sess_remote_addr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2427
      functionLinenumberEnd: 2434
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:2432,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_get_sess_local_addr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2418
      functionLinenumberEnd: 2425
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:2423,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_v4tov6
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2389
      functionLinenumberEnd: 2416
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          73
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_netaddr_get_addr
        - pr_netaddr_get_family
        - pr_netaddr_get_ipstr
        - pr_netaddr_get_port
        - pr_netaddr_set_port
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:2394,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2398,7'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:2399,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2405,27'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:2405,5'
          Dst:             pstrcat
        - Src:             'netaddr.c:2404,26'
          Dst:             pr_netaddr_get_addr
        - Src:             'netaddr.c:2407,30'
          Dst:             pr_netaddr_get_port
        - Src:             'netaddr.c:2407,5'
          Dst:             pr_netaddr_set_port
    - functionName:    pr_netaddr_get_ipstr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1628
      functionLinenumberEnd: 1694
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          141
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - gai_strerror
        - getnameinfo
        - pr_log_pri
        - pr_netaddr_get_family
        - pr_netaddr_get_sockaddr
        - pr_netaddr_get_sockaddr_len
        - sstrncpy
        - strerror
        - strrchr
      functionUses:    172
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:1638,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1650,24'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'netaddr.c:1651,5'
          Dst:             pr_netaddr_get_sockaddr_len
        - Src:             'netaddr.c:1650,9'
          Dst:             getnameinfo
        - Src:             'netaddr.c:1652,12'
          Dst:             __errno_location
        - Src:             'netaddr.c:1656,59'
          Dst:             gai_strerror
        - Src:             'netaddr.c:1656,7'
          Dst:             pr_log_pri
        - Src:             'netaddr.c:1657,7'
          Dst:             __errno_location
        - Src:             'netaddr.c:1661,17'
          Dst:             strerror
        - Src:             'netaddr.c:1660,7'
          Dst:             pr_log_pri
        - Src:             'netaddr.c:1662,7'
          Dst:             __errno_location
        - Src:             'netaddr.c:1670,7'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1676,11'
          Dst:             strrchr
        - Src:             'netaddr.c:1690,3'
          Dst:             sstrncpy
    - functionName:    pr_netaddr_get_addr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1018
      functionLinenumberEnd: 1019
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_netaddr_get_addr2
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:1019,10'
          Dst:             pr_netaddr_get_addr2
    - functionName:    pr_netaddr_get_port
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1219
      functionLinenumberEnd: 1239
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pr_netaddr_get_family
      functionUses:    11
      BranchProfiles:
        - Branch String:   'netaddr.c:1225,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1221,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1225,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1237,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_set_port
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1241
      functionLinenumberEnd: 1263
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pr_netaddr_get_family
      functionUses:    9
      BranchProfiles:
        - Branch String:   'netaddr.c:1247,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1243,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1247,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1261,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_get_addr2
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 940
      functionLinenumberEnd: 1015
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          158
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - get_addr_by_device
        - get_addr_by_ip
        - get_addr_by_name
        - netaddr_ipcache_get
        - pr_trace_msg
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:946,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:950,3'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:961,10'
          Dst:             netaddr_ipcache_get
        - Src:             'netaddr.c:977,8'
          Dst:             get_addr_by_ip
        - Src:             'netaddr.c:978,12'
          Dst:             __errno_location
        - Src:             'netaddr.c:994,10'
          Dst:             get_addr_by_name
        - Src:             'netaddr.c:995,14'
          Dst:             __errno_location
        - Src:             'netaddr.c:1003,10'
          Dst:             get_addr_by_device
        - Src:             'netaddr.c:1004,14'
          Dst:             __errno_location
        - Src:             'netaddr.c:1011,3'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1013,3'
          Dst:             __errno_location
    - functionName:    netaddr_ipcache_get
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          86
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_log_debug
        - pr_netaddr_dup
        - pr_netaddr_get_ipstr
        - pr_table_get
        - pr_trace_msg
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:157,9'
          Dst:             pr_table_get
        - Src:             'netaddr.c:162,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:160,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:170,19'
          Dst:             pr_netaddr_dup
        - Src:             'netaddr.c:173,46'
          Dst:             __errno_location
        - Src:             'netaddr.c:173,37'
          Dst:             strerror
        - Src:             'netaddr.c:172,11'
          Dst:             pr_log_debug
        - Src:             'netaddr.c:183,3'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:185,3'
          Dst:             __errno_location
    - functionName:    get_addr_by_ip
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 512
      functionLinenumberEnd: 594
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          237
      EdgeCount:       50
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - inet_pton
        - netaddr_ipcache_set
        - pcalloc
        - pr_netaddr_get_ipstr
        - pr_netaddr_set_family
        - pr_netaddr_set_sockaddr
        - pr_trace_msg
        - strcmp
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:527,11'
          Dst:             inet_pton
        - Src:             'netaddr.c:529,29'
          Dst:             pcalloc
        - Src:             'netaddr.c:530,7'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:531,7'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netaddr.c:537,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:536,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:540,13'
          Dst:             netaddr_ipcache_set
        - Src:             'netaddr.c:542,28'
          Dst:             __errno_location
        - Src:             'netaddr.c:542,19'
          Dst:             strerror
        - Src:             'netaddr.c:541,11'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:545,33'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:545,13'
          Dst:             netaddr_ipcache_set
        - Src:             'netaddr.c:547,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:547,48'
          Dst:             __errno_location
        - Src:             'netaddr.c:547,39'
          Dst:             strerror
        - Src:             'netaddr.c:546,11'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:563,9'
          Dst:             inet_pton
        - Src:             'netaddr.c:565,27'
          Dst:             pcalloc
        - Src:             'netaddr.c:566,5'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:567,5'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netaddr.c:573,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:572,5'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:576,11'
          Dst:             netaddr_ipcache_set
        - Src:             'netaddr.c:578,20'
          Dst:             __errno_location
        - Src:             'netaddr.c:578,11'
          Dst:             strerror
        - Src:             'netaddr.c:577,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:582,24'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:582,11'
          Dst:             strcmp
        - Src:             'netaddr.c:583,33'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:583,13'
          Dst:             netaddr_ipcache_set
        - Src:             'netaddr.c:585,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:585,48'
          Dst:             __errno_location
        - Src:             'netaddr.c:585,39'
          Dst:             strerror
        - Src:             'netaddr.c:584,11'
          Dst:             pr_trace_msg
    - functionName:    get_addr_by_name
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 597
      functionLinenumberEnd: 835
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          527
      EdgeCount:       102
      CyclomaticComplexity: 27
      functionsReached:
        - __errno_location
        - freeaddrinfo
        - gai_strerror
        - getaddrinfo
        - make_array
        - netaddr_ipcache_set
        - pcalloc
        - pr_netaddr_get_ipstr
        - pr_netaddr_set_family
        - pr_netaddr_set_sockaddr
        - pr_signals_handle
        - pr_trace_msg
        - push_array
        - strcmp
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:608,12'
          Dst:             __errno_location
        - Src:             'netaddr.c:609,3'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:611,3'
          Dst:             __errno_location
        - Src:             'netaddr.c:612,9'
          Dst:             getaddrinfo
        - Src:             'netaddr.c:614,14'
          Dst:             __errno_location
        - Src:             'netaddr.c:621,11'
          Dst:             gai_strerror
        - Src:             'netaddr.c:619,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:629,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:631,9'
          Dst:             __errno_location
        - Src:             'netaddr.c:632,15'
          Dst:             getaddrinfo
        - Src:             'netaddr.c:633,18'
          Dst:             __errno_location
        - Src:             'netaddr.c:639,15'
          Dst:             gai_strerror
        - Src:             'netaddr.c:637,13'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:652,23'
          Dst:             strerror
        - Src:             'netaddr.c:650,13'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:659,18'
          Dst:             gai_strerror
        - Src:             'netaddr.c:660,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:674,15'
          Dst:             strcmp
        - Src:             'netaddr.c:694,17'
          Dst:             strerror
        - Src:             'netaddr.c:692,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:698,7'
          Dst:             __errno_location
        - Src:             'netaddr.c:704,27'
          Dst:             pcalloc
        - Src:             'netaddr.c:707,5'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:708,5'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netaddr.c:712,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:710,5'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:715,11'
          Dst:             netaddr_ipcache_set
        - Src:             'netaddr.c:717,20'
          Dst:             __errno_location
        - Src:             'netaddr.c:717,11'
          Dst:             strerror
        - Src:             'netaddr.c:716,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:720,31'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:720,11'
          Dst:             netaddr_ipcache_set
        - Src:             'netaddr.c:722,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:722,46'
          Dst:             __errno_location
        - Src:             'netaddr.c:722,37'
          Dst:             strerror
        - Src:             'netaddr.c:721,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:731,18'
          Dst:             make_array
        - Src:             'netaddr.c:738,9'
          Dst:             pr_signals_handle
        - Src:             'netaddr.c:739,15'
          Dst:             push_array
        - Src:             'netaddr.c:741,16'
          Dst:             pcalloc
        - Src:             'netaddr.c:742,9'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:743,9'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netaddr.c:747,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:745,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:753,5'
          Dst:             freeaddrinfo
        - Src:             'netaddr.c:776,5'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:778,11'
          Dst:             getaddrinfo
        - Src:             'netaddr.c:779,14'
          Dst:             __errno_location
        - Src:             'netaddr.c:784,17'
          Dst:             gai_strerror
        - Src:             'netaddr.c:783,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:789,19'
          Dst:             strerror
        - Src:             'netaddr.c:787,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:802,20'
          Dst:             make_array
        - Src:             'netaddr.c:814,11'
          Dst:             pr_signals_handle
        - Src:             'netaddr.c:815,17'
          Dst:             push_array
        - Src:             'netaddr.c:817,18'
          Dst:             pcalloc
        - Src:             'netaddr.c:818,11'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:819,11'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netaddr.c:823,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:821,11'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:828,9'
          Dst:             freeaddrinfo
    - functionName:    get_addr_by_device
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 838
      functionLinenumberEnd: 937
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          242
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - freeifaddrs
        - getifaddrs
        - make_array
        - pcalloc
        - pr_netaddr_get_ipstr
        - pr_netaddr_set_family
        - pr_netaddr_set_sockaddr
        - pr_signals_handle
        - pr_trace_msg
        - push_array
        - strcmp
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:848,9'
          Dst:             getifaddrs
        - Src:             'netaddr.c:850,14'
          Dst:             __errno_location
        - Src:             'netaddr.c:853,60'
          Dst:             strerror
        - Src:             'netaddr.c:852,5'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:860,7'
          Dst:             pr_signals_handle
        - Src:             'netaddr.c:878,11'
          Dst:             strcmp
        - Src:             'netaddr.c:880,33'
          Dst:             pcalloc
        - Src:             'netaddr.c:882,11'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:883,11'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netaddr.c:888,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:885,11'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:907,20'
          Dst:             make_array
        - Src:             'netaddr.c:908,17'
          Dst:             push_array
        - Src:             'netaddr.c:910,18'
          Dst:             pcalloc
        - Src:             'netaddr.c:911,11'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:912,11'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netaddr.c:917,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:914,11'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:923,7'
          Dst:             freeifaddrs
        - Src:             'netaddr.c:931,3'
          Dst:             __errno_location
    - functionName:    getifaddrs
      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:    freeifaddrs
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getaddrinfo
      functionSourceFile: ''
      linkageType:     externalLinkage
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gai_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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    netaddr_ipcache_set
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          108
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_netaddr_dup
        - pr_netaddr_get_ipstr
        - pr_table_add
        - pr_table_exists
        - pr_table_set
        - pr_trace_msg
        - pstrdup
        - strerror
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:195,9'
          Dst:             pr_netaddr_dup
        - Src:             'netaddr.c:200,13'
          Dst:             pr_table_exists
        - Src:             'netaddr.c:202,39'
          Dst:             pstrdup
        - Src:             'netaddr.c:202,11'
          Dst:             pr_table_add
        - Src:             'netaddr.c:206,27'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:207,20'
          Dst:             __errno_location
        - Src:             'netaddr.c:207,11'
          Dst:             strerror
        - Src:             'netaddr.c:204,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:212,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:210,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:216,39'
          Dst:             pstrdup
        - Src:             'netaddr.c:216,11'
          Dst:             pr_table_set
        - Src:             'netaddr.c:220,27'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:220,68'
          Dst:             __errno_location
        - Src:             'netaddr.c:220,59'
          Dst:             strerror
        - Src:             'netaddr.c:218,9'
          Dst:             pr_trace_msg
    - functionName:    freeaddrinfo
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_netaddr_dup
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 481
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          106
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_netaddr_alloc
        - pr_netaddr_get_family
        - pr_netaddr_get_sockaddr
        - pr_netaddr_set_family
        - pr_netaddr_set_sockaddr
        - sstrncpy
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:486,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:490,12'
          Dst:             pr_netaddr_alloc
        - Src:             'netaddr.c:492,37'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:492,7'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:496,35'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'netaddr.c:496,3'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netaddr.c:499,5'
          Dst:             sstrncpy
        - Src:             'netaddr.c:504,5'
          Dst:             sstrncpy
    - functionName:    pr_netaddr_alloc
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 464
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pcalloc
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:466,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:470,10'
          Dst:             pcalloc
    - functionName:    inet_pton
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_netaddr_get_sockaddr_len
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1064
      functionLinenumberEnd: 1084
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          56
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pr_netaddr_get_family
      functionUses:    9
      BranchProfiles:
        - Branch String:   'netaddr.c:1070,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1066,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1070,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1082,3'
          Dst:             __errno_location
    - functionName:    getnameinfo
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_v4inaddr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 410
      functionLinenumberEnd: 422
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_netaddr_get_inaddr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:422,21'
          Dst:             pr_netaddr_get_inaddr
    - functionName:    pr_netaddr_get_inaddr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1197
      functionLinenumberEnd: 1217
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          62
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pr_netaddr_get_family
      functionUses:    10
      BranchProfiles:
        - Branch String:   'netaddr.c:1203,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1199,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1203,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1215,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_is_v6
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2294
      functionLinenumberEnd: 2322
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          57
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - inet_pton
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:2296,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2312,11'
          Dst:             inet_pton
    - functionName:    pr_netaddr_is_v4
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2270
      functionLinenumberEnd: 2292
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          48
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - inet_pton
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:2275,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2286,9'
          Dst:             inet_pton
    - functionName:    is_10_xxx_addr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2166
      functionLinenumberEnd: 2170
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - addr_ncmp
        - htonl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:2169,20'
          Dst:             htonl
        - Src:             'netaddr.c:2170,10'
          Dst:             addr_ncmp
    - functionName:    htonl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    addr_ncmp
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1391
      functionLinenumberEnd: 1438
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          175
      EdgeCount:       38
      CyclomaticComplexity: 12
      functionsReached:
        - memcmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:1415,9'
          Dst:             memcmp
    - functionName:    memcmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_172_16_xx_addr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2174
      functionLinenumberEnd: 2178
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - addr_ncmp
        - htonl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:2177,20'
          Dst:             htonl
        - Src:             'netaddr.c:2178,10'
          Dst:             addr_ncmp
    - functionName:    is_192_168_xx_addr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2182
      functionLinenumberEnd: 2186
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - addr_ncmp
        - htonl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:2185,20'
          Dst:             htonl
        - Src:             'netaddr.c:2186,10'
          Dst:             addr_ncmp
    - functionName:    pr_netaddr_get_addrno
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2237
      functionLinenumberEnd: 2268
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - pr_netaddr_get_family
      functionUses:    1
      BranchProfiles:
        - Branch String:   'netaddr.c:2243,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:2239,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2243,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:2259,7'
          Dst:             __errno_location
        - Src:             'netaddr.c:2266,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_is_rfc1918
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2190
      functionLinenumberEnd: 2232
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          106
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - destroy_pool
        - is_10_xxx_addr
        - is_172_16_xx_addr
        - is_192_168_xx_addr
        - make_sub_pool
        - pr_netaddr_get_addrno
        - pr_netaddr_get_family
        - pr_netaddr_is_rfc1918
        - pr_netaddr_is_v4mappedv6
        - pr_netaddr_v6tov4
      functionUses:    7
      BranchProfiles:
        - Branch String:   'netaddr.c:2196,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:2192,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2196,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:2200,16'
          Dst:             pr_netaddr_get_addrno
        - Src:             'netaddr.c:2201,11'
          Dst:             is_192_168_xx_addr
        - Src:             'netaddr.c:2202,11'
          Dst:             is_172_16_xx_addr
        - Src:             'netaddr.c:2203,11'
          Dst:             is_10_xxx_addr
        - Src:             'netaddr.c:2211,11'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:2216,20'
          Dst:             make_sub_pool
        - Src:             'netaddr.c:2217,16'
          Dst:             pr_netaddr_v6tov4
        - Src:             'netaddr.c:2219,15'
          Dst:             pr_netaddr_is_rfc1918
        - Src:             'netaddr.c:2220,9'
          Dst:             destroy_pool
        - Src:             'netaddr.c:2230,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_is_v4mappedv6
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2324
      functionLinenumberEnd: 2365
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          118
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - htonl
        - pr_netaddr_get_family
        - pr_netaddr_get_inaddr
      functionUses:    16
      BranchProfiles:
        - Branch String:   'netaddr.c:2330,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:2326,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2330,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:2334,7'
          Dst:             __errno_location
        - Src:             'netaddr.c:2342,9'
          Dst:             __errno_location
        - Src:             'netaddr.c:2350,13'
          Dst:             pr_netaddr_get_inaddr
        - Src:             'netaddr.c:2350,13'
          Dst:             htonl
        - Src:             'netaddr.c:2355,9'
          Dst:             __errno_location
        - Src:             'netaddr.c:2363,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_v6tov4
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2367
      functionLinenumberEnd: 2387
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - get_v4inaddr
        - pr_netaddr_alloc
        - pr_netaddr_get_port
        - pr_netaddr_is_v4mappedv6
        - pr_netaddr_set_family
        - pr_netaddr_set_port
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:2372,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2376,7'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:2377,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2381,9'
          Dst:             pr_netaddr_alloc
        - Src:             'netaddr.c:2382,3'
          Dst:             pr_netaddr_set_family
        - Src:             'netaddr.c:2383,28'
          Dst:             pr_netaddr_get_port
        - Src:             'netaddr.c:2383,3'
          Dst:             pr_netaddr_set_port
        - Src:             'netaddr.c:2384,37'
          Dst:             get_v4inaddr
    - functionName:    pr_netaddr_is_loopback
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2109
      functionLinenumberEnd: 2156
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          133
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - destroy_pool
        - htonl
        - make_sub_pool
        - ntohl
        - pr_netaddr_get_family
        - pr_netaddr_get_inaddr
        - pr_netaddr_is_loopback
        - pr_netaddr_is_v4mappedv6
        - pr_netaddr_v6tov4
      functionUses:    2
      BranchProfiles:
        - Branch String:   'netaddr.c:2115,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:2111,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2115,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:2117,14'
          Dst:             pr_netaddr_get_inaddr
        - Src:             'netaddr.c:2117,14'
          Dst:             ntohl
        - Src:             'netaddr.c:2122,11'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:2127,20'
          Dst:             make_sub_pool
        - Src:             'netaddr.c:2128,16'
          Dst:             pr_netaddr_v6tov4
        - Src:             'netaddr.c:2130,15'
          Dst:             pr_netaddr_is_loopback
        - Src:             'netaddr.c:2131,9'
          Dst:             destroy_pool
        - Src:             'netaddr.c:2149,14'
          Dst:             pr_netaddr_get_inaddr
        - Src:             'netaddr.c:2149,14'
          Dst:             htonl
    - functionName:    ntohl
      functionSourceFile: ''
      linkageType:     externalLinkage
      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:    pr_netaddr_set_localaddr_str
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2097
      functionLinenumberEnd: 2107
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - sstrncpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:2099,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2104,3'
          Dst:             sstrncpy
    - functionName:    pr_netaddr_get_localaddr_str
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2046
      functionLinenumberEnd: 2095
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          122
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - __h_errno_location
        - gethostbyname2
        - gethostname
        - hstrerror
        - pr_netaddr_validate_dns_str
        - pr_trace_msg
        - pstrdup
        - strerror
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:2051,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2056,40'
          Dst:             pstrdup
        - Src:             'netaddr.c:2056,12'
          Dst:             pr_netaddr_validate_dns_str
        - Src:             'netaddr.c:2060,9'
          Dst:             gethostname
        - Src:             'netaddr.c:2061,12'
          Dst:             __errno_location
        - Src:             'netaddr.c:2073,12'
          Dst:             gethostbyname2
        - Src:             'netaddr.c:2075,9'
          Dst:             __h_errno_location
        - Src:             'netaddr.c:2077,14'
          Dst:             gethostbyname2
        - Src:             'netaddr.c:2084,42'
          Dst:             pstrdup
        - Src:             'netaddr.c:2084,14'
          Dst:             pr_netaddr_validate_dns_str
        - Src:             'netaddr.c:2088,61'
          Dst:             __h_errno_location
        - Src:             'netaddr.c:2088,51'
          Dst:             hstrerror
        - Src:             'netaddr.c:2087,5'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:2089,40'
          Dst:             pstrdup
        - Src:             'netaddr.c:2089,12'
          Dst:             pr_netaddr_validate_dns_str
        - Src:             'netaddr.c:2092,62'
          Dst:             strerror
        - Src:             'netaddr.c:2092,3'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:2093,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_validate_dns_str
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          129
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - __ctype_b_loc
        - __errno_location
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:432,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:440,10'
          Dst:             __ctype_b_loc
    - functionName:    gethostbyname2
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __h_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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hstrerror
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_netaddr_get_dnsstr_list
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2021
      functionLinenumberEnd: 2043
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          69
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - make_array
        - netaddr_dnscache_get
        - pr_netaddr_get_ipstr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:2026,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:2034,12'
          Dst:             make_array
        - Src:             'netaddr.c:2037,33'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:2037,9'
          Dst:             netaddr_dnscache_get
        - Src:             'netaddr.c:2039,11'
          Dst:             make_array
    - functionName:    netaddr_get_dnsstr_gethostbyname
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1837
      functionLinenumberEnd: 1921
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         58
      ICount:          329
      EdgeCount:       73
      CyclomaticComplexity: 17
      functionsReached:
        - __h_errno_location
        - get_v4inaddr
        - gethostbyname2
        - hstrerror
        - memcmp
        - netaddr_dnscache_set
        - netaddr_ipcache_set
        - pr_log_debug
        - pr_netaddr_get_family
        - pr_netaddr_get_inaddr
        - pr_netaddr_get_ipstr
        - pr_netaddr_is_v4mappedv6
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:
        - Branch String:   'netaddr.c:1867,5'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1842,12'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1847,12'
          Dst:             pr_netaddr_get_inaddr
        - Src:             'netaddr.c:1849,7'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:1851,14'
          Dst:             get_v4inaddr
        - Src:             'netaddr.c:1854,10'
          Dst:             gethostbyname2
        - Src:             'netaddr.c:1860,28'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1860,7'
          Dst:             netaddr_dnscache_set
        - Src:             'netaddr.c:1863,5'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1871,17'
          Dst:             memcmp
        - Src:             'netaddr.c:1876,19'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1878,19'
          Dst:             netaddr_ipcache_set
        - Src:             'netaddr.c:1879,40'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1879,19'
          Dst:             netaddr_dnscache_set
        - Src:             'netaddr.c:1894,17'
          Dst:             memcmp
        - Src:             'netaddr.c:1899,19'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1901,19'
          Dst:             netaddr_ipcache_set
        - Src:             'netaddr.c:1902,40'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1902,19'
          Dst:             netaddr_dnscache_set
        - Src:             'netaddr.c:1917,60'
          Dst:             __h_errno_location
        - Src:             'netaddr.c:1917,50'
          Dst:             hstrerror
        - Src:             'netaddr.c:1916,5'
          Dst:             pr_log_debug
    - functionName:    pr_netaddr_get_dnsstr
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1928
      functionLinenumberEnd: 2019
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          199
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - getnameinfo
        - netaddr_get_dnsstr_gethostbyname
        - netaddr_ipcache_get
        - netaddr_ipcache_set
        - pr_log_debug
        - pr_netaddr_get_ipstr
        - pr_netaddr_get_sockaddr
        - pr_netaddr_get_sockaddr_len
        - pr_netaddr_validate_dns_str
        - pr_trace_msg
        - sstrncpy
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:1933,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1937,37'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1937,11'
          Dst:             netaddr_ipcache_get
        - Src:             'netaddr.c:1942,5'
          Dst:             sstrncpy
        - Src:             'netaddr.c:1960,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1958,5'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1963,26'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'netaddr.c:1964,7'
          Dst:             pr_netaddr_get_sockaddr_len
        - Src:             'netaddr.c:1963,11'
          Dst:             getnameinfo
        - Src:             'netaddr.c:1974,13'
          Dst:             netaddr_get_dnsstr_gethostbyname
        - Src:             'netaddr.c:1982,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1980,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1988,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1986,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1993,5'
          Dst:             pr_log_debug
        - Src:             'netaddr.c:1998,12'
          Dst:             pr_netaddr_validate_dns_str
        - Src:             'netaddr.c:2001,21'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:2011,3'
          Dst:             sstrncpy
        - Src:             'netaddr.c:2015,3'
          Dst:             netaddr_ipcache_set
        - Src:             'netaddr.c:2016,23'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:2016,3'
          Dst:             netaddr_ipcache_set
    - functionName:    pr_netaddr_fnmatch
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1558
      functionLinenumberEnd: 1626
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          157
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - destroy_pool
        - make_sub_pool
        - pr_fnmatch
        - pr_netaddr_get_dnsstr
        - pr_netaddr_get_ipstr
        - pr_netaddr_is_v4mappedv6
        - pr_netaddr_v6tov4
        - pr_trace_msg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:1571,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1578,14'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'netaddr.c:1579,9'
          Dst:             pr_fnmatch
        - Src:             'netaddr.c:1580,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1589,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1590,9'
          Dst:             pr_fnmatch
        - Src:             'netaddr.c:1591,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1599,9'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:1603,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1606,18'
          Dst:             make_sub_pool
        - Src:             'netaddr.c:1607,11'
          Dst:             pr_netaddr_v6tov4
        - Src:             'netaddr.c:1609,15'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1611,11'
          Dst:             pr_fnmatch
        - Src:             'netaddr.c:1612,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1615,9'
          Dst:             destroy_pool
        - Src:             'netaddr.c:1619,7'
          Dst:             destroy_pool
        - Src:             'netaddr.c:1624,5'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1623,3'
          Dst:             pr_trace_msg
    - functionName:    pr_netaddr_ncmp
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1441
      functionLinenumberEnd: 1556
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          259
      EdgeCount:       61
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - addr_ncmp
        - destroy_pool
        - make_sub_pool
        - pr_netaddr_get_family
        - pr_netaddr_get_inaddr
        - pr_netaddr_get_ipstr
        - pr_netaddr_is_v4mappedv6
        - pr_netaddr_v6tov4
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:
        - Branch String:   'netaddr.c:1511,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1462,7'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1462,37'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1469,9'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:1470,9'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:1471,7'
          Dst:             __errno_location
        - Src:             'netaddr.c:1475,9'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:1476,18'
          Dst:             make_sub_pool
        - Src:             'netaddr.c:1481,11'
          Dst:             pr_netaddr_v6tov4
        - Src:             'netaddr.c:1485,42'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1486,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1484,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1488,16'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:1489,18'
          Dst:             make_sub_pool
        - Src:             'netaddr.c:1495,11'
          Dst:             pr_netaddr_v6tov4
        - Src:             'netaddr.c:1498,42'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1499,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1497,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1511,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1517,9'
          Dst:             __errno_location
        - Src:             'netaddr.c:1531,11'
          Dst:             __errno_location
        - Src:             'netaddr.c:1541,7'
          Dst:             __errno_location
        - Src:             'netaddr.c:1546,33'
          Dst:             pr_netaddr_get_inaddr
        - Src:             'netaddr.c:1547,33'
          Dst:             pr_netaddr_get_inaddr
        - Src:             'netaddr.c:1549,9'
          Dst:             addr_ncmp
        - Src:             'netaddr.c:1552,5'
          Dst:             destroy_pool
    - functionName:    pr_netaddr_cmp
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1269
      functionLinenumberEnd: 1388
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         54
      ICount:          305
      EdgeCount:       70
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
        - destroy_pool
        - make_sub_pool
        - memcmp
        - pr_netaddr_get_family
        - pr_netaddr_get_ipstr
        - pr_netaddr_is_v4mappedv6
        - pr_netaddr_v6tov4
        - pr_trace_msg
      functionUses:    9
      BranchProfiles:
        - Branch String:   'netaddr.c:1344,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1289,7'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1289,37'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1296,9'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:1297,9'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:1298,7'
          Dst:             __errno_location
        - Src:             'netaddr.c:1302,9'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:1303,18'
          Dst:             make_sub_pool
        - Src:             'netaddr.c:1306,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1305,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1311,11'
          Dst:             pr_netaddr_v6tov4
        - Src:             'netaddr.c:1315,42'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1316,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1314,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1318,16'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netaddr.c:1319,18'
          Dst:             make_sub_pool
        - Src:             'netaddr.c:1322,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1321,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1328,11'
          Dst:             pr_netaddr_v6tov4
        - Src:             'netaddr.c:1331,42'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1332,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1330,7'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1344,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1346,13'
          Dst:             memcmp
        - Src:             'netaddr.c:1351,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1351,36'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1350,9'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1355,9'
          Dst:             destroy_pool
        - Src:             'netaddr.c:1364,15'
          Dst:             memcmp
        - Src:             'netaddr.c:1369,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1369,38'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netaddr.c:1368,11'
          Dst:             pr_trace_msg
        - Src:             'netaddr.c:1373,11'
          Dst:             destroy_pool
        - Src:             'netaddr.c:1383,5'
          Dst:             destroy_pool
        - Src:             'netaddr.c:1386,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_set_port2
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1265
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htons
        - pr_netaddr_set_port
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'netaddr.c:1266,34'
          Dst:             htons
        - Src:             'netaddr.c:1266,10'
          Dst:             pr_netaddr_set_port
    - functionName:    pr_netaddr_set_sockaddr_any
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1154
      functionLinenumberEnd: 1195
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          114
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - htonl
        - pr_netaddr_get_family
        - sstrncpy
      functionUses:    8
      BranchProfiles:
        - Branch String:   'netaddr.c:1160,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1156,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1160,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1163,28'
          Dst:             htonl
        - Src:             'netaddr.c:1171,9'
          Dst:             sstrncpy
        - Src:             'netaddr.c:1186,11'
          Dst:             sstrncpy
        - Src:             'netaddr.c:1193,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_get_inaddr_len
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1086
      functionLinenumberEnd: 1104
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - pr_netaddr_get_family
      functionUses:    1
      BranchProfiles:
        - Branch String:   'netaddr.c:1092,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netaddr.c:1088,5'
          Dst:             __errno_location
        - Src:             'netaddr.c:1092,11'
          Dst:             pr_netaddr_get_family
        - Src:             'netaddr.c:1102,3'
          Dst:             __errno_location
    - functionName:    pr_netaddr_clear
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 473
      functionLinenumberEnd: 479
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          19
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_netaddr_set_reverse_dns
      functionSourceFile: '/src/proftpd/src/netaddr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 461
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_class
      functionSourceFile: '/src/proftpd/src/class.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_class_close
      functionSourceFile: '/src/proftpd/src/class.c'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 307
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         17
      ICount:          97
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - destroy_pool
        - push_array
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'class.c:272,5'
          Dst:             destroy_pool
        - Src:             'class.c:278,5'
          Dst:             __errno_location
        - Src:             'class.c:283,3'
          Dst:             push_array
    - functionName:    pr_class_open
      functionSourceFile: '/src/proftpd/src/class.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          75
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
        - pr_table_nalloc
        - pstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'class.c:238,5'
          Dst:             __errno_location
        - Src:             'class.c:245,14'
          Dst:             make_sub_pool
        - Src:             'class.c:246,3'
          Dst:             pr_pool_tag
        - Src:             'class.c:248,9'
          Dst:             pcalloc
        - Src:             'class.c:250,19'
          Dst:             pstrdup
        - Src:             'class.c:252,20'
          Dst:             pr_table_nalloc
    - functionName:    pr_class_add_note
      functionSourceFile: '/src/proftpd/src/class.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_table_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'class.c:219,5'
          Dst:             __errno_location
        - Src:             'class.c:224,5'
          Dst:             __errno_location
        - Src:             'class.c:228,9'
          Dst:             pr_table_add
    - functionName:    pr_class_set_satisfy
      functionSourceFile: '/src/proftpd/src/class.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'class.c:199,5'
          Dst:             __errno_location
        - Src:             'class.c:205,5'
          Dst:             __errno_location
    - functionName:    pr_class_add_acl
      functionSourceFile: '/src/proftpd/src/class.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - make_array
        - pr_netacl_dup
        - push_array
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'class.c:176,5'
          Dst:             __errno_location
        - Src:             'class.c:181,5'
          Dst:             __errno_location
        - Src:             'class.c:187,26'
          Dst:             make_array
        - Src:             'class.c:192,5'
          Dst:             pr_netacl_dup
        - Src:             'class.c:191,22'
          Dst:             push_array
    - functionName:    pr_class_find
      functionSourceFile: '/src/proftpd/src/class.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          63
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - pr_signals_handle
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'class.c:158,5'
          Dst:             __errno_location
        - Src:             'class.c:163,5'
          Dst:             pr_signals_handle
        - Src:             'class.c:164,9'
          Dst:             strcmp
        - Src:             'class.c:169,3'
          Dst:             __errno_location
    - functionName:    pr_class_match_addr
      functionSourceFile: '/src/proftpd/src/class.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          85
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - destroy_pool
        - make_sub_pool
        - pr_class_satisfied
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'class.c:129,5'
          Dst:             __errno_location
        - Src:             'class.c:133,14'
          Dst:             make_sub_pool
        - Src:             'class.c:138,11'
          Dst:             pr_class_satisfied
        - Src:             'class.c:145,3'
          Dst:             destroy_pool
        - Src:             'class.c:148,5'
          Dst:             __errno_location
    - functionName:    pr_class_satisfied
      functionSourceFile: '/src/proftpd/src/class.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          210
      EdgeCount:       43
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - pr_netacl_get_str
        - pr_netacl_match
        - pr_netaddr_get_dnsstr
        - pr_netaddr_get_ipstr
        - pr_signals_handle
        - pr_trace_msg
      functionUses:    4
      BranchProfiles:
        - Branch String:   'class.c:83,5'
          Branch Sides:    []
      Callsites:
        - Src:             'class.c:58,5'
          Dst:             __errno_location
        - Src:             'class.c:73,5'
          Dst:             pr_signals_handle
        - Src:             'class.c:87,42'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'class.c:88,11'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'class.c:89,11'
          Dst:             pr_netacl_get_str
        - Src:             'class.c:85,9'
          Dst:             pr_trace_msg
        - Src:             'class.c:91,15'
          Dst:             pr_netacl_match
        - Src:             'class.c:100,43'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'class.c:101,11'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'class.c:102,11'
          Dst:             pr_netacl_get_str
        - Src:             'class.c:98,9'
          Dst:             pr_trace_msg
        - Src:             'class.c:104,15'
          Dst:             pr_netacl_match
    - functionName:    pr_class_get
      functionSourceFile: '/src/proftpd/src/class.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'class.c:43,5'
          Dst:             __errno_location
    - functionName:    init_privs
      functionSourceFile: '/src/proftpd/src/privs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 432
      functionLinenumberEnd: 438
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          24
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - getuid
        - set_nonroot_daemon
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'privs.c:434,7'
          Dst:             getuid
        - Src:             'privs.c:435,5'
          Dst:             set_nonroot_daemon
    - 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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_nonroot_daemon
      functionSourceFile: '/src/proftpd/src/privs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'privs.c:422,5'
          Dst:             __errno_location
    - functionName:    pr_privs_revoke
      functionSourceFile: '/src/proftpd/src/privs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 414
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          88
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_log_debug
        - pr_signals_block
        - pr_signals_unblock
        - pr_trace_msg
        - privs_log_error
        - seteuid
        - setgid
        - setuid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'privs.c:371,5'
          Dst:             pr_trace_msg
        - Src:             'privs.c:377,3'
          Dst:             pr_log_debug
        - Src:             'privs.c:380,3'
          Dst:             pr_trace_msg
        - Src:             'privs.c:383,3'
          Dst:             pr_signals_block
        - Src:             'privs.c:386,7'
          Dst:             seteuid
        - Src:             'privs.c:387,58'
          Dst:             __errno_location
        - Src:             'privs.c:387,5'
          Dst:             privs_log_error
        - Src:             'privs.c:390,7'
          Dst:             setgid
        - Src:             'privs.c:391,57'
          Dst:             __errno_location
        - Src:             'privs.c:391,5'
          Dst:             privs_log_error
        - Src:             'privs.c:394,7'
          Dst:             setuid
        - Src:             'privs.c:395,57'
          Dst:             __errno_location
        - Src:             'privs.c:395,5'
          Dst:             privs_log_error
        - Src:             'privs.c:412,3'
          Dst:             pr_signals_unblock
    - functionName:    seteuid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    privs_log_error
      functionSourceFile: '/src/proftpd/src/privs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_log_debug
        - pr_log_pri
        - strerror
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'privs.c:69,41'
          Dst:             strerror
        - Src:             'privs.c:69,5'
          Dst:             pr_log_debug
        - Src:             'privs.c:72,43'
          Dst:             strerror
        - Src:             'privs.c:72,5'
          Dst:             pr_log_pri
    - functionName:    setgid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    setuid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_privs_relinquish
      functionSourceFile: '/src/proftpd/src/privs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          172
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - geteuid
        - pr_log_debug
        - pr_signals_block
        - pr_signals_unblock
        - pr_trace_msg
        - privs_log_error
        - setegid
        - seteuid
      functionUses:    69
      BranchProfiles:  []
      Callsites:
        - Src:             'privs.c:264,5'
          Dst:             pr_trace_msg
        - Src:             'privs.c:270,3'
          Dst:             pr_log_debug
        - Src:             'privs.c:275,5'
          Dst:             pr_trace_msg
        - Src:             'privs.c:284,5'
          Dst:             pr_trace_msg
        - Src:             'privs.c:290,3'
          Dst:             pr_trace_msg
        - Src:             'privs.c:293,3'
          Dst:             pr_signals_block
        - Src:             'privs.c:297,9'
          Dst:             geteuid
        - Src:             'privs.c:298,11'
          Dst:             seteuid
        - Src:             'privs.c:300,63'
          Dst:             __errno_location
        - Src:             'privs.c:299,9'
          Dst:             privs_log_error
        - Src:             'privs.c:313,9'
          Dst:             setegid
        - Src:             'privs.c:315,61'
          Dst:             __errno_location
        - Src:             'privs.c:314,7'
          Dst:             privs_log_error
        - Src:             'privs.c:318,9'
          Dst:             seteuid
        - Src:             'privs.c:320,61'
          Dst:             __errno_location
        - Src:             'privs.c:319,7'
          Dst:             privs_log_error
        - Src:             'privs.c:362,5'
          Dst:             pr_log_debug
        - Src:             'privs.c:365,3'
          Dst:             pr_signals_unblock
    - functionName:    setegid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_privs_user
      functionSourceFile: '/src/proftpd/src/privs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          114
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pr_log_debug
        - pr_signals_block
        - pr_signals_unblock
        - pr_trace_msg
        - pr_uid2str
        - privs_log_error
        - setegid
        - seteuid
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'privs.c:200,5'
          Dst:             pr_trace_msg
        - Src:             'privs.c:206,5'
          Dst:             pr_uid2str
        - Src:             'privs.c:205,3'
          Dst:             pr_log_debug
        - Src:             'privs.c:209,5'
          Dst:             pr_trace_msg
        - Src:             'privs.c:214,3'
          Dst:             pr_trace_msg
        - Src:             'privs.c:218,3'
          Dst:             pr_signals_block
        - Src:             'privs.c:222,9'
          Dst:             seteuid
        - Src:             'privs.c:223,69'
          Dst:             __errno_location
        - Src:             'privs.c:223,7'
          Dst:             privs_log_error
        - Src:             'privs.c:226,9'
          Dst:             setegid
        - Src:             'privs.c:228,9'
          Dst:             __errno_location
        - Src:             'privs.c:227,7'
          Dst:             privs_log_error
        - Src:             'privs.c:231,9'
          Dst:             seteuid
        - Src:             'privs.c:233,9'
          Dst:             __errno_location
        - Src:             'privs.c:232,7'
          Dst:             privs_log_error
        - Src:             'privs.c:255,5'
          Dst:             pr_log_debug
        - Src:             'privs.c:258,3'
          Dst:             pr_signals_unblock
    - functionName:    pr_privs_root
      functionSourceFile: '/src/proftpd/src/privs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          95
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_log_debug
        - pr_signals_block
        - pr_signals_unblock
        - pr_trace_msg
        - privs_log_error
        - setegid
        - seteuid
      functionUses:    65
      BranchProfiles:  []
      Callsites:
        - Src:             'privs.c:151,5'
          Dst:             pr_trace_msg
        - Src:             'privs.c:156,3'
          Dst:             pr_log_debug
        - Src:             'privs.c:159,5'
          Dst:             pr_trace_msg
        - Src:             'privs.c:164,3'
          Dst:             pr_trace_msg
        - Src:             'privs.c:168,3'
          Dst:             pr_signals_block
        - Src:             'privs.c:173,9'
          Dst:             seteuid
        - Src:             'privs.c:174,58'
          Dst:             __errno_location
        - Src:             'privs.c:174,7'
          Dst:             privs_log_error
        - Src:             'privs.c:177,9'
          Dst:             setegid
        - Src:             'privs.c:178,58'
          Dst:             __errno_location
        - Src:             'privs.c:178,7'
          Dst:             privs_log_error
        - Src:             'privs.c:191,5'
          Dst:             pr_log_debug
        - Src:             'privs.c:194,3'
          Dst:             pr_signals_unblock
    - functionName:    pr_privs_setup
      functionSourceFile: '/src/proftpd/src/privs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          162
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - getgid
        - getuid
        - pr_log_debug
        - pr_signals_block
        - pr_signals_unblock
        - pr_trace_msg
        - privs_log_error
        - seteuid
        - setgid
        - setuid
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'privs.c:78,34'
          Dst:             getuid
        - Src:             'privs.c:79,19'
          Dst:             getgid
        - Src:             'privs.c:81,5'
          Dst:             pr_trace_msg
        - Src:             'privs.c:86,3'
          Dst:             pr_log_debug
        - Src:             'privs.c:90,3'
          Dst:             pr_trace_msg
        - Src:             'privs.c:93,3'
          Dst:             pr_signals_block
        - Src:             'privs.c:95,7'
          Dst:             getuid
        - Src:             'privs.c:96,34'
          Dst:             getuid
        - Src:             'privs.c:97,19'
          Dst:             getgid
        - Src:             'privs.c:99,9'
          Dst:             setgid
        - Src:             'privs.c:100,58'
          Dst:             __errno_location
        - Src:             'privs.c:100,7'
          Dst:             privs_log_error
        - Src:             'privs.c:104,9'
          Dst:             setuid
        - Src:             'privs.c:105,58'
          Dst:             __errno_location
        - Src:             'privs.c:105,7'
          Dst:             privs_log_error
        - Src:             'privs.c:108,9'
          Dst:             seteuid
        - Src:             'privs.c:109,59'
          Dst:             __errno_location
        - Src:             'privs.c:109,7'
          Dst:             privs_log_error
        - Src:             'privs.c:118,20'
          Dst:             getuid
        - Src:             'privs.c:123,9'
          Dst:             setuid
        - Src:             'privs.c:124,58'
          Dst:             __errno_location
        - Src:             'privs.c:124,7'
          Dst:             privs_log_error
        - Src:             'privs.c:127,9'
          Dst:             setgid
        - Src:             'privs.c:128,58'
          Dst:             __errno_location
        - Src:             'privs.c:128,7'
          Dst:             privs_log_error
        - Src:             'privs.c:131,9'
          Dst:             seteuid
        - Src:             'privs.c:132,59'
          Dst:             __errno_location
        - Src:             'privs.c:132,7'
          Dst:             privs_log_error
        - Src:             'privs.c:145,3'
          Dst:             pr_signals_unblock
    - functionName:    getgid
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_proctitle_get
      functionSourceFile: '/src/proftpd/src/proctitle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sstrncpy
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'proctitle.c:304,12'
          Dst:             strlen
        - Src:             'proctitle.c:307,3'
          Dst:             sstrncpy
        - Src:             'proctitle.c:308,10'
          Dst:             strlen
    - functionName:    pr_proctitle_set_static_str
      functionSourceFile: '/src/proftpd/src/proctitle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 294
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_proctitle_set_str
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'proctitle.c:287,5'
          Dst:             pr_proctitle_set_str
    - functionName:    pr_proctitle_set_str
      functionSourceFile: '/src/proftpd/src/proctitle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          91
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - snprintf
        - sstrncpy
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'proctitle.c:153,3'
          Dst:             sstrncpy
        - Src:             'proctitle.c:154,16'
          Dst:             strlen
        - Src:             'proctitle.c:166,3'
          Dst:             snprintf
    - functionName:    pr_proctitle_set
      functionSourceFile: '/src/proftpd/src/proctitle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          110
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - snprintf
        - strlen
        - vsnprintf
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'proctitle.c:236,3'
          Dst:             snprintf
        - Src:             'proctitle.c:237,30'
          Dst:             strlen
        - Src:             'proctitle.c:238,32'
          Dst:             strlen
        - Src:             'proctitle.c:237,3'
          Dst:             vsnprintf
        - Src:             'proctitle.c:247,16'
          Dst:             strlen
        - Src:             'proctitle.c:259,3'
          Dst:             snprintf
    - functionName:    pr_proctitle_free
      functionSourceFile: '/src/proftpd/src/proctitle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_proctitle_init
      functionSourceFile: '/src/proftpd/src/proctitle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          253
      EdgeCount:       46
      CyclomaticComplexity: 12
      functionsReached:
        - calloc
        - sstrncpy
        - strdup
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'proctitle.c:69,17'
          Dst:             strlen
        - Src:             'proctitle.c:72,17'
          Dst:             calloc
        - Src:             'proctitle.c:78,25'
          Dst:             strlen
        - Src:             'proctitle.c:87,9'
          Dst:             sstrncpy
        - Src:             'proctitle.c:99,34'
          Dst:             strlen
        - Src:             'proctitle.c:105,34'
          Dst:             strlen
        - Src:             'proctitle.c:113,16'
          Dst:             strdup
        - Src:             'proctitle.c:114,21'
          Dst:             strdup
    - 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:    pr_expr_eval_user_or
      functionSourceFile: '/src/proftpd/src/expr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 315
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          117
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - strcmp
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'expr.c:290,5'
          Dst:             __errno_location
        - Src:             'expr.c:305,9'
          Dst:             strcmp
    - functionName:    pr_expr_eval_user_and
      functionSourceFile: '/src/proftpd/src/expr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          117
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expr.c:255,5'
          Dst:             __errno_location
        - Src:             'expr.c:272,9'
          Dst:             strcmp
    - functionName:    pr_expr_eval_group_or
      functionSourceFile: '/src/proftpd/src/expr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         37
      ICount:          189
      EdgeCount:       48
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expr.c:208,5'
          Dst:             __errno_location
        - Src:             'expr.c:225,9'
          Dst:             strcmp
        - Src:             'expr.c:234,13'
          Dst:             strcmp
    - functionName:    pr_expr_eval_group_and
      functionSourceFile: '/src/proftpd/src/expr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         37
      ICount:          189
      EdgeCount:       48
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - strcmp
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'expr.c:161,5'
          Dst:             __errno_location
        - Src:             'expr.c:178,9'
          Dst:             strcmp
        - Src:             'expr.c:187,13'
          Dst:             strcmp
    - functionName:    pr_expr_eval_class_or
      functionSourceFile: '/src/proftpd/src/expr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          121
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - strcmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'expr.c:123,5'
          Dst:             __errno_location
        - Src:             'expr.c:143,9'
          Dst:             strcmp
    - functionName:    pr_expr_eval_class_and
      functionSourceFile: '/src/proftpd/src/expr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          139
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expr.c:83,5'
          Dst:             __errno_location
        - Src:             'expr.c:105,9'
          Dst:             strcmp
    - functionName:    pr_expr_create
      functionSourceFile: '/src/proftpd/src/expr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          161
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - make_array
        - pr_signals_handle
        - pr_str_get_token
        - pstrdup
        - push_array
        - strstr
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'expr.c:38,5'
          Dst:             __errno_location
        - Src:             'expr.c:45,11'
          Dst:             make_array
        - Src:             'expr.c:51,11'
          Dst:             pstrdup
        - Src:             'expr.c:53,11'
          Dst:             strstr
        - Src:             'expr.c:54,23'
          Dst:             pr_str_get_token
        - Src:             'expr.c:55,11'
          Dst:             pr_signals_handle
        - Src:             'expr.c:58,25'
          Dst:             push_array
        - Src:             'expr.c:63,21'
          Dst:             push_array
        - Src:             'expr.c:70,11'
          Dst:             make_array
    - functionName:    handle_stacktrace_signal
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          114
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - backtrace
        - backtrace_symbols
        - finish_terminate
        - pr_log_pri
        - sig_terminate
        - strerror
        - table_handling_signal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'signals.c:182,3'
          Dst:             table_handling_signal
        - Src:             'signals.c:184,3'
          Dst:             pr_log_pri
        - Src:             'signals.c:187,13'
          Dst:             backtrace
        - Src:             'signals.c:189,63'
          Dst:             __errno_location
        - Src:             'signals.c:189,54'
          Dst:             strerror
        - Src:             'signals.c:189,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:203,13'
          Dst:             backtrace_symbols
        - Src:             'signals.c:205,71'
          Dst:             __errno_location
        - Src:             'signals.c:205,62'
          Dst:             strerror
        - Src:             'signals.c:205,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:212,7'
          Dst:             pr_log_pri
        - Src:             'signals.c:218,3'
          Dst:             pr_log_pri
        - Src:             'signals.c:220,3'
          Dst:             sig_terminate
        - Src:             'signals.c:221,3'
          Dst:             finish_terminate
    - functionName:    sig_terminate
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          146
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - install_stacktrace_handler
        - pr_log_pri
        - pr_session_get_protocol
        - pr_trace_msg
        - signal
        - strerror
      functionUses:    8
      BranchProfiles:
        - Branch String:   'signals.c:321,3'
          Branch Sides:    []
      Callsites:
        - Src:             'signals.c:378,5'
          Dst:             pr_trace_msg
        - Src:             'signals.c:379,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:383,9'
          Dst:             pr_session_get_protocol
        - Src:             'signals.c:382,7'
          Dst:             pr_log_pri
        - Src:             'signals.c:388,5'
          Dst:             install_stacktrace_handler
        - Src:             'signals.c:392,7'
          Dst:             signal
        - Src:             'signals.c:394,70'
          Dst:             __errno_location
        - Src:             'signals.c:394,61'
          Dst:             strerror
        - Src:             'signals.c:393,5'
          Dst:             pr_log_pri
    - functionName:    finish_terminate
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          94
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - getpid
        - pr_delete_scoreboard
        - pr_event_generate
        - pr_event_unregister
        - pr_log_pri
        - pr_pidfile_remove
        - pr_privs_relinquish
        - pr_privs_root
        - pr_session_disconnect
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'signals.c:58,15'
          Dst:             getpid
        - Src:             'signals.c:59,5'
          Dst:             pr_privs_root
        - Src:             'signals.c:64,7'
          Dst:             pr_pidfile_remove
        - Src:             'signals.c:75,5'
          Dst:             pr_event_generate
        - Src:             'signals.c:76,5'
          Dst:             pr_event_generate
        - Src:             'signals.c:82,5'
          Dst:             pr_event_unregister
        - Src:             'signals.c:83,5'
          Dst:             pr_event_unregister
        - Src:             'signals.c:85,5'
          Dst:             pr_privs_relinquish
        - Src:             'signals.c:88,7'
          Dst:             pr_log_pri
        - Src:             'signals.c:92,7'
          Dst:             pr_privs_root
        - Src:             'signals.c:93,7'
          Dst:             pr_delete_scoreboard
        - Src:             'signals.c:94,7'
          Dst:             pr_privs_relinquish
        - Src:             'signals.c:102,3'
          Dst:             pr_session_disconnect
    - functionName:    install_stacktrace_handler
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 422
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         12
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - pr_log_pri
        - sigaction
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'signals.c:405,7'
          Dst:             sigaction
        - Src:             'signals.c:408,16'
          Dst:             __errno_location
        - Src:             'signals.c:408,7'
          Dst:             strerror
        - Src:             'signals.c:406,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:411,7'
          Dst:             sigaction
        - Src:             'signals.c:414,16'
          Dst:             __errno_location
        - Src:             'signals.c:414,7'
          Dst:             strerror
        - Src:             'signals.c:412,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:417,7'
          Dst:             sigaction
        - Src:             'signals.c:420,16'
          Dst:             __errno_location
        - Src:             'signals.c:420,7'
          Dst:             strerror
        - Src:             'signals.c:418,5'
          Dst:             pr_log_pri
    - functionName:    handle_abort
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - finish_terminate
        - pr_log_pri
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'signals.c:106,3'
          Dst:             pr_log_pri
        - Src:             'signals.c:107,3'
          Dst:             finish_terminate
    - functionName:    handle_xfsz
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - finish_terminate
        - pr_log_pri
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'signals.c:231,3'
          Dst:             pr_log_pri
        - Src:             'signals.c:233,3'
          Dst:             finish_terminate
    - functionName:    handle_xcpu
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - finish_terminate
        - pr_log_pri
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'signals.c:225,3'
          Dst:             pr_log_pri
        - Src:             'signals.c:226,3'
          Dst:             finish_terminate
    - functionName:    handle_terminate_with_kids
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          40
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - child_count
        - child_signal
        - finish_terminate
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'signals.c:151,9'
          Dst:             child_count
        - Src:             'signals.c:152,7'
          Dst:             pr_privs_root
        - Src:             'signals.c:153,7'
          Dst:             child_signal
        - Src:             'signals.c:154,7'
          Dst:             pr_privs_relinquish
        - Src:             'signals.c:157,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:160,3'
          Dst:             finish_terminate
    - functionName:    handle_terminate_without_kids
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - finish_terminate
        - pr_log_pri
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'signals.c:164,3'
          Dst:             pr_log_pri
        - Src:             'signals.c:165,3'
          Dst:             finish_terminate
    - functionName:    handle_evnt
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_event_generate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'signals.c:143,3'
          Dst:             pr_event_generate
    - functionName:    handle_chld
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          71
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - child_remove
        - pr_alarms_block
        - pr_alarms_unblock
        - pr_log_pri
        - sigaddset
        - sigemptyset
        - sigprocmask
        - strerror
        - waitpid
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'signals.c:114,3'
          Dst:             sigemptyset
        - Src:             'signals.c:115,3'
          Dst:             sigaddset
        - Src:             'signals.c:116,3'
          Dst:             sigaddset
        - Src:             'signals.c:118,3'
          Dst:             pr_alarms_block
        - Src:             'signals.c:123,7'
          Dst:             sigprocmask
        - Src:             'signals.c:125,50'
          Dst:             __errno_location
        - Src:             'signals.c:125,41'
          Dst:             strerror
        - Src:             'signals.c:124,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:128,17'
          Dst:             waitpid
        - Src:             'signals.c:129,9'
          Dst:             child_remove
        - Src:             'signals.c:134,7'
          Dst:             sigprocmask
        - Src:             'signals.c:136,52'
          Dst:             __errno_location
        - Src:             'signals.c:136,43'
          Dst:             strerror
        - Src:             'signals.c:135,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:139,3'
          Dst:             pr_alarms_unblock
    - functionName:    waitpid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sig_abort
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pr_log_pri
        - signal
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'signals.c:298,7'
          Dst:             signal
        - Src:             'signals.c:301,16'
          Dst:             __errno_location
        - Src:             'signals.c:301,7'
          Dst:             strerror
        - Src:             'signals.c:299,5'
          Dst:             pr_log_pri
    - functionName:    sig_restart
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 544
      functionLinenumberEnd: 552
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pr_log_pri
        - sig_restart
        - signal
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'signals.c:547,7'
          Dst:             signal
        - Src:             'signals.c:547,7'
          Dst:             sig_restart
        - Src:             'signals.c:550,16'
          Dst:             __errno_location
        - Src:             'signals.c:550,7'
          Dst:             strerror
        - Src:             'signals.c:548,5'
          Dst:             pr_log_pri
    - functionName:    sig_child
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - handle_chld
        - pr_log_pri
        - sig_child
        - signal
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'signals.c:266,3'
          Dst:             handle_chld
        - Src:             'signals.c:268,7'
          Dst:             signal
        - Src:             'signals.c:268,7'
          Dst:             sig_child
        - Src:             'signals.c:271,16'
          Dst:             __errno_location
        - Src:             'signals.c:271,7'
          Dst:             strerror
        - Src:             'signals.c:269,5'
          Dst:             pr_log_pri
    - functionName:    init_signals
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 590
      functionLinenumberEnd: 734
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         48
      ICount:          254
      EdgeCount:       63
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - install_stacktrace_handler
        - pr_log_pri
        - pr_signals_handle_event
        - sig_abort
        - sig_child
        - sig_restart
        - sig_terminate
        - sigaddset
        - sigemptyset
        - signal
        - sigprocmask
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'signals.c:606,3'
          Dst:             sigemptyset
        - Src:             'signals.c:608,3'
          Dst:             sigaddset
        - Src:             'signals.c:609,3'
          Dst:             sigaddset
        - Src:             'signals.c:610,3'
          Dst:             sigaddset
        - Src:             'signals.c:611,3'
          Dst:             sigaddset
        - Src:             'signals.c:612,3'
          Dst:             sigaddset
        - Src:             'signals.c:613,3'
          Dst:             sigaddset
        - Src:             'signals.c:614,3'
          Dst:             sigaddset
        - Src:             'signals.c:615,3'
          Dst:             sigaddset
        - Src:             'signals.c:616,3'
          Dst:             sigaddset
        - Src:             'signals.c:617,3'
          Dst:             sigaddset
        - Src:             'signals.c:618,3'
          Dst:             sigaddset
        - Src:             'signals.c:620,3'
          Dst:             sigaddset
        - Src:             'signals.c:623,3'
          Dst:             sigaddset
        - Src:             'signals.c:626,3'
          Dst:             sigaddset
        - Src:             'signals.c:629,7'
          Dst:             signal
        - Src:             'signals.c:629,7'
          Dst:             sig_child
        - Src:             'signals.c:632,16'
          Dst:             __errno_location
        - Src:             'signals.c:632,7'
          Dst:             strerror
        - Src:             'signals.c:630,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:635,7'
          Dst:             signal
        - Src:             'signals.c:635,7'
          Dst:             sig_restart
        - Src:             'signals.c:638,16'
          Dst:             __errno_location
        - Src:             'signals.c:638,7'
          Dst:             strerror
        - Src:             'signals.c:636,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:641,7'
          Dst:             signal
        - Src:             'signals.c:641,7'
          Dst:             sig_terminate
        - Src:             'signals.c:644,16'
          Dst:             __errno_location
        - Src:             'signals.c:644,7'
          Dst:             strerror
        - Src:             'signals.c:642,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:647,7'
          Dst:             signal
        - Src:             'signals.c:647,7'
          Dst:             sig_terminate
        - Src:             'signals.c:650,16'
          Dst:             __errno_location
        - Src:             'signals.c:650,7'
          Dst:             strerror
        - Src:             'signals.c:648,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:653,7'
          Dst:             signal
        - Src:             'signals.c:653,7'
          Dst:             sig_terminate
        - Src:             'signals.c:656,16'
          Dst:             __errno_location
        - Src:             'signals.c:656,7'
          Dst:             strerror
        - Src:             'signals.c:654,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:659,7'
          Dst:             signal
        - Src:             'signals.c:659,7'
          Dst:             sig_terminate
        - Src:             'signals.c:662,16'
          Dst:             __errno_location
        - Src:             'signals.c:662,7'
          Dst:             strerror
        - Src:             'signals.c:660,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:666,7'
          Dst:             signal
        - Src:             'signals.c:666,7'
          Dst:             sig_terminate
        - Src:             'signals.c:669,16'
          Dst:             __errno_location
        - Src:             'signals.c:669,7'
          Dst:             strerror
        - Src:             'signals.c:667,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:673,7'
          Dst:             signal
        - Src:             'signals.c:673,7'
          Dst:             sig_abort
        - Src:             'signals.c:676,16'
          Dst:             __errno_location
        - Src:             'signals.c:676,7'
          Dst:             strerror
        - Src:             'signals.c:674,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:680,3'
          Dst:             install_stacktrace_handler
        - Src:             'signals.c:686,7'
          Dst:             signal
        - Src:             'signals.c:689,16'
          Dst:             __errno_location
        - Src:             'signals.c:689,7'
          Dst:             strerror
        - Src:             'signals.c:687,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:692,7'
          Dst:             signal
        - Src:             'signals.c:692,7'
          Dst:             sig_terminate
        - Src:             'signals.c:695,16'
          Dst:             __errno_location
        - Src:             'signals.c:695,7'
          Dst:             strerror
        - Src:             'signals.c:693,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:698,7'
          Dst:             signal
        - Src:             'signals.c:701,16'
          Dst:             __errno_location
        - Src:             'signals.c:701,7'
          Dst:             strerror
        - Src:             'signals.c:699,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:705,7'
          Dst:             signal
        - Src:             'signals.c:705,7'
          Dst:             sig_terminate
        - Src:             'signals.c:708,16'
          Dst:             __errno_location
        - Src:             'signals.c:708,7'
          Dst:             strerror
        - Src:             'signals.c:706,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:713,7'
          Dst:             signal
        - Src:             'signals.c:716,16'
          Dst:             __errno_location
        - Src:             'signals.c:716,7'
          Dst:             strerror
        - Src:             'signals.c:714,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:720,7'
          Dst:             signal
        - Src:             'signals.c:720,7'
          Dst:             pr_signals_handle_event
        - Src:             'signals.c:723,16'
          Dst:             __errno_location
        - Src:             'signals.c:723,7'
          Dst:             strerror
        - Src:             'signals.c:721,5'
          Dst:             pr_log_pri
        - Src:             'signals.c:729,7'
          Dst:             sigprocmask
        - Src:             'signals.c:731,50'
          Dst:             __errno_location
        - Src:             'signals.c:731,41'
          Dst:             strerror
        - Src:             'signals.c:730,5'
          Dst:             pr_log_pri
    - functionName:    pr_signals_handle_event
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 580
      functionLinenumberEnd: 588
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pr_log_pri
        - pr_signals_handle_event
        - signal
        - strerror
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'signals.c:583,7'
          Dst:             signal
        - Src:             'signals.c:583,7'
          Dst:             pr_signals_handle_event
        - Src:             'signals.c:586,16'
          Dst:             __errno_location
        - Src:             'signals.c:586,7'
          Dst:             strerror
        - Src:             'signals.c:584,5'
          Dst:             pr_log_pri
    - functionName:    pr_signals_handle_disconnect
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 559
      functionLinenumberEnd: 577
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - pr_log_pri
        - signal
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'signals.c:572,7'
          Dst:             signal
        - Src:             'signals.c:575,16'
          Dst:             __errno_location
        - Src:             'signals.c:575,7'
          Dst:             strerror
        - Src:             'signals.c:573,5'
          Dst:             pr_log_pri
    - functionName:    pr_signals_handle_without_delay
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - handle_signals
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'signals.c:537,3'
          Dst:             handle_signals
    - functionName:    handle_signals
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 530
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         45
      ICount:          293
      EdgeCount:       59
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - handle_abort
        - handle_alarm
        - handle_chld
        - handle_evnt
        - handle_terminate_with_kids
        - handle_terminate_without_kids
        - handle_xcpu
        - handle_xfsz
        - pr_log_pri
        - pr_session_disconnect
        - pr_timer_usleep
        - pr_trace_msg
        - restart_daemon
        - schedule
        - shutdown_end_session
        - table_handling_signal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'signals.c:429,3'
          Dst:             table_handling_signal
        - Src:             'signals.c:431,7'
          Dst:             __errno_location
        - Src:             'signals.c:440,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:445,7'
          Dst:             pr_timer_usleep
        - Src:             'signals.c:449,5'
          Dst:             __errno_location
        - Src:             'signals.c:455,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:456,7'
          Dst:             handle_alarm
        - Src:             'signals.c:461,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:462,7'
          Dst:             handle_chld
        - Src:             'signals.c:469,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:470,7'
          Dst:             handle_evnt
        - Src:             'signals.c:475,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:476,7'
          Dst:             handle_terminate_without_kids
        - Src:             'signals.c:481,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:482,7'
          Dst:             handle_terminate_with_kids
        - Src:             'signals.c:487,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:488,7'
          Dst:             handle_xcpu
        - Src:             'signals.c:494,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:495,7'
          Dst:             handle_xfsz
        - Src:             'signals.c:501,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:502,7'
          Dst:             handle_abort
        - Src:             'signals.c:507,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:510,7'
          Dst:             schedule
        - Src:             'signals.c:510,7'
          Dst:             restart_daemon
        - Src:             'signals.c:515,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:516,7'
          Dst:             pr_log_pri
        - Src:             'signals.c:517,7'
          Dst:             pr_session_disconnect
        - Src:             'signals.c:522,7'
          Dst:             pr_trace_msg
        - Src:             'signals.c:525,7'
          Dst:             schedule
        - Src:             'signals.c:525,7'
          Dst:             shutdown_end_session
        - Src:             'signals.c:529,3'
          Dst:             table_handling_signal
    - functionName:    pr_signals_handle
      functionSourceFile: '/src/proftpd/src/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 532
      functionLinenumberEnd: 534
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - handle_signals
      functionUses:    309
      BranchProfiles:  []
      Callsites:
        - Src:             'signals.c:533,3'
          Dst:             handle_signals
    - functionName:    init_netio
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2072
      functionLinenumberEnd: 2077
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_register_netio
        - signal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'netio.c:2073,3'
          Dst:             signal
        - Src:             'netio.c:2074,3'
          Dst:             signal
        - Src:             'netio.c:2076,3'
          Dst:             pr_register_netio
    - functionName:    pr_register_netio
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1899
      functionLinenumberEnd: 1951
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         49
      ICount:          221
      EdgeCount:       67
      CyclomaticComplexity: 20
      functionsReached:
        - __errno_location
        - pr_alloc_netio2
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'netio.c:1908,44'
          Dst:             pr_alloc_netio2
        - Src:             'netio.c:1914,26'
          Dst:             pr_alloc_netio2
        - Src:             'netio.c:1919,26'
          Dst:             pr_alloc_netio2
        - Src:             'netio.c:1934,5'
          Dst:             __errno_location
    - functionName:    pr_alloc_netio2
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2007
      functionLinenumberEnd: 2066
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          142
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - getpid
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
        - pstrdup
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'netio.c:2012,5'
          Dst:             __errno_location
        - Src:             'netio.c:2016,16'
          Dst:             make_sub_pool
        - Src:             'netio.c:2026,15'
          Dst:             getpid
        - Src:             'netio.c:2027,5'
          Dst:             pr_pool_tag
        - Src:             'netio.c:2030,5'
          Dst:             pr_pool_tag
        - Src:             'netio.c:2033,11'
          Dst:             pcalloc
        - Src:             'netio.c:2039,27'
          Dst:             pstrdup
        - Src:             'netio.c:2042,27'
          Dst:             pstrdup
    - functionName:    core_netio_abort_cb
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    core_netio_close_cb
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'netio.c:147,11'
          Dst:             close
        - Src:             'netio.c:151,5'
          Dst:             __errno_location
    - functionName:    core_netio_open_cb
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    core_netio_poll_cb
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          197
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - pr_signals_handle
        - select
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'netio.c:197,9'
          Dst:             select
        - Src:             'netio.c:199,18'
          Dst:             __errno_location
        - Src:             'netio.c:204,9'
          Dst:             __errno_location
        - Src:             'netio.c:205,9'
          Dst:             pr_signals_handle
        - Src:             'netio.c:210,5'
          Dst:             __errno_location
    - functionName:    core_netio_postopen_cb
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 218
      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:    core_netio_read_cb
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'netio.c:223,10'
          Dst:             read
    - functionName:    core_netio_reopen_cb
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'netio.c:230,5'
          Dst:             close
    - functionName:    core_netio_shutdown_cb
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - shutdown
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'netio.c:240,10'
          Dst:             shutdown
    - functionName:    core_netio_write_cb
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'netio.c:245,10'
          Dst:             write
    - functionName:    shutdown
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_alloc_netio
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2068
      functionLinenumberEnd: 2069
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_alloc_netio2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'netio.c:2069,10'
          Dst:             pr_alloc_netio2
    - functionName:    pr_get_netio
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1976
      functionLinenumberEnd: 2002
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
      functionUses:    0
      BranchProfiles:
        - Branch String:   'netio.c:1984,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:1980,5'
          Dst:             __errno_location
        - Src:             'netio.c:1998,7'
          Dst:             __errno_location
    - functionName:    pr_unregister_netio
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1953
      functionLinenumberEnd: 1974
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          70
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'netio.c:1955,5'
          Dst:             __errno_location
    - functionName:    pr_netio_telnet_gets
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1888
      functionLinenumberEnd: 1897
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_netio_telnet_gets2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'netio.c:1891,9'
          Dst:             pr_netio_telnet_gets2
    - functionName:    pr_netio_telnet_gets2
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1676
      functionLinenumberEnd: 1885
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         94
      ICount:          552
      EdgeCount:       118
      CyclomaticComplexity: 26
      functionsReached:
        - __errno_location
        - pr_event_generate
        - pr_log_pri
        - pr_netio_buffer_alloc
        - pr_netio_printf
        - pr_netio_read
        - pr_signals_handle
      functionUses:    2
      BranchProfiles:
        - Branch String:   'netio.c:1748,9'
          Branch Sides:    []
        - Branch String:   'netio.c:1750,13'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:1686,5'
          Dst:             __errno_location
        - Src:             'netio.c:1700,12'
          Dst:             pr_netio_buffer_alloc
        - Src:             'netio.c:1704,5'
          Dst:             pr_signals_handle
        - Src:             'netio.c:1710,16'
          Dst:             pr_netio_read
        - Src:             'netio.c:1729,7'
          Dst:             pr_event_generate
        - Src:             'netio.c:1739,7'
          Dst:             pr_signals_handle
        - Src:             'netio.c:1795,13'
          Dst:             pr_netio_printf
        - Src:             'netio.c:1801,13'
          Dst:             pr_netio_printf
        - Src:             'netio.c:1871,5'
          Dst:             __errno_location
        - Src:             'netio.c:1877,5'
          Dst:             pr_log_pri
        - Src:             'netio.c:1878,5'
          Dst:             __errno_location
    - functionName:    pr_netio_buffer_alloc
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          71
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pcalloc
        - pr_config_get_server_xfer_bufsz
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'netio.c:113,5'
          Dst:             __errno_location
        - Src:             'netio.c:117,10'
          Dst:             pcalloc
        - Src:             'netio.c:120,11'
          Dst:             pr_config_get_server_xfer_bufsz
        - Src:             'netio.c:121,15'
          Dst:             pcalloc
    - functionName:    pr_netio_read
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1340
      functionLinenumberEnd: 1524
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         71
      ICount:          488
      EdgeCount:       87
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
        - destroy_pool
        - make_sub_pool
        - netio_stream_mode
        - pcalloc
        - pr_event_generate
        - pr_netio_poll
        - pr_signals_handle
        - pr_trace_msg
        - run_schedule
      functionUses:    6
      BranchProfiles:
        - Branch String:   'netio.c:1372,5'
          Branch Sides:    []
        - Branch String:   'netio.c:1385,11'
          Branch Sides:    []
        - Branch String:   'netio.c:1497,5'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:1350,5'
          Dst:             __errno_location
        - Src:             'netio.c:1355,5'
          Dst:             __errno_location
        - Src:             'netio.c:1367,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:1372,13'
          Dst:             pr_netio_poll
        - Src:             'netio.c:1381,11'
          Dst:             pr_signals_handle
        - Src:             'netio.c:1383,11'
          Dst:             run_schedule
        - Src:             'netio.c:1388,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1394,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1407,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1413,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1422,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1428,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1438,15'
          Dst:             __errno_location
        - Src:             'netio.c:1449,13'
          Dst:             __errno_location
        - Src:             'netio.c:1450,13'
          Dst:             pr_signals_handle
        - Src:             'netio.c:1452,13'
          Dst:             __errno_location
        - Src:             'netio.c:1457,33'
          Dst:             __errno_location
        - Src:             'netio.c:1462,27'
          Dst:             __errno_location
        - Src:             'netio.c:1469,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1475,7'
          Dst:             __errno_location
        - Src:             'netio.c:1490,16'
          Dst:             make_sub_pool
        - Src:             'netio.c:1491,12'
          Dst:             pcalloc
        - Src:             'netio.c:1499,9'
          Dst:             pr_event_generate
        - Src:             'netio.c:1503,9'
          Dst:             pr_event_generate
        - Src:             'netio.c:1507,9'
          Dst:             pr_event_generate
        - Src:             'netio.c:1514,5'
          Dst:             destroy_pool
    - functionName:    pr_netio_printf
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1021
      functionLinenumberEnd: 1035
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pr_netio_vprintf
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'netio.c:1026,5'
          Dst:             __errno_location
        - Src:             'netio.c:1031,9'
          Dst:             pr_netio_vprintf
    - functionName:    pr_netio_vprintf
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1012
      functionLinenumberEnd: 1018
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_netio_write
        - pr_vsnprintf
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'netio.c:1015,3'
          Dst:             pr_vsnprintf
        - Src:             'netio.c:1018,37'
          Dst:             strlen
        - Src:             'netio.c:1018,10'
          Dst:             pr_netio_write
    - functionName:    pr_netio_write
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1054
      functionLinenumberEnd: 1196
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          394
      EdgeCount:       63
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - destroy_pool
        - make_sub_pool
        - netio_stream_mode
        - pcalloc
        - pr_event_generate
        - pr_netio_poll
        - pr_signals_handle
        - pr_trace_msg
        - run_schedule
      functionUses:    3
      BranchProfiles:
        - Branch String:   'netio.c:1093,3'
          Branch Sides:    []
        - Branch String:   'netio.c:1114,5'
          Branch Sides:    []
        - Branch String:   'netio.c:1129,11'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:1064,5'
          Dst:             __errno_location
        - Src:             'netio.c:1069,5'
          Dst:             __errno_location
        - Src:             'netio.c:1073,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:1086,14'
          Dst:             make_sub_pool
        - Src:             'netio.c:1087,10'
          Dst:             pcalloc
        - Src:             'netio.c:1095,7'
          Dst:             pr_event_generate
        - Src:             'netio.c:1099,7'
          Dst:             pr_event_generate
        - Src:             'netio.c:1103,7'
          Dst:             pr_event_generate
        - Src:             'netio.c:1110,3'
          Dst:             destroy_pool
        - Src:             'netio.c:1114,13'
          Dst:             pr_netio_poll
        - Src:             'netio.c:1117,9'
          Dst:             __errno_location
        - Src:             'netio.c:1126,11'
          Dst:             pr_signals_handle
        - Src:             'netio.c:1127,11'
          Dst:             run_schedule
        - Src:             'netio.c:1132,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1138,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1151,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1157,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1166,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1172,17'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1180,36'
          Dst:             __errno_location
        - Src:             'netio.c:1185,27'
          Dst:             __errno_location
    - functionName:    netio_stream_mode
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          27
      EdgeCount:       8
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    11
      BranchProfiles:
        - Branch String:   'netio.c:251,3'
          Branch Sides:    []
      Callsites:       []
    - functionName:    pr_netio_poll
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 810
      functionLinenumberEnd: 948
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         50
      ICount:          351
      EdgeCount:       66
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
        - netio_stream_mode
        - pr_signals_handle
        - pr_trace_msg
        - run_schedule
      functionUses:    3
      BranchProfiles:
        - Branch String:   'netio.c:837,5'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:816,5'
          Dst:             __errno_location
        - Src:             'netio.c:821,5'
          Dst:             __errno_location
        - Src:             'netio.c:831,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:834,5'
          Dst:             run_schedule
        - Src:             'netio.c:835,5'
          Dst:             pr_signals_handle
        - Src:             'netio.c:840,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:846,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:855,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:861,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:870,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:876,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:885,16'
          Dst:             __errno_location
        - Src:             'netio.c:893,11'
          Dst:             __errno_location
        - Src:             'netio.c:900,9'
          Dst:             pr_signals_handle
        - Src:             'netio.c:914,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:920,7'
          Dst:             __errno_location
        - Src:             'netio.c:937,9'
          Dst:             __errno_location
    - functionName:    pr_netio_gets
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1591
      functionLinenumberEnd: 1671
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          348
      EdgeCount:       70
      CyclomaticComplexity: 20
      functionsReached:
        - __errno_location
        - pr_event_generate
        - pr_netio_buffer_alloc
        - pr_netio_read
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'netio.c:1599,5'
          Dst:             __errno_location
        - Src:             'netio.c:1609,12'
          Dst:             pr_netio_buffer_alloc
        - Src:             'netio.c:1618,16'
          Dst:             pr_netio_read
        - Src:             'netio.c:1640,7'
          Dst:             pr_event_generate
    - functionName:    pr_netio_write_async
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1198
      functionLinenumberEnd: 1337
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          397
      EdgeCount:       59
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - destroy_pool
        - fcntl
        - make_sub_pool
        - netio_stream_mode
        - pcalloc
        - pr_event_generate
        - pr_signals_handle
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:
        - Branch String:   'netio.c:1238,3'
          Branch Sides:    []
        - Branch String:   'netio.c:1269,7'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:1206,5'
          Dst:             __errno_location
        - Src:             'netio.c:1211,5'
          Dst:             __errno_location
        - Src:             'netio.c:1216,11'
          Dst:             fcntl
        - Src:             'netio.c:1221,7'
          Dst:             fcntl
        - Src:             'netio.c:1225,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:1231,14'
          Dst:             make_sub_pool
        - Src:             'netio.c:1232,10'
          Dst:             pcalloc
        - Src:             'netio.c:1240,7'
          Dst:             pr_event_generate
        - Src:             'netio.c:1244,7'
          Dst:             pr_event_generate
        - Src:             'netio.c:1248,7'
          Dst:             pr_event_generate
        - Src:             'netio.c:1255,3'
          Dst:             destroy_pool
        - Src:             'netio.c:1267,7'
          Dst:             pr_signals_handle
        - Src:             'netio.c:1272,13'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1278,13'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1287,13'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1293,13'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1302,13'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1308,13'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1316,32'
          Dst:             __errno_location
        - Src:             'netio.c:1319,27'
          Dst:             __errno_location
        - Src:             'netio.c:1320,14'
          Dst:             fcntl
        - Src:             'netio.c:1335,10'
          Dst:             fcntl
    - functionName:    pr_netio_printf_async
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1037
      functionLinenumberEnd: 1052
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pr_netio_write_async
        - pr_vsnprintf
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'netio.c:1042,5'
          Dst:             __errno_location
        - Src:             'netio.c:1047,3'
          Dst:             pr_vsnprintf
        - Src:             'netio.c:1051,43'
          Dst:             strlen
        - Src:             'netio.c:1051,10'
          Dst:             pr_netio_write_async
    - functionName:    pr_netio_postopen
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 950
      functionLinenumberEnd: 1010
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          171
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - netio_stream_mode
        - pr_trace_msg
      functionUses:    2
      BranchProfiles:
        - Branch String:   'netio.c:961,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:955,5'
          Dst:             __errno_location
        - Src:             'netio.c:959,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:964,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:970,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:979,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:985,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:994,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1000,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1008,3'
          Dst:             __errno_location
    - functionName:    pr_netio_set_poll_interval
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 801
      functionLinenumberEnd: 808
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_netio_reset_poll_interval
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 791
      functionLinenumberEnd: 799
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'netio.c:793,5'
          Dst:             __errno_location
    - functionName:    pr_netio_reopen
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 733
      functionLinenumberEnd: 789
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          185
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - netio_stream_mode
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:
        - Branch String:   'netio.c:744,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:738,5'
          Dst:             __errno_location
        - Src:             'netio.c:742,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:747,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:753,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:762,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:767,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:775,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:780,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:787,3'
          Dst:             __errno_location
    - functionName:    netio_stream_alloc
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          72
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
        - pr_table_nalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'netio.c:84,5'
          Dst:             __errno_location
        - Src:             'netio.c:88,16'
          Dst:             make_sub_pool
        - Src:             'netio.c:89,3'
          Dst:             pr_pool_tag
        - Src:             'netio.c:90,11'
          Dst:             pcalloc
        - Src:             'netio.c:103,18'
          Dst:             pr_table_nalloc
    - functionName:    pr_netio_open
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 608
      functionLinenumberEnd: 731
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          435
      EdgeCount:       71
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - destroy_pool
        - netio_stream_alloc
        - netio_stream_mode
        - pr_table_add
        - pr_trace_msg
        - pstrdup
        - strerror
      functionUses:    4
      BranchProfiles:
        - Branch String:   'netio.c:621,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:613,5'
          Dst:             __errno_location
        - Src:             'netio.c:618,11'
          Dst:             netio_stream_alloc
        - Src:             'netio.c:619,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:627,40'
          Dst:             pstrdup
        - Src:             'netio.c:627,13'
          Dst:             pr_table_add
        - Src:             'netio.c:631,22'
          Dst:             __errno_location
        - Src:             'netio.c:631,13'
          Dst:             strerror
        - Src:             'netio.c:629,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:633,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:641,40'
          Dst:             pstrdup
        - Src:             'netio.c:641,13'
          Dst:             pr_table_add
        - Src:             'netio.c:645,22'
          Dst:             __errno_location
        - Src:             'netio.c:645,13'
          Dst:             strerror
        - Src:             'netio.c:643,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:647,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:661,40'
          Dst:             pstrdup
        - Src:             'netio.c:661,13'
          Dst:             pr_table_add
        - Src:             'netio.c:665,22'
          Dst:             __errno_location
        - Src:             'netio.c:665,13'
          Dst:             strerror
        - Src:             'netio.c:663,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:667,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:675,40'
          Dst:             pstrdup
        - Src:             'netio.c:675,13'
          Dst:             pr_table_add
        - Src:             'netio.c:679,22'
          Dst:             __errno_location
        - Src:             'netio.c:679,13'
          Dst:             strerror
        - Src:             'netio.c:677,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:681,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:695,40'
          Dst:             pstrdup
        - Src:             'netio.c:695,13'
          Dst:             pr_table_add
        - Src:             'netio.c:699,22'
          Dst:             __errno_location
        - Src:             'netio.c:699,13'
          Dst:             strerror
        - Src:             'netio.c:697,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:701,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:709,40'
          Dst:             pstrdup
        - Src:             'netio.c:709,13'
          Dst:             pr_table_add
        - Src:             'netio.c:713,22'
          Dst:             __errno_location
        - Src:             'netio.c:713,13'
          Dst:             strerror
        - Src:             'netio.c:711,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:715,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:725,7'
          Dst:             destroy_pool
        - Src:             'netio.c:726,7'
          Dst:             __errno_location
    - functionName:    pr_netio_lingering_close
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 603
      functionLinenumberEnd: 604
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - netio_lingering_close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'netio.c:604,10'
          Dst:             netio_lingering_close
    - functionName:    netio_lingering_close
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          383
      EdgeCount:       59
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - netio_stream_mode
        - pr_netio_shutdown
        - pr_signals_handle
        - pr_trace_msg
        - run_schedule
        - select
        - time
      functionUses:    2
      BranchProfiles:
        - Branch String:   'netio.c:412,3'
          Branch Sides:    []
        - Branch String:   'netio.c:492,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:408,5'
          Dst:             __errno_location
        - Src:             'netio.c:419,7'
          Dst:             __errno_location
        - Src:             'netio.c:428,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:431,5'
          Dst:             pr_netio_shutdown
        - Src:             'netio.c:437,19'
          Dst:             time
        - Src:             'netio.c:447,7'
          Dst:             run_schedule
        - Src:             'netio.c:452,7'
          Dst:             pr_trace_msg
        - Src:             'netio.c:457,13'
          Dst:             select
        - Src:             'netio.c:459,13'
          Dst:             __errno_location
        - Src:             'netio.c:460,24'
          Dst:             time
        - Src:             'netio.c:461,11'
          Dst:             pr_signals_handle
        - Src:             'netio.c:474,31'
          Dst:             __errno_location
        - Src:             'netio.c:480,11'
          Dst:             pr_trace_msg
        - Src:             'netio.c:489,3'
          Dst:             pr_trace_msg
        - Src:             'netio.c:495,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:501,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:510,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:515,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:524,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:529,9'
          Dst:             pr_trace_msg
    - functionName:    pr_netio_shutdown
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1526
      functionLinenumberEnd: 1589
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          177
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - netio_stream_mode
        - pr_trace_msg
      functionUses:    2
      BranchProfiles:
        - Branch String:   'netio.c:1537,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:1531,5'
          Dst:             __errno_location
        - Src:             'netio.c:1535,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:1540,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1546,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1555,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1561,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1570,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1576,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:1584,7'
          Dst:             __errno_location
    - functionName:    pr_netio_lingering_abort
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 539
      functionLinenumberEnd: 601
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          153
      EdgeCount:       26
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - netio_lingering_close
        - pr_netio_shutdown
        - pr_response_send_async
        - pr_signals_handle
        - run_schedule
        - select
      functionUses:    1
      BranchProfiles:
        - Branch String:   'netio.c:547,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:543,5'
          Dst:             __errno_location
        - Src:             'netio.c:554,7'
          Dst:             __errno_location
        - Src:             'netio.c:559,3'
          Dst:             pr_response_send_async
        - Src:             'netio.c:561,3'
          Dst:             pr_netio_shutdown
        - Src:             'netio.c:572,7'
          Dst:             run_schedule
        - Src:             'netio.c:577,13'
          Dst:             select
        - Src:             'netio.c:579,13'
          Dst:             __errno_location
        - Src:             'netio.c:580,11'
          Dst:             pr_signals_handle
        - Src:             'netio.c:588,29'
          Dst:             __errno_location
        - Src:             'netio.c:599,10'
          Dst:             netio_lingering_close
    - functionName:    pr_netio_close
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          212
      EdgeCount:       27
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - destroy_pool
        - netio_stream_mode
        - pr_memscrub
        - pr_trace_msg
      functionUses:    4
      BranchProfiles:
        - Branch String:   'netio.c:339,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:333,5'
          Dst:             __errno_location
        - Src:             'netio.c:337,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:342,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:348,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:353,16'
          Dst:             __errno_location
        - Src:             'netio.c:358,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:363,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:367,16'
          Dst:             __errno_location
        - Src:             'netio.c:372,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:377,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:381,16'
          Dst:             __errno_location
        - Src:             'netio.c:385,7'
          Dst:             __errno_location
        - Src:             'netio.c:394,5'
          Dst:             pr_memscrub
        - Src:             'netio.c:397,3'
          Dst:             destroy_pool
        - Src:             'netio.c:398,3'
          Dst:             __errno_location
    - functionName:    pr_netio_abort
      functionSourceFile: '/src/proftpd/src/netio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          154
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - netio_stream_mode
        - pr_trace_msg
      functionUses:    2
      BranchProfiles:
        - Branch String:   'netio.c:279,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netio.c:273,5'
          Dst:             __errno_location
        - Src:             'netio.c:277,16'
          Dst:             netio_stream_mode
        - Src:             'netio.c:282,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:288,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:298,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:303,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:311,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:316,9'
          Dst:             pr_trace_msg
        - Src:             'netio.c:323,7'
          Dst:             __errno_location
    - functionName:    collated_compare
      functionSourceFile: '/src/proftpd/lib/glibc-glob.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1184
      functionLinenumberEnd: 1195
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          58
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - strcoll
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'glibc-glob.c:1194,10'
          Dst:             strcoll
    - functionName:    strcoll
      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:    prefix_array
      functionSourceFile: '/src/proftpd/lib/glibc-glob.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1204
      functionLinenumberEnd: 1260
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          135
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'glibc-glob.c:1206,19'
          Dst:             strlen
        - Src:             'glibc-glob.c:1235,23'
          Dst:             strlen
    - functionName:    glob_in_dir
      functionSourceFile: '/src/proftpd/lib/glibc-glob.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1310
      functionLinenumberEnd: 1537
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         100
      ICount:          683
      EdgeCount:       134
      CyclomaticComplexity: 36
      functionsReached:
        - __errno_location
        - __glob_pattern_p
        - closedir
        - fnmatch
        - my_realloc
        - opendir
        - readdir
        - stat
        - strchr
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'glibc-glob.c:1322,10'
          Dst:             __glob_pattern_p
        - Src:             'glibc-glob.c:1332,33'
          Dst:             strchr
        - Src:             'glibc-glob.c:1340,23'
          Dst:             strlen
        - Src:             'glibc-glob.c:1341,23'
          Dst:             strlen
        - Src:             'glibc-glob.c:1355,7'
          Dst:             stat
        - Src:             'glibc-glob.c:1381,19'
          Dst:             opendir
        - Src:             'glibc-glob.c:1384,12'
          Dst:             __errno_location
        - Src:             'glibc-glob.c:1385,52'
          Dst:             __errno_location
        - Src:             'glibc-glob.c:1427,13'
          Dst:             readdir
        - Src:             'glibc-glob.c:1448,9'
          Dst:             fnmatch
        - Src:             'glibc-glob.c:1452,15'
          Dst:             strlen
        - Src:             'glibc-glob.c:1474,20'
          Dst:             strlen
        - Src:             'glibc-glob.c:1494,14'
          Dst:             my_realloc
        - Src:             'glibc-glob.c:1509,10'
          Dst:             __errno_location
        - Src:             'glibc-glob.c:1515,2'
          Dst:             closedir
        - Src:             'glibc-glob.c:1517,3'
          Dst:             __errno_location
        - Src:             'glibc-glob.c:1523,19'
          Dst:             __errno_location
        - Src:             'glibc-glob.c:1527,7'
          Dst:             closedir
        - Src:             'glibc-glob.c:1528,5'
          Dst:             __errno_location
    - functionName:    __glob_pattern_p
      functionSourceFile: '/src/proftpd/lib/glibc-glob.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1268
      functionLinenumberEnd: 1295
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          100
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'glibc-glob.c:1273,5'
          Branch Sides:    []
      Callsites:       []
    - functionName:    fnmatch
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    my_realloc
      functionSourceFile: '/src/proftpd/lib/glibc-glob.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - realloc
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'glibc-glob.c:260,19'
          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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    next_brace_sub
      functionSourceFile: '/src/proftpd/lib/glibc-glob.c'
      linkageType:     InternalLinkage
      functionLinenumber: 391
      functionLinenumberEnd: 425
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          144
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    globfree
      functionSourceFile: '/src/proftpd/lib/glibc-glob.c'
      linkageType:     externalLinkage
      functionLinenumber: 1169
      functionLinenumberEnd: 1178
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          79
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    glob_limited
      functionSourceFile: '/src/proftpd/lib/glibc-glob.c'
      linkageType:     InternalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 1154
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         242
      ICount:          1702
      EdgeCount:       326
      CyclomaticComplexity: 86
      functionsReached:
        - __assert_fail
        - __errno_location
        - __glob_pattern_p
        - collated_compare
        - getenv
        - getlogin
        - getpwnam
        - glob_in_dir
        - glob_limited
        - globfree
        - my_realloc
        - next_brace_sub
        - prefix_array
        - qsort
        - stat
        - strchr
        - strcpy
        - strlen
        - strrchr
      functionUses:    6
      BranchProfiles:
        - Branch String:   ''
          Branch Sides:    []
      Callsites:
        - Src:             'glibc-glob.c:452,7'
          Dst:             __errno_location
        - Src:             'glibc-glob.c:463,27'
          Dst:             strchr
        - Src:             'glibc-glob.c:475,16'
          Dst:             strlen
        - Src:             'glibc-glob.c:496,11'
          Dst:             next_brace_sub
        - Src:             'glibc-glob.c:503,15'
          Dst:             glob_limited
        - Src:             'glibc-glob.c:510,15'
          Dst:             next_brace_sub
        - Src:             'glibc-glob.c:517,12'
          Dst:             glob_limited
        - Src:             'glibc-glob.c:522,15'
          Dst:             strlen
        - Src:             'glibc-glob.c:552,17'
          Dst:             glob_limited
        - Src:             'glibc-glob.c:563,7'
          Dst:             globfree
        - Src:             'glibc-glob.c:572,15'
          Dst:             next_brace_sub
        - Src:             'glibc-glob.c:573,8'
          Dst:             __assert_fail
        - Src:             'glibc-glob.c:589,14'
          Dst:             strrchr
        - Src:             'glibc-glob.c:605,13'
          Dst:             strlen
        - Src:             'glibc-glob.c:676,14'
          Dst:             glob_limited
        - Src:             'glibc-glob.c:710,27'
          Dst:             getenv
        - Src:             'glibc-glob.c:734,26'
          Dst:             getlogin
        - Src:             'glibc-glob.c:764,9'
          Dst:             getpwnam
        - Src:             'glibc-glob.c:785,26'
          Dst:             strlen
        - Src:             'glibc-glob.c:800,21'
          Dst:             strchr
        - Src:             'glibc-glob.c:847,10'
          Dst:             getpwnam
        - Src:             'glibc-glob.c:858,26'
          Dst:             strlen
        - Src:             'glibc-glob.c:859,49'
          Dst:             strlen
        - Src:             'glibc-glob.c:895,12'
          Dst:             stat
        - Src:             'glibc-glob.c:901,18'
          Dst:             my_realloc
        - Src:             'glibc-glob.c:912,19'
          Dst:             strlen
        - Src:             'glibc-glob.c:934,7'
          Dst:             __glob_pattern_p
        - Src:             'glibc-glob.c:953,16'
          Dst:             glob_limited
        - Src:             'glibc-glob.c:982,13'
          Dst:             glob_in_dir
        - Src:             'glibc-glob.c:991,8'
          Dst:             globfree
        - Src:             'glibc-glob.c:992,8'
          Dst:             globfree
        - Src:             'glibc-glob.c:997,8'
          Dst:             prefix_array
        - Src:             'glibc-glob.c:1001,8'
          Dst:             globfree
        - Src:             'glibc-glob.c:1002,8'
          Dst:             globfree
        - Src:             'glibc-glob.c:1018,30'
          Dst:             strlen
        - Src:             'glibc-glob.c:1028,15'
          Dst:             my_realloc
        - Src:             'glibc-glob.c:1033,5'
          Dst:             globfree
        - Src:             'glibc-glob.c:1042,22'
          Dst:             strlen
        - Src:             'glibc-glob.c:1048,13'
          Dst:             stat
        - Src:             'glibc-glob.c:1057,9'
          Dst:             globfree
        - Src:             'glibc-glob.c:1058,9'
          Dst:             globfree
        - Src:             'glibc-glob.c:1081,30'
          Dst:             my_realloc
        - Src:             'glibc-glob.c:1089,8'
          Dst:             globfree
        - Src:             'glibc-glob.c:1094,7'
          Dst:             globfree
        - Src:             'glibc-glob.c:1100,16'
          Dst:             glob_in_dir
        - Src:             'glibc-glob.c:1107,8'
          Dst:             prefix_array
        - Src:             'glibc-glob.c:1111,8'
          Dst:             globfree
        - Src:             'glibc-glob.c:1130,10'
          Dst:             stat
        - Src:             'glibc-glob.c:1133,20'
          Dst:             strlen
        - Src:             'glibc-glob.c:1134,18'
          Dst:             my_realloc
        - Src:             'glibc-glob.c:1137,3'
          Dst:             globfree
        - Src:             'glibc-glob.c:1140,6'
          Dst:             strcpy
        - Src:             'glibc-glob.c:1148,7'
          Dst:             qsort
        - Src:             'glibc-glob.c:1148,7'
          Dst:             collated_compare
    - 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:    20
      BranchProfiles:  []
      Callsites:       []
    - functionName:    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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getlogin
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getpwnam
      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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strcpy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    glob
      functionSourceFile: '/src/proftpd/lib/glibc-glob.c'
      linkageType:     externalLinkage
      functionLinenumber: 1159
      functionLinenumberEnd: 1161
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - glob_limited
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'glibc-glob.c:1161,9'
          Dst:             glob_limited
    - functionName:    end_pattern
      functionSourceFile: '/src/proftpd/lib/./pr_fnmatch_loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1036
      functionLinenumberEnd: 1069
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         48
      ICount:          236
      EdgeCount:       64
      CyclomaticComplexity: 18
      functionsReached:
        - end_pattern
        - getenv
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './pr_fnmatch_loop.c:1047,22'
          Dst:             getenv
        - Src:             './pr_fnmatch_loop.c:1064,11'
          Dst:             end_pattern
    - functionName:    ext_match
      functionSourceFile: '/src/proftpd/lib/./pr_fnmatch_loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1076
      functionLinenumberEnd: 1244
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         161
      ICount:          853
      EdgeCount:       211
      CyclomaticComplexity: 52
      functionsReached:
        - getenv
        - internal_fnmatch
        - strcat
        - strlen
      functionUses:    3
      BranchProfiles:
        - Branch String:   './pr_fnmatch_loop.c:1149,3'
          Branch Sides:    []
      Callsites:
        - Src:             './pr_fnmatch_loop.c:1085,24'
          Dst:             strlen
        - Src:             './pr_fnmatch_loop.c:1099,22'
          Dst:             getenv
        - Src:             './pr_fnmatch_loop.c:1152,11'
          Dst:             internal_fnmatch
        - Src:             './pr_fnmatch_loop.c:1162,10'
          Dst:             internal_fnmatch
        - Src:             './pr_fnmatch_loop.c:1167,7'
          Dst:             internal_fnmatch
        - Src:             './pr_fnmatch_loop.c:1175,7'
          Dst:             internal_fnmatch
        - Src:             './pr_fnmatch_loop.c:1191,11'
          Dst:             internal_fnmatch
        - Src:             './pr_fnmatch_loop.c:1201,11'
          Dst:             strcat
        - Src:             './pr_fnmatch_loop.c:1201,6'
          Dst:             internal_fnmatch
        - Src:             './pr_fnmatch_loop.c:1218,10'
          Dst:             internal_fnmatch
        - Src:             './pr_fnmatch_loop.c:1225,12'
          Dst:             internal_fnmatch
    - functionName:    internal_fnmatch
      functionSourceFile: '/src/proftpd/lib/./pr_fnmatch_loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 1030
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         473
      ICount:          2507
      EdgeCount:       640
      CyclomaticComplexity: 169
      functionsReached:
        - __ctype_b_loc
        - end_pattern
        - ext_match
        - getenv
        - internal_fnmatch
        - memchr
        - strcmp
        - tolower
      functionUses:    12
      BranchProfiles:
        - Branch String:   './pr_fnmatch_loop.c:86,7'
          Branch Sides:    []
      Callsites:
        - Src:             './pr_fnmatch_loop.c:84,11'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:84,11'
          Dst:             tolower
        - Src:             './pr_fnmatch_loop.c:93,14'
          Dst:             ext_match
        - Src:             './pr_fnmatch_loop.c:114,12'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:114,12'
          Dst:             tolower
        - Src:             './pr_fnmatch_loop.c:116,27'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:116,27'
          Dst:             tolower
        - Src:             './pr_fnmatch_loop.c:125,14'
          Dst:             ext_match
        - Src:             './pr_fnmatch_loop.c:145,24'
          Dst:             end_pattern
        - Src:             './pr_fnmatch_loop.c:187,13'
          Dst:             memchr
        - Src:             './pr_fnmatch_loop.c:200,15'
          Dst:             memchr
        - Src:             './pr_fnmatch_loop.c:214,11'
          Dst:             internal_fnmatch
        - Src:             './pr_fnmatch_loop.c:223,13'
          Dst:             internal_fnmatch
        - Src:             './pr_fnmatch_loop.c:234,9'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:234,9'
          Dst:             tolower
        - Src:             './pr_fnmatch_loop.c:236,11'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:236,11'
          Dst:             tolower
        - Src:             './pr_fnmatch_loop.c:237,8'
          Dst:             internal_fnmatch
        - Src:             './pr_fnmatch_loop.c:266,26'
          Dst:             getenv
        - Src:             './pr_fnmatch_loop.c:282,11'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:282,11'
          Dst:             tolower
        - Src:             './pr_fnmatch_loop.c:291,11'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:291,11'
          Dst:             tolower
        - Src:             './pr_fnmatch_loop.c:348,12'
          Dst:             strcmp
        - Src:             './pr_fnmatch_loop.c:348,39'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:349,8'
          Dst:             strcmp
        - Src:             './pr_fnmatch_loop.c:349,35'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:350,8'
          Dst:             strcmp
        - Src:             './pr_fnmatch_loop.c:350,35'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:351,8'
          Dst:             strcmp
        - Src:             './pr_fnmatch_loop.c:351,35'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:352,8'
          Dst:             strcmp
        - Src:             './pr_fnmatch_loop.c:352,35'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:353,8'
          Dst:             strcmp
        - Src:             './pr_fnmatch_loop.c:353,35'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:354,8'
          Dst:             strcmp
        - Src:             './pr_fnmatch_loop.c:354,35'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:355,8'
          Dst:             strcmp
        - Src:             './pr_fnmatch_loop.c:355,35'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:356,8'
          Dst:             strcmp
        - Src:             './pr_fnmatch_loop.c:356,35'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:357,8'
          Dst:             strcmp
        - Src:             './pr_fnmatch_loop.c:357,35'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:358,8'
          Dst:             strcmp
        - Src:             './pr_fnmatch_loop.c:358,35'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:359,8'
          Dst:             strcmp
        - Src:             './pr_fnmatch_loop.c:359,36'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:652,8'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:652,8'
          Dst:             tolower
        - Src:             './pr_fnmatch_loop.c:996,14'
          Dst:             ext_match
        - Src:             './pr_fnmatch_loop.c:1014,32'
          Dst:             __ctype_b_loc
        - Src:             './pr_fnmatch_loop.c:1014,32'
          Dst:             tolower
    - functionName:    strcat
      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:    pr_fnmatch
      functionSourceFile: '/src/proftpd/lib/pr_fnmatch.c'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 448
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - internal_fnmatch
        - strlen
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'pr_fnmatch.c:447,54'
          Dst:             strlen
        - Src:             'pr_fnmatch.c:447,10'
          Dst:             internal_fnmatch
    - functionName:    pr_setlogfacility
      functionSourceFile: '/src/proftpd/lib/pr-syslog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_setlogmask
      functionSourceFile: '/src/proftpd/lib/pr-syslog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_closelog
      functionSourceFile: '/src/proftpd/lib/pr-syslog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - close
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'pr-syslog.c:382,3'
          Dst:             close
    - functionName:    pr_openlog
      functionSourceFile: '/src/proftpd/lib/pr-syslog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 379
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          167
      EdgeCount:       43
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - close
        - connect
        - fcntl
        - socket
        - sstrncpy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'pr-syslog.c:338,7'
          Dst:             sstrncpy
        - Src:             'pr-syslog.c:343,18'
          Dst:             socket
        - Src:             'pr-syslog.c:348,16'
          Dst:             fcntl
        - Src:             'pr-syslog.c:353,23'
          Dst:             __errno_location
        - Src:             'pr-syslog.c:355,11'
          Dst:             connect
        - Src:             'pr-syslog.c:356,27'
          Dst:             __errno_location
        - Src:             'pr-syslog.c:357,9'
          Dst:             close
        - Src:             'pr-syslog.c:363,11'
          Dst:             __errno_location
    - functionName:    pr_vsyslog
      functionSourceFile: '/src/proftpd/lib/pr-syslog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          311
      EdgeCount:       57
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - ctime_r
        - fprintf
        - getpid
        - send
        - snprintf
        - strerror
        - strlen
        - time
        - vsnprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pr-syslog.c:109,30'
          Dst:             __errno_location
        - Src:             'pr-syslog.c:144,9'
          Dst:             snprintf
        - Src:             'pr-syslog.c:153,3'
          Dst:             time
        - Src:             'pr-syslog.c:156,13'
          Dst:             ctime_r
        - Src:             'pr-syslog.c:170,11'
          Dst:             strlen
        - Src:             'pr-syslog.c:175,9'
          Dst:             snprintf
        - Src:             'pr-syslog.c:180,3'
          Dst:             time
        - Src:             'pr-syslog.c:192,11'
          Dst:             snprintf
        - Src:             'pr-syslog.c:200,13'
          Dst:             getpid
        - Src:             'pr-syslog.c:199,11'
          Dst:             snprintf
        - Src:             'pr-syslog.c:207,11'
          Dst:             snprintf
        - Src:             'pr-syslog.c:257,3'
          Dst:             __errno_location
        - Src:             'pr-syslog.c:261,11'
          Dst:             vsnprintf
        - Src:             'pr-syslog.c:284,7'
          Dst:             send
        - Src:             'pr-syslog.c:286,32'
          Dst:             __errno_location
        - Src:             'pr-syslog.c:286,23'
          Dst:             strerror
        - Src:             'pr-syslog.c:285,5'
          Dst:             fprintf
    - functionName:    send
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_syslog
      functionSourceFile: '/src/proftpd/lib/pr-syslog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_vsyslog
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'pr-syslog.c:310,3'
          Dst:             pr_vsyslog
    - functionName:    to_surrogate_pair
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 349
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:344,2'
          Dst:             __assert_fail
    - functionName:    write_hex16
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1350
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          57
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    utf8_read_char
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          141
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - utf8_validate_cz
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:253,2'
          Dst:             utf8_validate_cz
        - Src:             'ccan-json.c:253,2'
          Dst:             __assert_fail
    - functionName:    utf8_validate_cz
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         44
      ICount:          249
      EdgeCount:       62
      CyclomaticComplexity: 20
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    emit_object_indented
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1126
      functionLinenumberEnd: 1149
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          130
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - emit_string
        - emit_value_indented
        - sb_grow
        - sb_puts
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:1131,3'
          Dst:             sb_puts
        - Src:             'ccan-json.c:1135,2'
          Dst:             sb_puts
        - Src:             'ccan-json.c:1138,4'
          Dst:             sb_puts
        - Src:             'ccan-json.c:1139,3'
          Dst:             emit_string
        - Src:             'ccan-json.c:1140,3'
          Dst:             sb_puts
        - Src:             'ccan-json.c:1141,3'
          Dst:             emit_value_indented
        - Src:             'ccan-json.c:1144,3'
          Dst:             sb_puts
        - Src:             'ccan-json.c:1147,3'
          Dst:             sb_puts
        - Src:             'ccan-json.c:1148,2'
          Dst:             sb_grow
    - functionName:    sb_puts
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sb_put
        - strlen
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:117,18'
          Dst:             strlen
        - Src:             'ccan-json.c:117,2'
          Dst:             sb_put
    - functionName:    emit_string
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1152
      functionLinenumberEnd: 1262
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          339
      EdgeCount:       48
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - sb_grow
        - to_surrogate_pair
        - utf8_read_char
        - utf8_validate
        - utf8_validate_cz
        - write_hex16
      functionUses:    5
      BranchProfiles:
        - Branch String:   'ccan-json.c:1170,3'
          Branch Sides:    []
      Callsites:
        - Src:             'ccan-json.c:1156,2'
          Dst:             utf8_validate
        - Src:             'ccan-json.c:1156,2'
          Dst:             __assert_fail
        - Src:             'ccan-json.c:1162,2'
          Dst:             sb_grow
        - Src:             'ccan-json.c:1203,11'
          Dst:             utf8_validate_cz
        - Src:             'ccan-json.c:1214,6'
          Dst:             __assert_fail
        - Src:             'ccan-json.c:1223,11'
          Dst:             utf8_read_char
        - Src:             'ccan-json.c:1228,12'
          Dst:             write_hex16
        - Src:             'ccan-json.c:1232,7'
          Dst:             __assert_fail
        - Src:             'ccan-json.c:1233,7'
          Dst:             to_surrogate_pair
        - Src:             'ccan-json.c:1236,12'
          Dst:             write_hex16
        - Src:             'ccan-json.c:1239,12'
          Dst:             write_hex16
        - Src:             'ccan-json.c:1256,3'
          Dst:             sb_grow
    - functionName:    emit_value_indented
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1047
      functionLinenumberEnd: 1071
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       26
      CyclomaticComplexity: 14
      functionsReached:
        - __assert_fail
        - emit_array_indented
        - emit_number
        - emit_object_indented
        - emit_string
        - sb_puts
        - tag_is_valid
      functionUses:    3
      BranchProfiles:
        - Branch String:   'ccan-json.c:1049,2'
          Branch Sides:    []
      Callsites:
        - Src:             'ccan-json.c:1048,2'
          Dst:             tag_is_valid
        - Src:             'ccan-json.c:1048,2'
          Dst:             __assert_fail
        - Src:             'ccan-json.c:1051,4'
          Dst:             sb_puts
        - Src:             'ccan-json.c:1054,4'
          Dst:             sb_puts
        - Src:             'ccan-json.c:1057,4'
          Dst:             emit_string
        - Src:             'ccan-json.c:1060,4'
          Dst:             emit_number
        - Src:             'ccan-json.c:1063,4'
          Dst:             emit_array_indented
        - Src:             'ccan-json.c:1066,4'
          Dst:             emit_object_indented
        - Src:             'ccan-json.c:1069,4'
          Dst:             __assert_fail
    - functionName:    sb_grow
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          95
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - realloc
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:95,22'
          Dst:             realloc
    - functionName:    default_oom
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - exit
        - fprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:44,2'
          Dst:             fprintf
        - Src:             'ccan-json.c:45,2'
          Dst:             exit
    - functionName:    tag_is_valid
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1283
      functionLinenumberEnd: 1284
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    emit_number
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1265
      functionLinenumberEnd: 1280
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - number_is_valid
        - sb_puts
        - snprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:1273,2'
          Dst:             snprintf
        - Src:             'ccan-json.c:1276,6'
          Dst:             number_is_valid
        - Src:             'ccan-json.c:1277,3'
          Dst:             sb_puts
        - Src:             'ccan-json.c:1279,3'
          Dst:             sb_puts
    - functionName:    emit_array_indented
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1087
      functionLinenumberEnd: 1108
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          123
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - emit_value_indented
        - sb_grow
        - sb_puts
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:1092,3'
          Dst:             sb_puts
        - Src:             'ccan-json.c:1096,2'
          Dst:             sb_puts
        - Src:             'ccan-json.c:1099,4'
          Dst:             sb_puts
        - Src:             'ccan-json.c:1100,3'
          Dst:             emit_value_indented
        - Src:             'ccan-json.c:1103,3'
          Dst:             sb_puts
        - Src:             'ccan-json.c:1106,3'
          Dst:             sb_puts
        - Src:             'ccan-json.c:1107,2'
          Dst:             sb_grow
    - functionName:    number_is_valid
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1288
      functionLinenumberEnd: 1289
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - parse_number
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:1289,10'
          Dst:             parse_number
    - functionName:    parse_number
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 964
      functionLinenumberEnd: 1009
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         64
      ICount:          308
      EdgeCount:       84
      CyclomaticComplexity: 22
      functionsReached:
        - strtod
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:1005,10'
          Dst:             strtod
    - functionName:    strtod
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    utf8_validate
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          50
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - utf8_validate_cz
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:234,9'
          Dst:             utf8_validate_cz
    - functionName:    sb_put
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          61
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - sb_grow
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:104,2'
          Dst:             sb_grow
    - functionName:    emit_object
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1111
      functionLinenumberEnd: 1123
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          160
      EdgeCount:       36
      CyclomaticComplexity: 8
      functionsReached:
        - emit_string
        - emit_value
        - json_first_child
        - sb_grow
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:1114,2'
          Dst:             sb_grow
        - Src:             'ccan-json.c:1115,2'
          Dst:             json_first_child
        - Src:             'ccan-json.c:1116,3'
          Dst:             emit_string
        - Src:             'ccan-json.c:1117,3'
          Dst:             sb_grow
        - Src:             'ccan-json.c:1118,3'
          Dst:             emit_value
        - Src:             'ccan-json.c:1120,4'
          Dst:             sb_grow
        - Src:             'ccan-json.c:1122,2'
          Dst:             sb_grow
    - functionName:    json_first_child
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          47
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    emit_value
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1020
      functionLinenumberEnd: 1044
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          90
      EdgeCount:       26
      CyclomaticComplexity: 14
      functionsReached:
        - __assert_fail
        - emit_array
        - emit_number
        - emit_object
        - emit_string
        - sb_puts
        - tag_is_valid
      functionUses:    3
      BranchProfiles:
        - Branch String:   'ccan-json.c:1022,2'
          Branch Sides:    []
      Callsites:
        - Src:             'ccan-json.c:1021,2'
          Dst:             tag_is_valid
        - Src:             'ccan-json.c:1021,2'
          Dst:             __assert_fail
        - Src:             'ccan-json.c:1024,4'
          Dst:             sb_puts
        - Src:             'ccan-json.c:1027,4'
          Dst:             sb_puts
        - Src:             'ccan-json.c:1030,4'
          Dst:             emit_string
        - Src:             'ccan-json.c:1033,4'
          Dst:             emit_number
        - Src:             'ccan-json.c:1036,4'
          Dst:             emit_array
        - Src:             'ccan-json.c:1039,4'
          Dst:             emit_object
        - Src:             'ccan-json.c:1042,4'
          Dst:             __assert_fail
    - functionName:    emit_array
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1074
      functionLinenumberEnd: 1084
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          129
      EdgeCount:       30
      CyclomaticComplexity: 7
      functionsReached:
        - emit_value
        - json_first_child
        - sb_grow
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:1077,2'
          Dst:             sb_grow
        - Src:             'ccan-json.c:1078,2'
          Dst:             json_first_child
        - Src:             'ccan-json.c:1079,3'
          Dst:             emit_value
        - Src:             'ccan-json.c:1081,4'
          Dst:             sb_grow
        - Src:             'ccan-json.c:1083,2'
          Dst:             sb_grow
    - functionName:    utf8_write_char
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          164
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:292,2'
          Dst:             __assert_fail
    - functionName:    from_surrogate_pair
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 333
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - short
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_hex16
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1309
      functionLinenumberEnd: 1335
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          157
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_object
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 780
      functionLinenumberEnd: 836
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          213
      EdgeCount:       53
      CyclomaticComplexity: 15
      functionsReached:
        - append_member
        - json_delete
        - json_mkobject
        - parse_string
        - parse_value
        - skip_space
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:782,24'
          Dst:             json_mkobject
        - Src:             'ccan-json.c:789,2'
          Dst:             skip_space
        - Src:             'ccan-json.c:797,8'
          Dst:             parse_string
        - Src:             'ccan-json.c:799,3'
          Dst:             skip_space
        - Src:             'ccan-json.c:803,3'
          Dst:             skip_space
        - Src:             'ccan-json.c:805,8'
          Dst:             parse_value
        - Src:             'ccan-json.c:807,3'
          Dst:             skip_space
        - Src:             'ccan-json.c:810,4'
          Dst:             append_member
        - Src:             'ccan-json.c:819,3'
          Dst:             skip_space
        - Src:             'ccan-json.c:834,2'
          Dst:             json_delete
    - functionName:    json_mkobject
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 567
      functionLinenumberEnd: 568
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mknode
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:568,9'
          Dst:             mknode
    - functionName:    skip_space
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1012
      functionLinenumberEnd: 1017
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_string
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 839
      functionLinenumberEnd: 951
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         75
      ICount:          391
      EdgeCount:       94
      CyclomaticComplexity: 21
      functionsReached:
        - from_surrogate_pair
        - parse_hex16
        - sb_finish
        - sb_free
        - sb_grow
        - sb_init
        - utf8_validate_cz
        - utf8_write_char
      functionUses:    2
      BranchProfiles:
        - Branch String:   'ccan-json.c:863,4'
          Branch Sides:    []
      Callsites:
        - Src:             'ccan-json.c:850,3'
          Dst:             sb_init
        - Src:             'ccan-json.c:851,3'
          Dst:             sb_grow
        - Src:             'ccan-json.c:889,11'
          Dst:             parse_hex16
        - Src:             'ccan-json.c:894,43'
          Dst:             parse_hex16
        - Src:             'ccan-json.c:896,12'
          Dst:             from_surrogate_pair
        - Src:             'ccan-json.c:905,11'
          Dst:             utf8_write_char
        - Src:             'ccan-json.c:920,10'
          Dst:             utf8_validate_cz
        - Src:             'ccan-json.c:934,4'
          Dst:             sb_grow
        - Src:             'ccan-json.c:943,10'
          Dst:             sb_finish
        - Src:             'ccan-json.c:949,3'
          Dst:             sb_free
    - functionName:    parse_value
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 659
      functionLinenumberEnd: 730
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          244
      EdgeCount:       62
      CyclomaticComplexity: 16
      functionsReached:
        - expect_literal
        - json_mkbool
        - json_mknull
        - json_mknumber
        - mkstring
        - parse_array
        - parse_number
        - parse_object
        - parse_string
      functionUses:    4
      BranchProfiles:
        - Branch String:   'ccan-json.c:666,2'
          Branch Sides:    []
      Callsites:
        - Src:             'ccan-json.c:668,8'
          Dst:             expect_literal
        - Src:             'ccan-json.c:670,13'
          Dst:             json_mknull
        - Src:             'ccan-json.c:677,8'
          Dst:             expect_literal
        - Src:             'ccan-json.c:679,13'
          Dst:             json_mkbool
        - Src:             'ccan-json.c:686,8'
          Dst:             expect_literal
        - Src:             'ccan-json.c:688,13'
          Dst:             json_mkbool
        - Src:             'ccan-json.c:696,8'
          Dst:             parse_string
        - Src:             'ccan-json.c:698,13'
          Dst:             mkstring
        - Src:             'ccan-json.c:706,8'
          Dst:             parse_array
        - Src:             'ccan-json.c:713,8'
          Dst:             parse_object
        - Src:             'ccan-json.c:721,8'
          Dst:             parse_number
        - Src:             'ccan-json.c:723,13'
          Dst:             json_mknumber
    - functionName:    append_member
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 598
      functionLinenumberEnd: 601
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - append_node
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:600,2'
          Dst:             append_node
    - functionName:    json_delete
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          79
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - json_delete
        - json_remove_from_parent
      functionUses:    10
      BranchProfiles:
        - Branch String:   'ccan-json.c:445,3'
          Branch Sides:    []
      Callsites:
        - Src:             'ccan-json.c:443,3'
          Dst:             json_remove_from_parent
        - Src:             'ccan-json.c:455,6'
          Dst:             json_delete
    - functionName:    json_remove_from_parent
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 637
      functionLinenumberEnd: 656
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          98
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    append_node
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 572
      functionLinenumberEnd: 582
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          53
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    expect_literal
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1293
      functionLinenumberEnd: 1302
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          50
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_mknull
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 532
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mknode
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:532,9'
          Dst:             mknode
    - functionName:    json_mkbool
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 539
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mknode
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:537,18'
          Dst:             mknode
    - functionName:    mkstring
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 546
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mknode
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:544,18'
          Dst:             mknode
    - functionName:    parse_array
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 733
      functionLinenumberEnd: 777
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          163
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - json_append_element
        - json_delete
        - json_mkarray
        - parse_value
        - skip_space
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:735,24'
          Dst:             json_mkarray
        - Src:             'ccan-json.c:741,2'
          Dst:             skip_space
        - Src:             'ccan-json.c:749,8'
          Dst:             parse_value
        - Src:             'ccan-json.c:751,3'
          Dst:             skip_space
        - Src:             'ccan-json.c:754,4'
          Dst:             json_append_element
        - Src:             'ccan-json.c:763,3'
          Dst:             skip_space
        - Src:             'ccan-json.c:775,2'
          Dst:             json_delete
    - functionName:    json_mknumber
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 555
      functionLinenumberEnd: 558
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - double
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mknode
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:556,19'
          Dst:             mknode
    - functionName:    mknode
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 520
      functionLinenumberEnd: 528
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:521,30'
          Dst:             calloc
    - functionName:    json_mkarray
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 562
      functionLinenumberEnd: 563
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mknode
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:563,9'
          Dst:             mknode
    - functionName:    json_append_element
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 604
      functionLinenumberEnd: 609
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - append_node
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:605,2'
          Dst:             __assert_fail
        - Src:             'ccan-json.c:606,2'
          Dst:             __assert_fail
        - Src:             'ccan-json.c:608,2'
          Dst:             append_node
    - functionName:    sb_init
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sb_finish
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:123,2'
          Dst:             strlen
        - Src:             'ccan-json.c:123,2'
          Dst:             __assert_fail
    - functionName:    sb_free
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_check
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1354
      functionLinenumberEnd: 1421
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         166
      ICount:          608
      EdgeCount:       211
      CyclomaticComplexity: 47
      functionsReached:
        - json_check
        - snprintf
        - tag_is_valid
        - utf8_validate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:1361,28'
          Dst:             utf8_validate
        - Src:             'ccan-json.c:1362,3'
          Dst:             snprintf
        - Src:             'ccan-json.c:1364,7'
          Dst:             tag_is_valid
        - Src:             'ccan-json.c:1365,3'
          Dst:             snprintf
        - Src:             'ccan-json.c:1369,4'
          Dst:             snprintf
        - Src:             'ccan-json.c:1372,4'
          Dst:             snprintf
        - Src:             'ccan-json.c:1373,8'
          Dst:             utf8_validate
        - Src:             'ccan-json.c:1374,4'
          Dst:             snprintf
        - Src:             'ccan-json.c:1381,5'
          Dst:             snprintf
        - Src:             'ccan-json.c:1383,5'
          Dst:             snprintf
        - Src:             'ccan-json.c:1389,5'
          Dst:             snprintf
        - Src:             'ccan-json.c:1393,6'
          Dst:             snprintf
        - Src:             'ccan-json.c:1395,6'
          Dst:             snprintf
        - Src:             'ccan-json.c:1397,6'
          Dst:             snprintf
        - Src:             'ccan-json.c:1400,6'
          Dst:             snprintf
        - Src:             'ccan-json.c:1402,6'
          Dst:             snprintf
        - Src:             'ccan-json.c:1405,6'
          Dst:             snprintf
        - Src:             'ccan-json.c:1407,6'
          Dst:             snprintf
        - Src:             'ccan-json.c:1409,10'
          Dst:             json_check
        - Src:             'ccan-json.c:1414,5'
          Dst:             snprintf
    - functionName:    json_prepend_member
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 628
      functionLinenumberEnd: 634
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - json_strdup
        - prepend_node
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:629,2'
          Dst:             __assert_fail
        - Src:             'ccan-json.c:630,2'
          Dst:             __assert_fail
        - Src:             'ccan-json.c:632,15'
          Dst:             json_strdup
        - Src:             'ccan-json.c:633,2'
          Dst:             prepend_node
    - functionName:    json_strdup
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strcpy
        - strlen
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:53,29'
          Dst:             strlen
        - Src:             'ccan-json.c:58,2'
          Dst:             strcpy
    - functionName:    prepend_node
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 585
      functionLinenumberEnd: 595
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          53
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_append_member
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 620
      functionLinenumberEnd: 625
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - append_member
        - json_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:621,2'
          Dst:             __assert_fail
        - Src:             'ccan-json.c:622,2'
          Dst:             __assert_fail
        - Src:             'ccan-json.c:624,24'
          Dst:             json_strdup
        - Src:             'ccan-json.c:624,2'
          Dst:             append_member
    - functionName:    json_prepend_element
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 617
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - prepend_node
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:613,2'
          Dst:             __assert_fail
        - Src:             'ccan-json.c:614,2'
          Dst:             __assert_fail
        - Src:             'ccan-json.c:616,2'
          Dst:             prepend_node
    - functionName:    json_mkstring
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 550
      functionLinenumberEnd: 551
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_strdup
        - mkstring
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:551,18'
          Dst:             json_strdup
        - Src:             'ccan-json.c:551,9'
          Dst:             mkstring
    - functionName:    json_find_member
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 510
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          72
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - json_first_child
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:505,2'
          Dst:             json_first_child
        - Src:             'ccan-json.c:506,7'
          Dst:             strcmp
    - functionName:    json_find_element
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          74
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - json_first_child
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:489,2'
          Dst:             json_first_child
    - functionName:    json_validate
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 479
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          45
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - parse_value
        - skip_space
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:470,2'
          Dst:             skip_space
        - Src:             'ccan-json.c:471,7'
          Dst:             parse_value
        - Src:             'ccan-json.c:474,2'
          Dst:             skip_space
    - functionName:    json_encode_string
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - emit_string
        - json_strdup
        - sb_finish
        - sb_free
        - sb_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:415,2'
          Dst:             sb_init
        - Src:             'ccan-json.c:417,2'
          Dst:             emit_string
        - Src:             'ccan-json.c:419,28'
          Dst:             sb_finish
        - Src:             'ccan-json.c:419,16'
          Dst:             json_strdup
        - Src:             'ccan-json.c:420,2'
          Dst:             sb_free
    - functionName:    json_stringify
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - emit_value
        - emit_value_indented
        - json_strdup
        - sb_finish
        - sb_free
        - sb_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:428,2'
          Dst:             sb_init
        - Src:             'ccan-json.c:431,3'
          Dst:             emit_value_indented
        - Src:             'ccan-json.c:433,3'
          Dst:             emit_value
        - Src:             'ccan-json.c:435,20'
          Dst:             sb_finish
        - Src:             'ccan-json.c:435,8'
          Dst:             json_strdup
        - Src:             'ccan-json.c:436,2'
          Dst:             sb_free
    - functionName:    json_encode
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 408
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_stringify
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:408,9'
          Dst:             json_stringify
    - functionName:    json_decode
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 389
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - json_delete
        - parse_value
        - skip_space
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'ccan-json.c:393,2'
          Dst:             skip_space
        - Src:             'ccan-json.c:394,7'
          Dst:             parse_value
        - Src:             'ccan-json.c:397,2'
          Dst:             skip_space
        - Src:             'ccan-json.c:399,3'
          Dst:             json_delete
    - functionName:    json_set_oom
      functionSourceFile: '/src/proftpd/lib/ccan-json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 386
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          20
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    facts_sess_reinit_ev
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2092
      functionLinenumberEnd: 2113
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - facts_mlst_feat_remove
        - facts_sess_init
        - facts_sess_reinit_ev
        - pr_event_unregister
        - pr_feat_remove
        - pr_session_disconnect
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:2097,3'
          Dst:             pr_event_unregister
        - Src:             'mod_facts.c:2097,3'
          Dst:             facts_sess_reinit_ev
        - Src:             'mod_facts.c:2103,3'
          Dst:             pr_feat_remove
        - Src:             'mod_facts.c:2104,3'
          Dst:             pr_feat_remove
        - Src:             'mod_facts.c:2105,3'
          Dst:             pr_feat_remove
        - Src:             'mod_facts.c:2106,3'
          Dst:             facts_mlst_feat_remove
        - Src:             'mod_facts.c:2108,9'
          Dst:             facts_sess_init
        - Src:             'mod_facts.c:2110,5'
          Dst:             pr_session_disconnect
    - functionName:    facts_mlst_feat_remove
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 866
      functionLinenumberEnd: 884
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         12
      ICount:          54
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - pr_feat_get
        - pr_feat_get_next
        - pr_feat_remove
        - pr_signals_handle
        - strncmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:869,10'
          Dst:             pr_feat_get
        - Src:             'mod_facts.c:871,5'
          Dst:             pr_signals_handle
        - Src:             'mod_facts.c:873,9'
          Dst:             strncmp
        - Src:             'mod_facts.c:878,12'
          Dst:             pr_feat_get_next
        - Src:             'mod_facts.c:882,5'
          Dst:             pr_feat_remove
    - functionName:    facts_sess_init
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2125
      functionLinenumberEnd: 2184
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         24
      ICount:          158
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - facts_mlst_feat_add
        - facts_sess_reinit_ev
        - find_config
        - find_config_next
        - pr_event_register
        - pr_feat_add
        - pr_module_exists
        - pr_signals_handle
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:2129,3'
          Dst:             pr_event_register
        - Src:             'mod_facts.c:2129,3'
          Dst:             facts_sess_reinit_ev
        - Src:             'mod_facts.c:2134,7'
          Dst:             find_config
        - Src:             'mod_facts.c:2143,7'
          Dst:             find_config
        - Src:             'mod_facts.c:2148,7'
          Dst:             find_config
        - Src:             'mod_facts.c:2152,5'
          Dst:             pr_signals_handle
        - Src:             'mod_facts.c:2157,9'
          Dst:             find_config_next
        - Src:             'mod_facts.c:2160,7'
          Dst:             pr_module_exists
        - Src:             'mod_facts.c:2166,9'
          Dst:             find_config
        - Src:             'mod_facts.c:2177,3'
          Dst:             pr_feat_add
        - Src:             'mod_facts.c:2178,3'
          Dst:             pr_feat_add
        - Src:             'mod_facts.c:2179,3'
          Dst:             pr_feat_add
        - Src:             'mod_facts.c:2181,3'
          Dst:             facts_mlst_feat_add
    - functionName:    facts_mlst_feat_add
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 767
      functionLinenumberEnd: 864
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         44
      ICount:          317
      EdgeCount:       58
      CyclomaticComplexity: 16
      functionsReached:
        - pr_feat_add
        - pr_module_exists
        - pstrcat
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:770,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:772,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:775,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:778,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:780,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:783,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:786,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:788,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:791,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:794,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:796,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:799,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:802,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:804,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:807,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:810,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:812,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:815,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:819,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:821,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:824,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:828,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:830,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:833,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:836,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:838,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:841,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:845,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:847,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:850,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:857,7'
          Dst:             pr_module_exists
        - Src:             'mod_facts.c:859,16'
          Dst:             pstrcat
        - Src:             'mod_facts.c:862,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:863,3'
          Dst:             pr_feat_add
    - functionName:    facts_init
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2118
      functionLinenumberEnd: 2122
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_help_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:2119,3'
          Dst:             pr_help_add
        - Src:             'mod_facts.c:2120,3'
          Dst:             pr_help_add
    - functionName:    facts_mff
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1080
      functionLinenumberEnd: 1308
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         47
      ICount:          554
      EdgeCount:       66
      CyclomaticComplexity: 21
      functionsReached:
        - __errno_location
        - dir_canonical_path
        - dir_check
        - facts_filters_allow_path
        - facts_modify_mtime
        - facts_modify_unix_group
        - facts_modify_unix_mode
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_fs_decode_path2
        - pr_log_debug
        - pr_response_add
        - pr_response_add_err
        - pr_signals_handle
        - pstrdup
        - strchr
        - strerror
        - strlen
        - strncasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:1085,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1087,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1088,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1089,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1098,9'
          Dst:             strchr
        - Src:             'mod_facts.c:1100,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1102,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1103,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1104,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1107,10'
          Dst:             pstrdup
        - Src:             'mod_facts.c:1109,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_facts.c:1112,18'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1115,7'
          Dst:             strerror
        - Src:             'mod_facts.c:1114,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1116,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1119,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1120,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1121,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1124,16'
          Dst:             dir_canonical_path
        - Src:             'mod_facts.c:1128,52'
          Dst:             strerror
        - Src:             'mod_facts.c:1128,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1130,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1131,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1132,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1135,8'
          Dst:             dir_check
        - Src:             'mod_facts.c:1136,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1138,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1140,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1141,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1142,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1145,7'
          Dst:             facts_filters_allow_path
        - Src:             'mod_facts.c:1148,48'
          Dst:             strerror
        - Src:             'mod_facts.c:1148,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1150,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1151,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1152,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1155,9'
          Dst:             strchr
        - Src:             'mod_facts.c:1159,49'
          Dst:             strerror
        - Src:             'mod_facts.c:1159,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1161,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1162,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1163,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1167,5'
          Dst:             pr_signals_handle
        - Src:             'mod_facts.c:1171,9'
          Dst:             strncasecmp
        - Src:             'mod_facts.c:1176,14'
          Dst:             strchr
        - Src:             'mod_facts.c:1181,11'
          Dst:             strerror
        - Src:             'mod_facts.c:1180,9'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1183,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1184,9'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1185,16'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1190,11'
          Dst:             strlen
        - Src:             'mod_facts.c:1193,57'
          Dst:             strerror
        - Src:             'mod_facts.c:1193,9'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1195,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1196,9'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1197,16'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1200,14'
          Dst:             strchr
        - Src:             'mod_facts.c:1202,9'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1208,11'
          Dst:             facts_modify_mtime
        - Src:             'mod_facts.c:1209,22'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1212,11'
          Dst:             strerror
        - Src:             'mod_facts.c:1211,9'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1214,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1215,9'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1216,16'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1219,16'
          Dst:             strncasecmp
        - Src:             'mod_facts.c:1224,14'
          Dst:             strchr
        - Src:             'mod_facts.c:1230,11'
          Dst:             strerror
        - Src:             'mod_facts.c:1229,9'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1232,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1233,9'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1234,16'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1239,11'
          Dst:             facts_modify_unix_group
        - Src:             'mod_facts.c:1240,22'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1243,11'
          Dst:             strerror
        - Src:             'mod_facts.c:1242,9'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1245,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1246,9'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1247,16'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1250,16'
          Dst:             strncasecmp
        - Src:             'mod_facts.c:1255,14'
          Dst:             strchr
        - Src:             'mod_facts.c:1257,22'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1261,11'
          Dst:             strerror
        - Src:             'mod_facts.c:1260,9'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1263,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1264,9'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1265,16'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1270,11'
          Dst:             facts_modify_unix_mode
        - Src:             'mod_facts.c:1271,22'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1274,11'
          Dst:             strerror
        - Src:             'mod_facts.c:1273,9'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1276,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1277,9'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1278,16'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1285,7'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1288,7'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1292,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1293,7'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1294,14'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1299,11'
          Dst:             strchr
        - Src:             'mod_facts.c:1306,3'
          Dst:             pr_response_add
        - Src:             'mod_facts.c:1307,10'
          Dst:             mod_create_ret
    - functionName:    facts_mfmt
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1310
      functionLinenumberEnd: 1434
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          303
      EdgeCount:       40
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - dir_canonical_path
        - dir_check
        - facts_filters_allow_path
        - facts_modify_mtime
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_fs_decode_path2
        - pr_log_debug
        - pr_response_add
        - pr_response_add_err
        - pstrdup
        - strchr
        - strerror
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:1316,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1318,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1319,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1320,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1329,9'
          Dst:             strchr
        - Src:             'mod_facts.c:1331,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1333,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1334,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1335,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1338,10'
          Dst:             pstrdup
        - Src:             'mod_facts.c:1340,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_facts.c:1343,18'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1346,7'
          Dst:             strerror
        - Src:             'mod_facts.c:1345,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1347,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1350,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1351,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1352,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1355,16'
          Dst:             dir_canonical_path
        - Src:             'mod_facts.c:1359,52'
          Dst:             strerror
        - Src:             'mod_facts.c:1359,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1361,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1362,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1363,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1366,8'
          Dst:             dir_check
        - Src:             'mod_facts.c:1367,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1369,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1371,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1372,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1373,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1376,7'
          Dst:             facts_filters_allow_path
        - Src:             'mod_facts.c:1379,48'
          Dst:             strerror
        - Src:             'mod_facts.c:1379,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1381,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1382,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1383,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1386,7'
          Dst:             strlen
        - Src:             'mod_facts.c:1389,53'
          Dst:             strerror
        - Src:             'mod_facts.c:1389,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1391,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1392,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1393,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1396,9'
          Dst:             strchr
        - Src:             'mod_facts.c:1398,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1404,9'
          Dst:             facts_modify_mtime
        - Src:             'mod_facts.c:1406,18'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1413,7'
          Dst:             strerror
        - Src:             'mod_facts.c:1412,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1415,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1416,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1417,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1427,3'
          Dst:             pr_response_add
        - Src:             'mod_facts.c:1433,10'
          Dst:             mod_create_ret
    - functionName:    facts_mlsd
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1436
      functionLinenumberEnd: 1700
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         101
      ICount:          759
      EdgeCount:       138
      CyclomaticComplexity: 39
      functionsReached:
        - __errno_location
        - destroy_pool
        - dir_best_path
        - dir_canonical_path
        - dir_check
        - dir_check_canon
        - dir_realpath
        - facts_mlinfo_get
        - facts_mlinfobuf_add
        - facts_mlinfobuf_flush
        - facts_mlinfobuf_init
        - find_config
        - get_dir_ctxt
        - get_param_ptr
        - make_sub_pool
        - mod_create_ret
        - pdircat
        - pr_auth_name2gid
        - pr_auth_name2uid
        - pr_cmd_set_errno
        - pr_data_abort
        - pr_data_close2
        - pr_data_open
        - pr_fs_decode_path2
        - pr_fs_encode_path
        - pr_fs_getcwd
        - pr_fsio_closedir
        - pr_fsio_opendir
        - pr_fsio_readdir
        - pr_fsio_stat
        - pr_gid2str
        - pr_log_debug
        - pr_pool_tag
        - pr_response_add
        - pr_response_add_err
        - pr_signals_handle
        - pr_trace_msg
        - pr_uid2str
        - pstrdup
        - strcmp
        - strerror
        - strpbrk
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:1450,12'
          Dst:             pstrdup
        - Src:             'mod_facts.c:1452,20'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_facts.c:1455,20'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1458,9'
          Dst:             strerror
        - Src:             'mod_facts.c:1457,7'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1459,7'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1462,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1463,7'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1464,14'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1468,27'
          Dst:             pr_fs_getcwd
        - Src:             'mod_facts.c:1471,8'
          Dst:             dir_check
        - Src:             'mod_facts.c:1472,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1474,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1476,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1477,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1478,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1485,7'
          Dst:             strpbrk
        - Src:             'mod_facts.c:1486,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1491,7'
          Dst:             pr_fsio_stat
        - Src:             'mod_facts.c:1492,18'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1495,35'
          Dst:             strerror
        - Src:             'mod_facts.c:1494,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1497,48'
          Dst:             strerror
        - Src:             'mod_facts.c:1497,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1499,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1500,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1501,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1505,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1507,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1508,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1509,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1513,9'
          Dst:             get_param_ptr
        - Src:             'mod_facts.c:1532,15'
          Dst:             dir_best_path
        - Src:             'mod_facts.c:1534,29'
          Dst:             get_dir_ctxt
        - Src:             'mod_facts.c:1534,15'
          Dst:             get_param_ptr
        - Src:             'mod_facts.c:1537,19'
          Dst:             get_dir_ctxt
        - Src:             'mod_facts.c:1537,7'
          Dst:             find_config
        - Src:             'mod_facts.c:1543,11'
          Dst:             strcmp
        - Src:             'mod_facts.c:1544,20'
          Dst:             pr_auth_name2uid
        - Src:             'mod_facts.c:1558,19'
          Dst:             get_dir_ctxt
        - Src:             'mod_facts.c:1558,7'
          Dst:             find_config
        - Src:             'mod_facts.c:1564,11'
          Dst:             strcmp
        - Src:             'mod_facts.c:1565,20'
          Dst:             pr_auth_name2gid
        - Src:             'mod_facts.c:1579,10'
          Dst:             pr_fsio_opendir
        - Src:             'mod_facts.c:1581,18'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1585,7'
          Dst:             pr_uid2str
        - Src:             'mod_facts.c:1586,7'
          Dst:             pr_gid2str
        - Src:             'mod_facts.c:1587,18'
          Dst:             strerror
        - Src:             'mod_facts.c:1583,5'
          Dst:             pr_trace_msg
        - Src:             'mod_facts.c:1589,48'
          Dst:             strerror
        - Src:             'mod_facts.c:1589,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1591,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1592,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1593,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1597,7'
          Dst:             pr_data_open
        - Src:             'mod_facts.c:1598,18'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1600,5'
          Dst:             pr_fsio_closedir
        - Src:             'mod_facts.c:1602,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1603,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1604,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1608,3'
          Dst:             facts_mlinfobuf_init
        - Src:             'mod_facts.c:1610,18'
          Dst:             pr_fsio_readdir
        - Src:             'mod_facts.c:1614,5'
          Dst:             pr_signals_handle
        - Src:             'mod_facts.c:1616,16'
          Dst:             pdircat
        - Src:             'mod_facts.c:1617,11'
          Dst:             dir_check
        - Src:             'mod_facts.c:1623,16'
          Dst:             dir_realpath
        - Src:             'mod_facts.c:1625,13'
          Dst:             dir_check
        - Src:             'mod_facts.c:1628,18'
          Dst:             dir_canonical_path
        - Src:             'mod_facts.c:1633,13'
          Dst:             dir_check_canon
        - Src:             'mod_facts.c:1642,17'
          Dst:             make_sub_pool
        - Src:             'mod_facts.c:1643,5'
          Dst:             pr_pool_tag
        - Src:             'mod_facts.c:1644,9'
          Dst:             facts_mlinfo_get
        - Src:             'mod_facts.c:1652,17'
          Dst:             pr_fs_encode_path
        - Src:             'mod_facts.c:1654,11'
          Dst:             facts_mlinfobuf_add
        - Src:             'mod_facts.c:1655,14'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1657,5'
          Dst:             destroy_pool
        - Src:             'mod_facts.c:1661,7'
          Dst:             pr_data_abort
        - Src:             'mod_facts.c:1667,7'
          Dst:             pr_data_abort
        - Src:             'mod_facts.c:1673,3'
          Dst:             pr_fsio_closedir
        - Src:             'mod_facts.c:1676,5'
          Dst:             pr_data_close2
        - Src:             'mod_facts.c:1677,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1681,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1684,9'
          Dst:             facts_mlinfobuf_flush
        - Src:             'mod_facts.c:1686,18'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1693,5'
          Dst:             pr_data_abort
        - Src:             'mod_facts.c:1694,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1697,3'
          Dst:             pr_data_close2
        - Src:             'mod_facts.c:1698,3'
          Dst:             pr_response_add
        - Src:             'mod_facts.c:1699,10'
          Dst:             mod_create_ret
    - functionName:    facts_mlsd_cleanup
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1702
      functionLinenumberEnd: 1714
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_data_clear_xfer_pool
        - pr_session_get_protocol
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:1705,11'
          Dst:             pr_session_get_protocol
        - Src:             'mod_facts.c:1708,7'
          Dst:             strcmp
        - Src:             'mod_facts.c:1712,3'
          Dst:             pr_data_clear_xfer_pool
    - functionName:    facts_mlst
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1716
      functionLinenumberEnd: 1875
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         59
      ICount:          425
      EdgeCount:       79
      CyclomaticComplexity: 22
      functionsReached:
        - __errno_location
        - dir_best_path
        - dir_canonical_path
        - dir_check
        - facts_mlinfo_add
        - facts_mlinfo_get
        - find_config
        - get_dir_ctxt
        - get_param_ptr
        - mod_create_ret
        - pr_auth_name2gid
        - pr_auth_name2uid
        - pr_cmd_set_errno
        - pr_fs_clear_cache2
        - pr_fs_decode_path2
        - pr_fs_getcwd
        - pr_log_debug
        - pr_response_add
        - pr_response_add_err
        - pstrdup
        - strcmp
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:1728,12'
          Dst:             pstrdup
        - Src:             'mod_facts.c:1730,20'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_facts.c:1733,20'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1736,9'
          Dst:             strerror
        - Src:             'mod_facts.c:1735,7'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1737,7'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1740,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1741,7'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1742,14'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1746,27'
          Dst:             pr_fs_getcwd
        - Src:             'mod_facts.c:1749,8'
          Dst:             dir_check
        - Src:             'mod_facts.c:1751,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1753,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1755,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1756,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1757,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1764,5'
          Dst:             pr_response_add
        - Src:             'mod_facts.c:1765,5'
          Dst:             pr_response_add
        - Src:             'mod_facts.c:1767,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1771,9'
          Dst:             get_param_ptr
        - Src:             'mod_facts.c:1781,29'
          Dst:             get_dir_ctxt
        - Src:             'mod_facts.c:1781,15'
          Dst:             get_param_ptr
        - Src:             'mod_facts.c:1784,19'
          Dst:             get_dir_ctxt
        - Src:             'mod_facts.c:1784,7'
          Dst:             find_config
        - Src:             'mod_facts.c:1790,11'
          Dst:             strcmp
        - Src:             'mod_facts.c:1791,20'
          Dst:             pr_auth_name2uid
        - Src:             'mod_facts.c:1805,19'
          Dst:             get_dir_ctxt
        - Src:             'mod_facts.c:1805,7'
          Dst:             find_config
        - Src:             'mod_facts.c:1811,11'
          Dst:             strcmp
        - Src:             'mod_facts.c:1812,20'
          Dst:             pr_auth_name2gid
        - Src:             'mod_facts.c:1835,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_facts.c:1836,7'
          Dst:             facts_mlinfo_get
        - Src:             'mod_facts.c:1838,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1840,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1841,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1842,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1857,19'
          Dst:             dir_canonical_path
        - Src:             'mod_facts.c:1863,19'
          Dst:             dir_best_path
        - Src:             'mod_facts.c:1867,17'
          Dst:             dir_canonical_path
        - Src:             'mod_facts.c:1870,3'
          Dst:             pr_response_add
        - Src:             'mod_facts.c:1871,3'
          Dst:             facts_mlinfo_add
        - Src:             'mod_facts.c:1872,3'
          Dst:             pr_response_add
        - Src:             'mod_facts.c:1874,10'
          Dst:             mod_create_ret
    - functionName:    facts_opts_mlst
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1877
      functionLinenumberEnd: 1986
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         51
      ICount:          398
      EdgeCount:       67
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
        - facts_get_show_opt
        - facts_mlst_feat_add
        - facts_mlst_feat_remove
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_log_debug
        - pr_response_add
        - pr_response_add_err
        - pr_signals_handle
        - pstrcat
        - pstrdup
        - strcasecmp
        - strchr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:1881,12'
          Dst:             pstrdup
        - Src:             'mod_facts.c:1891,5'
          Dst:             pr_response_add_err
        - Src:             'mod_facts.c:1893,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_facts.c:1894,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1895,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1902,5'
          Dst:             facts_mlst_feat_remove
        - Src:             'mod_facts.c:1903,5'
          Dst:             facts_mlst_feat_add
        - Src:             'mod_facts.c:1908,5'
          Dst:             pr_response_add
        - Src:             'mod_facts.c:1909,12'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1917,3'
          Dst:             facts_mlst_feat_remove
        - Src:             'mod_facts.c:1920,9'
          Dst:             strchr
        - Src:             'mod_facts.c:1923,5'
          Dst:             pr_signals_handle
        - Src:             'mod_facts.c:1927,9'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:1928,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:1929,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:1931,16'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:1932,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:1933,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:1935,16'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:1936,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:1937,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:1939,16'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:1940,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:1941,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:1943,16'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:1944,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:1945,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:1947,16'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:1948,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:1949,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:1951,16'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:1952,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:1953,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:1955,16'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:1956,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:1957,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:1959,16'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:1960,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:1961,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:1963,16'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:1964,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:1965,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:1967,16'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:1968,21'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:1969,18'
          Dst:             pstrcat
        - Src:             'mod_facts.c:1972,7'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1978,11'
          Dst:             strchr
        - Src:             'mod_facts.c:1981,3'
          Dst:             facts_mlst_feat_add
        - Src:             'mod_facts.c:1984,3'
          Dst:             pr_response_add
        - Src:             'mod_facts.c:1985,10'
          Dst:             mod_create_ret
    - functionName:    facts_get_show_opt
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          130
      EdgeCount:       37
      CyclomaticComplexity: 13
      functionsReached:
        - strcasecmp
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:91,7'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:95,7'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:99,7'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:103,7'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:107,7'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:111,7'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:115,7'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:119,7'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:123,7'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:127,7'
          Dst:             strcasecmp
        - Src:             'mod_facts.c:131,7'
          Dst:             strcasecmp
    - functionName:    facts_mlinfo_get
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 514
      functionLinenumberEnd: 756
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         90
      ICount:          639
      EdgeCount:       120
      CyclomaticComplexity: 32
      functionsReached:
        - __errno_location
        - dir_best_path
        - dir_readlink
        - pcalloc
        - pr_fs_clear_cache2
        - pr_fsio_access
        - pr_fsio_lstat
        - pr_fsio_readlink
        - pr_fsio_stat
        - pr_gmtime
        - pr_log_debug
        - pstrcat
        - pstrdup
        - sstrncpy
        - strerror
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:518,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_facts.c:519,9'
          Dst:             pr_fsio_lstat
        - Src:             'mod_facts.c:521,18'
          Dst:             __errno_location
        - Src:             'mod_facts.c:524,13'
          Dst:             strerror
        - Src:             'mod_facts.c:523,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:526,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:531,18'
          Dst:             pstrdup
        - Src:             'mod_facts.c:542,19'
          Dst:             pstrdup
        - Src:             'mod_facts.c:552,14'
          Dst:             pr_gmtime
        - Src:             'mod_facts.c:575,21'
          Dst:             pcalloc
        - Src:             'mod_facts.c:576,15'
          Dst:             dir_readlink
        - Src:             'mod_facts.c:582,23'
          Dst:             dir_best_path
        - Src:             'mod_facts.c:594,9'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_facts.c:595,15'
          Dst:             pr_fsio_stat
        - Src:             'mod_facts.c:599,15'
          Dst:             pr_fsio_stat
        - Src:             'mod_facts.c:603,22'
          Dst:             __errno_location
        - Src:             'mod_facts.c:606,21'
          Dst:             strerror
        - Src:             'mod_facts.c:605,9'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:608,9'
          Dst:             __errno_location
        - Src:             'mod_facts.c:641,13'
          Dst:             sstrncpy
        - Src:             'mod_facts.c:645,25'
          Dst:             pr_fsio_readlink
        - Src:             'mod_facts.c:649,26'
          Dst:             __errno_location
        - Src:             'mod_facts.c:652,57'
          Dst:             strerror
        - Src:             'mod_facts.c:651,13'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:654,13'
          Dst:             __errno_location
        - Src:             'mod_facts.c:665,13'
          Dst:             dir_best_path
        - Src:             'mod_facts.c:664,24'
          Dst:             pstrcat
        - Src:             'mod_facts.c:690,9'
          Dst:             pr_fsio_access
        - Src:             'mod_facts.c:699,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:702,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:705,9'
          Dst:             pr_fsio_access
        - Src:             'mod_facts.c:707,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:719,13'
          Dst:             strlen
        - Src:             'mod_facts.c:728,9'
          Dst:             pr_fsio_access
        - Src:             'mod_facts.c:730,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:733,9'
          Dst:             pr_fsio_access
        - Src:             'mod_facts.c:735,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:738,9'
          Dst:             pr_fsio_access
        - Src:             'mod_facts.c:740,14'
          Dst:             pstrcat
        - Src:             'mod_facts.c:754,21'
          Dst:             pstrdup
    - functionName:    facts_mlinfo_add
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 758
      functionLinenumberEnd: 765
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - facts_mlinfo_fmt
        - pr_response_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:761,10'
          Dst:             facts_mlinfo_fmt
        - Src:             'mod_facts.c:764,3'
          Dst:             pr_response_add
    - functionName:    facts_mlinfo_fmt
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 299
      functionLinenumberEnd: 422
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          517
      EdgeCount:       70
      CyclomaticComplexity: 19
      functionsReached:
        - facts_mime_type
        - pr_gid2str
        - pr_snprintf
        - pr_uid2str
        - sreplace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:310,13'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:323,11'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:330,11'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:337,11'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:343,11'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:351,7'
          Dst:             pr_gid2str
        - Src:             'mod_facts.c:350,11'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:363,15'
          Dst:             sreplace
        - Src:             'mod_facts.c:365,13'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:372,11'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:380,7'
          Dst:             pr_uid2str
        - Src:             'mod_facts.c:379,11'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:392,14'
          Dst:             sreplace
        - Src:             'mod_facts.c:394,13'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:403,17'
          Dst:             facts_mime_type
        - Src:             'mod_facts.c:405,13'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:413,11'
          Dst:             pr_snprintf
        - Src:             'mod_facts.c:416,11'
          Dst:             pr_snprintf
    - functionName:    facts_mime_type
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          108
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - pr_cmd_alloc
        - pr_module_call
        - pr_stash_get_symbol2
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:281,12'
          Dst:             pr_stash_get_symbol2
        - Src:             'mod_facts.c:283,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:287,9'
          Dst:             pr_cmd_alloc
        - Src:             'mod_facts.c:288,9'
          Dst:             pr_module_call
        - Src:             'mod_facts.c:294,3'
          Dst:             __errno_location
    - functionName:    strpbrk
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    facts_mlinfobuf_init
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - destroy_pool
        - make_sub_pool
        - palloc
        - pr_config_get_server_xfer_bufsz
        - pr_pool_tag
        - pr_trace_msg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:441,20'
          Dst:             pr_config_get_server_xfer_bufsz
        - Src:             'mod_facts.c:444,7'
          Dst:             destroy_pool
        - Src:             'mod_facts.c:447,19'
          Dst:             make_sub_pool
        - Src:             'mod_facts.c:448,5'
          Dst:             pr_pool_tag
        - Src:             'mod_facts.c:450,18'
          Dst:             palloc
        - Src:             'mod_facts.c:451,5'
          Dst:             pr_trace_msg
    - functionName:    facts_mlinfobuf_add
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 482
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - facts_mlinfo_fmt
        - facts_mlinfobuf_flush
        - sstrcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:464,12'
          Dst:             facts_mlinfo_fmt
        - Src:             'mod_facts.c:472,9'
          Dst:             facts_mlinfobuf_flush
        - Src:             'mod_facts.c:477,3'
          Dst:             sstrcat
    - functionName:    facts_mlinfobuf_flush
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - facts_mlinfobuf_init
        - pr_data_xfer
        - pr_log_debug
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:494,11'
          Dst:             pr_data_xfer
        - Src:             'mod_facts.c:495,14'
          Dst:             __errno_location
        - Src:             'mod_facts.c:500,47'
          Dst:             __errno_location
        - Src:             'mod_facts.c:500,54'
          Dst:             strerror
        - Src:             'mod_facts.c:499,7'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:506,3'
          Dst:             facts_mlinfobuf_init
        - Src:             'mod_facts.c:508,3'
          Dst:             __errno_location
    - functionName:    facts_filters_allow_path
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          164
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - get_param_ptr
        - pr_log_pri
        - pr_regexp_exec
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:140,21'
          Dst:             get_param_ptr
        - Src:             'mod_facts.c:142,7'
          Dst:             pr_regexp_exec
        - Src:             'mod_facts.c:143,5'
          Dst:             pr_log_pri
        - Src:             'mod_facts.c:149,9'
          Dst:             get_param_ptr
        - Src:             'mod_facts.c:151,7'
          Dst:             pr_regexp_exec
        - Src:             'mod_facts.c:152,5'
          Dst:             pr_log_pri
    - functionName:    facts_modify_mtime
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 886
      functionLinenumberEnd: 989
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          297
      EdgeCount:       45
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - atoi
        - facts_mktime
        - pr_fsio_utimes_with_root
        - pr_log_debug
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:897,10'
          Dst:             atoi
        - Src:             'mod_facts.c:901,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:903,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:910,11'
          Dst:             atoi
        - Src:             'mod_facts.c:915,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:917,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:924,9'
          Dst:             atoi
        - Src:             'mod_facts.c:929,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:931,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:938,10'
          Dst:             atoi
        - Src:             'mod_facts.c:943,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:945,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:952,9'
          Dst:             atoi
        - Src:             'mod_facts.c:957,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:959,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:964,9'
          Dst:             atoi
        - Src:             'mod_facts.c:968,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:970,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:975,35'
          Dst:             facts_mktime
        - Src:             'mod_facts.c:978,9'
          Dst:             pr_fsio_utimes_with_root
        - Src:             'mod_facts.c:980,18'
          Dst:             __errno_location
        - Src:             'mod_facts.c:983,52'
          Dst:             strerror
        - Src:             'mod_facts.c:982,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:984,5'
          Dst:             __errno_location
    - functionName:    facts_mktime
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          46
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - facts_secs_per_day
        - facts_secs_per_hour
        - facts_secs_per_min
        - facts_secs_per_mon
        - facts_secs_per_year
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:263,9'
          Dst:             facts_secs_per_year
        - Src:             'mod_facts.c:264,9'
          Dst:             facts_secs_per_mon
        - Src:             'mod_facts.c:267,9'
          Dst:             facts_secs_per_day
        - Src:             'mod_facts.c:269,9'
          Dst:             facts_secs_per_hour
        - Src:             'mod_facts.c:270,9'
          Dst:             facts_secs_per_min
    - functionName:    facts_secs_per_year
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          48
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - facts_secs_per_day
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:245,11'
          Dst:             facts_secs_per_day
    - functionName:    facts_secs_per_mon
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - facts_leap_year
        - facts_secs_per_day
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:222,15'
          Dst:             facts_leap_year
        - Src:             'mod_facts.c:225,11'
          Dst:             facts_secs_per_day
    - functionName:    facts_secs_per_day
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    facts_secs_per_hour
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    facts_secs_per_min
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    facts_leap_year
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          45
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    facts_modify_unix_group
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 992
      functionLinenumberEnd: 1034
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          119
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_auth_name2gid
        - pr_error_destroy
        - pr_error_set_where
        - pr_error_set_why
        - pr_error_strerror
        - pr_fsio_chown_with_error
        - pr_log_debug
        - pstrcat
        - strerror
        - strtoul
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:998,9'
          Dst:             strtoul
        - Src:             'mod_facts.c:1002,11'
          Dst:             pr_auth_name2gid
        - Src:             'mod_facts.c:1004,7'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1005,7'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1010,9'
          Dst:             pr_fsio_chown_with_error
        - Src:             'mod_facts.c:1011,12'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1014,5'
          Dst:             pr_error_set_where
        - Src:             'mod_facts.c:1015,27'
          Dst:             pstrcat
        - Src:             'mod_facts.c:1015,5'
          Dst:             pr_error_set_why
        - Src:             'mod_facts.c:1019,54'
          Dst:             pr_error_strerror
        - Src:             'mod_facts.c:1019,7'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1020,7'
          Dst:             pr_error_destroy
        - Src:             'mod_facts.c:1026,9'
          Dst:             strerror
        - Src:             'mod_facts.c:1024,7'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1029,5'
          Dst:             __errno_location
    - functionName:    facts_modify_unix_mode
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1036
      functionLinenumberEnd: 1075
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          107
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_error_destroy
        - pr_error_set_where
        - pr_error_set_why
        - pr_error_strerror
        - pr_fsio_chmod_with_error
        - pr_log_debug
        - pstrcat
        - strerror
        - strtoul
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:1042,10'
          Dst:             strtoul
        - Src:             'mod_facts.c:1045,5'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1047,5'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1051,9'
          Dst:             pr_fsio_chmod_with_error
        - Src:             'mod_facts.c:1052,12'
          Dst:             __errno_location
        - Src:             'mod_facts.c:1055,5'
          Dst:             pr_error_set_where
        - Src:             'mod_facts.c:1056,27'
          Dst:             pstrcat
        - Src:             'mod_facts.c:1056,5'
          Dst:             pr_error_set_why
        - Src:             'mod_facts.c:1060,54'
          Dst:             pr_error_strerror
        - Src:             'mod_facts.c:1060,7'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1061,7'
          Dst:             pr_error_destroy
        - Src:             'mod_facts.c:1067,9'
          Dst:             strerror
        - Src:             'mod_facts.c:1065,7'
          Dst:             pr_log_debug
        - Src:             'mod_facts.c:1070,5'
          Dst:             __errno_location
    - functionName:    set_factsadvertise
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1992
      functionLinenumberEnd: 2009
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          136
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:1996,3'
          Dst:             pstrcat
        - Src:             'mod_facts.c:1996,3'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1997,3'
          Dst:             check_context
        - Src:             'mod_facts.c:1997,3'
          Dst:             get_context_name
        - Src:             'mod_facts.c:1997,3'
          Dst:             pstrcat
        - Src:             'mod_facts.c:1997,3'
          Dst:             pstrcat
        - Src:             'mod_facts.c:1997,3'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:1999,21'
          Dst:             get_boolean
        - Src:             'mod_facts.c:2001,5'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2001,5'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:2004,7'
          Dst:             add_config_param
        - Src:             'mod_facts.c:2005,16'
          Dst:             pcalloc
        - Src:             'mod_facts.c:2008,10'
          Dst:             mod_create_ret
    - functionName:    set_factsdefault
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2012
      functionLinenumberEnd: 2041
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          162
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - facts_get_show_opt
        - get_context_name
        - mod_create_ret
        - palloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:2018,5'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2018,5'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:2021,3'
          Dst:             check_context
        - Src:             'mod_facts.c:2021,3'
          Dst:             get_context_name
        - Src:             'mod_facts.c:2021,3'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2021,3'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2021,3'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:2023,7'
          Dst:             add_config_param
        - Src:             'mod_facts.c:2028,16'
          Dst:             facts_get_show_opt
        - Src:             'mod_facts.c:2030,7'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2030,7'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2030,7'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:2037,16'
          Dst:             palloc
        - Src:             'mod_facts.c:2040,10'
          Dst:             mod_create_ret
    - functionName:    set_factsoptions
      functionSourceFile: '/src/proftpd/modules/mod_facts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2044
      functionLinenumberEnd: 2087
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          229
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - palloc
        - pr_module_exists
        - pstrcat
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_facts.c:2050,5'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2050,5'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:2053,3'
          Dst:             check_context
        - Src:             'mod_facts.c:2053,3'
          Dst:             get_context_name
        - Src:             'mod_facts.c:2053,3'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2053,3'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2053,3'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:2055,7'
          Dst:             add_config_param
        - Src:             'mod_facts.c:2058,9'
          Dst:             strcmp
        - Src:             'mod_facts.c:2061,16'
          Dst:             strcmp
        - Src:             'mod_facts.c:2064,16'
          Dst:             strcmp
        - Src:             'mod_facts.c:2067,16'
          Dst:             strcmp
        - Src:             'mod_facts.c:2071,7'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2071,7'
          Dst:             pstrcat
        - Src:             'mod_facts.c:2071,7'
          Dst:             mod_create_ret
        - Src:             'mod_facts.c:2076,16'
          Dst:             palloc
        - Src:             'mod_facts.c:2079,7'
          Dst:             pr_module_exists
        - Src:             'mod_facts.c:2086,10'
          Dst:             mod_create_ret
    - functionName:    log_xfer_stalled_ev
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 977
      functionLinenumberEnd: 985
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - log_any
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:983,12'
          Dst:             log_any
    - functionName:    log_any
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 822
      functionLinenumberEnd: 849
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          90
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - log_event
        - pr_signals_handle
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:827,5'
          Dst:             pr_signals_handle
        - Src:             'mod_log.c:846,5'
          Dst:             log_event
    - functionName:    log_event
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 765
      functionLinenumberEnd: 820
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          162
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - destroy_pool
        - extlog_buffer_append
        - make_sub_pool
        - pcalloc
        - pr_jot_resolve_logfmt
        - pr_log_event_generate
        - pr_log_pri
        - pr_syslog
        - resolve_on_default
        - resolve_on_meta
        - resolve_on_other
        - strerror
        - write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:778,14'
          Dst:             make_sub_pool
        - Src:             'mod_log.c:779,13'
          Dst:             pcalloc
        - Src:             'mod_log.c:780,9'
          Dst:             pcalloc
        - Src:             'mod_log.c:786,9'
          Dst:             pr_jot_resolve_logfmt
        - Src:             'mod_log.c:786,9'
          Dst:             resolve_on_meta
        - Src:             'mod_log.c:786,9'
          Dst:             resolve_on_default
        - Src:             'mod_log.c:786,9'
          Dst:             resolve_on_other
        - Src:             'mod_log.c:792,9'
          Dst:             __errno_location
        - Src:             'mod_log.c:794,64'
          Dst:             __errno_location
        - Src:             'mod_log.c:794,55'
          Dst:             strerror
        - Src:             'mod_log.c:793,7'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:797,5'
          Dst:             destroy_pool
        - Src:             'mod_log.c:801,3'
          Dst:             extlog_buffer_append
        - Src:             'mod_log.c:805,5'
          Dst:             pr_log_event_generate
        - Src:             'mod_log.c:808,9'
          Dst:             write
        - Src:             'mod_log.c:810,35'
          Dst:             __errno_location
        - Src:             'mod_log.c:810,26'
          Dst:             strerror
        - Src:             'mod_log.c:809,7'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:814,5'
          Dst:             pr_log_event_generate
        - Src:             'mod_log.c:816,5'
          Dst:             pr_syslog
        - Src:             'mod_log.c:819,3'
          Dst:             destroy_pool
    - functionName:    resolve_on_meta
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 498
      functionLinenumberEnd: 683
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         85
      ICount:          509
      EdgeCount:       92
      CyclomaticComplexity: 9
      functionsReached:
        - extlog_buffer_append
        - get_gmtoff
        - pr_gid2str
        - pr_snprintf
        - pr_uid2str
        - strftime
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mod_log.c:507,5'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_log.c:512,20'
          Dst:             pr_snprintf
        - Src:             'mod_log.c:522,20'
          Dst:             pr_snprintf
        - Src:             'mod_log.c:535,20'
          Dst:             pr_snprintf
        - Src:             'mod_log.c:545,16'
          Dst:             pr_uid2str
        - Src:             'mod_log.c:553,16'
          Dst:             pr_gid2str
        - Src:             'mod_log.c:567,20'
          Dst:             pr_snprintf
        - Src:             'mod_log.c:578,20'
          Dst:             pr_snprintf
        - Src:             'mod_log.c:596,20'
          Dst:             pr_snprintf
        - Src:             'mod_log.c:615,14'
          Dst:             get_gmtoff
        - Src:             'mod_log.c:623,22'
          Dst:             strftime
        - Src:             'mod_log.c:626,27'
          Dst:             pr_snprintf
        - Src:             'mod_log.c:677,18'
          Dst:             strlen
        - Src:             'mod_log.c:680,5'
          Dst:             extlog_buffer_append
    - functionName:    resolve_on_default
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 687
      functionLinenumberEnd: 743
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          184
      EdgeCount:       43
      CyclomaticComplexity: 2
      functionsReached:
        - extlog_buffer_append
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mod_log.c:695,5'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_log.c:699,20'
          Dst:             strlen
        - Src:             'mod_log.c:740,5'
          Dst:             extlog_buffer_append
    - functionName:    resolve_on_other
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 747
      functionLinenumberEnd: 759
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          62
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:752,5'
          Dst:             pr_trace_msg
    - functionName:    extlog_buffer_append
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 480
      functionLinenumberEnd: 495
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          77
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - pr_trace_msg
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:490,3'
          Dst:             pr_trace_msg
    - functionName:    get_gmtoff
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 470
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          103
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - gmtime_r
        - pcalloc
        - pr_localtime
        - time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:450,3'
          Dst:             time
        - Src:             'mod_log.c:453,24'
          Dst:             pcalloc
        - Src:             'mod_log.c:453,9'
          Dst:             gmtime_r
        - Src:             'mod_log.c:458,10'
          Dst:             pr_localtime
    - functionName:    log_exit_ev
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 855
      functionLinenumberEnd: 874
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - destroy_pool
        - make_sub_pool
        - pr_cmd_alloc
        - pr_cmd_dispatch_phase
        - pr_response_block
        - pr_response_blocked
        - pstrdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:860,14'
          Dst:             make_sub_pool
        - Src:             'mod_log.c:861,35'
          Dst:             pstrdup
        - Src:             'mod_log.c:861,9'
          Dst:             pr_cmd_alloc
        - Src:             'mod_log.c:864,23'
          Dst:             pr_response_blocked
        - Src:             'mod_log.c:866,12'
          Dst:             pr_response_block
        - Src:             'mod_log.c:869,10'
          Dst:             pr_cmd_dispatch_phase
        - Src:             'mod_log.c:872,3'
          Dst:             pr_response_block
        - Src:             'mod_log.c:873,3'
          Dst:             destroy_pool
    - functionName:    find_extendedlogs
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1003
      functionLinenumberEnd: 1104
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         49
      ICount:          278
      EdgeCount:       64
      CyclomaticComplexity: 17
      functionsReached:
        - find_config2
        - find_config_next2
        - pcalloc
        - pr_log_pri
        - pr_signals_handle
        - pstrdup
        - strcasecmp
        - strcmp
        - xaset_create
        - xaset_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:1023,7'
          Dst:             find_config2
        - Src:             'mod_log.c:1028,5'
          Dst:             pr_signals_handle
        - Src:             'mod_log.c:1056,13'
          Dst:             strcmp
        - Src:             'mod_log.c:1062,13'
          Dst:             strcasecmp
        - Src:             'mod_log.c:1067,17'
          Dst:             strcmp
        - Src:             'mod_log.c:1075,9'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:1085,28'
          Dst:             pcalloc
        - Src:             'mod_log.c:1087,27'
          Dst:             pstrdup
        - Src:             'mod_log.c:1094,17'
          Dst:             xaset_create
        - Src:             'mod_log.c:1097,5'
          Dst:             xaset_insert
        - Src:             'mod_log.c:1101,9'
          Dst:             find_config_next2
    - functionName:    log_sess_reinit_ev
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 943
      functionLinenumberEnd: 975
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          84
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - close
        - log_exit_ev
        - log_sess_init
        - log_sess_reinit_ev
        - log_xfer_stalled_ev
        - pr_event_unregister
        - pr_log_set_options
        - pr_session_disconnect
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:949,3'
          Dst:             pr_event_unregister
        - Src:             'mod_log.c:949,3'
          Dst:             log_exit_ev
        - Src:             'mod_log.c:950,3'
          Dst:             pr_event_unregister
        - Src:             'mod_log.c:950,3'
          Dst:             log_sess_reinit_ev
        - Src:             'mod_log.c:951,3'
          Dst:             pr_event_unregister
        - Src:             'mod_log.c:951,3'
          Dst:             log_xfer_stalled_ev
        - Src:             'mod_log.c:960,16'
          Dst:             close
        - Src:             'mod_log.c:968,10'
          Dst:             pr_log_set_options
        - Src:             'mod_log.c:970,9'
          Dst:             log_sess_init
        - Src:             'mod_log.c:972,5'
          Dst:             pr_session_disconnect
    - functionName:    log_sess_init
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1203
      functionLinenumberEnd: 1376
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         70
      ICount:          412
      EdgeCount:       92
      CyclomaticComplexity: 24
      functionsReached:
        - __errno_location
        - destroy_pool
        - dir_canonical_path
        - find_config
        - find_extendedlogs
        - get_param_ptr
        - log_closesyslog
        - log_discard
        - log_exit_ev
        - log_opensyslog
        - log_sess_reinit_ev
        - log_xfer_stalled_ev
        - make_sub_pool
        - pr_cmd_alloc
        - pr_cmd_dispatch_phase
        - pr_event_register
        - pr_log_debug
        - pr_log_openfile
        - pr_log_pri
        - pr_log_set_options
        - pr_log_str2sysloglevel
        - pr_privs_relinquish
        - pr_privs_root
        - pr_response_block
        - pr_response_blocked
        - pr_signals_block
        - pr_signals_unblock
        - pstrdup
        - strcasecmp
        - strchr
        - strerror
        - strncasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:1208,3'
          Dst:             pr_event_register
        - Src:             'mod_log.c:1208,3'
          Dst:             log_sess_reinit_ev
        - Src:             'mod_log.c:1211,7'
          Dst:             find_config
        - Src:             'mod_log.c:1216,9'
          Dst:             pr_log_set_options
        - Src:             'mod_log.c:1218,37'
          Dst:             __errno_location
        - Src:             'mod_log.c:1218,28'
          Dst:             strerror
        - Src:             'mod_log.c:1217,7'
          Dst:             pr_log_debug
        - Src:             'mod_log.c:1223,20'
          Dst:             get_param_ptr
        - Src:             'mod_log.c:1225,5'
          Dst:             log_closesyslog
        - Src:             'mod_log.c:1227,9'
          Dst:             strncasecmp
        - Src:             'mod_log.c:1230,7'
          Dst:             pr_privs_root
        - Src:             'mod_log.c:1231,13'
          Dst:             log_opensyslog
        - Src:             'mod_log.c:1232,16'
          Dst:             __errno_location
        - Src:             'mod_log.c:1233,7'
          Dst:             pr_privs_relinquish
        - Src:             'mod_log.c:1238,29'
          Dst:             strerror
        - Src:             'mod_log.c:1237,11'
          Dst:             pr_log_debug
        - Src:             'mod_log.c:1241,11'
          Dst:             pr_log_debug
        - Src:             'mod_log.c:1249,9'
          Dst:             find_config
        - Src:             'mod_log.c:1254,7'
          Dst:             log_closesyslog
        - Src:             'mod_log.c:1256,11'
          Dst:             strcasecmp
        - Src:             'mod_log.c:1259,16'
          Dst:             dir_canonical_path
        - Src:             'mod_log.c:1261,9'
          Dst:             pr_signals_block
        - Src:             'mod_log.c:1262,9'
          Dst:             pr_privs_root
        - Src:             'mod_log.c:1263,15'
          Dst:             log_opensyslog
        - Src:             'mod_log.c:1264,18'
          Dst:             __errno_location
        - Src:             'mod_log.c:1265,9'
          Dst:             pr_privs_relinquish
        - Src:             'mod_log.c:1266,9'
          Dst:             pr_signals_unblock
        - Src:             'mod_log.c:1270,13'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:1275,13'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:1282,60'
          Dst:             strerror
        - Src:             'mod_log.c:1281,15'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:1285,15'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:1293,9'
          Dst:             log_discard
        - Src:             'mod_log.c:1299,3'
          Dst:             find_extendedlogs
        - Src:             'mod_log.c:1305,11'
          Dst:             strncasecmp
        - Src:             'mod_log.c:1308,9'
          Dst:             pr_log_debug
        - Src:             'mod_log.c:1311,9'
          Dst:             pr_signals_block
        - Src:             'mod_log.c:1312,9'
          Dst:             pr_privs_root
        - Src:             'mod_log.c:1313,15'
          Dst:             pr_log_openfile
        - Src:             'mod_log.c:1314,18'
          Dst:             __errno_location
        - Src:             'mod_log.c:1315,9'
          Dst:             pr_privs_relinquish
        - Src:             'mod_log.c:1316,9'
          Dst:             pr_signals_unblock
        - Src:             'mod_log.c:1322,34'
          Dst:             strerror
        - Src:             'mod_log.c:1321,15'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:1325,15'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:1330,13'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:1334,13'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:1340,21'
          Dst:             strchr
        - Src:             'mod_log.c:1342,31'
          Dst:             pr_log_str2sysloglevel
        - Src:             'mod_log.c:1349,3'
          Dst:             pr_event_register
        - Src:             'mod_log.c:1349,3'
          Dst:             log_exit_ev
        - Src:             'mod_log.c:1350,3'
          Dst:             pr_event_register
        - Src:             'mod_log.c:1350,3'
          Dst:             log_xfer_stalled_ev
        - Src:             'mod_log.c:1359,16'
          Dst:             make_sub_pool
        - Src:             'mod_log.c:1360,37'
          Dst:             pstrdup
        - Src:             'mod_log.c:1360,11'
          Dst:             pr_cmd_alloc
        - Src:             'mod_log.c:1363,25'
          Dst:             pr_response_blocked
        - Src:             'mod_log.c:1365,14'
          Dst:             pr_response_block
        - Src:             'mod_log.c:1368,12'
          Dst:             pr_cmd_dispatch_phase
        - Src:             'mod_log.c:1371,5'
          Dst:             pr_response_block
        - Src:             'mod_log.c:1372,5'
          Dst:             destroy_pool
    - functionName:    log_init
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 990
      functionLinenumberEnd: 1000
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - log_postparse_ev
        - log_restart_ev
        - make_sub_pool
        - parse_logformat
        - pr_event_register
        - pr_pool_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:991,14'
          Dst:             make_sub_pool
        - Src:             'mod_log.c:992,3'
          Dst:             pr_pool_tag
        - Src:             'mod_log.c:995,3'
          Dst:             parse_logformat
        - Src:             'mod_log.c:997,3'
          Dst:             pr_event_register
        - Src:             'mod_log.c:997,3'
          Dst:             log_postparse_ev
        - Src:             'mod_log.c:998,3'
          Dst:             pr_event_register
        - Src:             'mod_log.c:998,3'
          Dst:             log_restart_ev
    - functionName:    parse_logformat
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          182
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - add_config_param
        - destroy_pool
        - make_sub_pool
        - palloc
        - pcalloc
        - pr_jot_parse_logfmt
        - pr_jot_parse_on_meta
        - pr_jot_parse_on_other
        - pr_jot_parse_on_unknown
        - pr_log_pri
        - pstrdup
        - strerror
        - xaset_create
        - xaset_insert_end
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:154,14'
          Dst:             make_sub_pool
        - Src:             'mod_log.c:155,13'
          Dst:             pcalloc
        - Src:             'mod_log.c:156,16'
          Dst:             pcalloc
        - Src:             'mod_log.c:162,9'
          Dst:             pr_jot_parse_logfmt
        - Src:             'mod_log.c:162,9'
          Dst:             pr_jot_parse_on_meta
        - Src:             'mod_log.c:162,9'
          Dst:             pr_jot_parse_on_unknown
        - Src:             'mod_log.c:162,9'
          Dst:             pr_jot_parse_on_other
        - Src:             'mod_log.c:166,64'
          Dst:             __errno_location
        - Src:             'mod_log.c:166,55'
          Dst:             strerror
        - Src:             'mod_log.c:165,5'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:168,5'
          Dst:             destroy_pool
        - Src:             'mod_log.c:174,24'
          Dst:             pcalloc
        - Src:             'mod_log.c:175,21'
          Dst:             pstrdup
        - Src:             'mod_log.c:176,19'
          Dst:             palloc
        - Src:             'mod_log.c:181,18'
          Dst:             xaset_create
        - Src:             'mod_log.c:184,3'
          Dst:             xaset_insert_end
        - Src:             'mod_log.c:194,9'
          Dst:             add_config_param
        - Src:             'mod_log.c:195,18'
          Dst:             pstrdup
        - Src:             'mod_log.c:196,18'
          Dst:             palloc
        - Src:             'mod_log.c:203,3'
          Dst:             destroy_pool
    - functionName:    log_postparse_ev
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 876
      functionLinenumberEnd: 927
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          117
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - dir_canonical_path
        - exit
        - find_config
        - log_closesyslog
        - log_discard
        - log_opensyslog
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
        - pr_signals_block
        - pr_signals_unblock
        - strcasecmp
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:879,7'
          Dst:             find_config
        - Src:             'mod_log.c:884,5'
          Dst:             log_closesyslog
        - Src:             'mod_log.c:886,9'
          Dst:             strcasecmp
        - Src:             'mod_log.c:889,14'
          Dst:             dir_canonical_path
        - Src:             'mod_log.c:891,7'
          Dst:             pr_signals_block
        - Src:             'mod_log.c:892,7'
          Dst:             pr_privs_root
        - Src:             'mod_log.c:893,13'
          Dst:             log_opensyslog
        - Src:             'mod_log.c:894,16'
          Dst:             __errno_location
        - Src:             'mod_log.c:895,7'
          Dst:             pr_privs_relinquish
        - Src:             'mod_log.c:896,7'
          Dst:             pr_signals_unblock
        - Src:             'mod_log.c:900,11'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:905,11'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:911,58'
          Dst:             strerror
        - Src:             'mod_log.c:910,13'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:914,13'
          Dst:             pr_log_pri
        - Src:             'mod_log.c:920,9'
          Dst:             exit
        - Src:             'mod_log.c:924,7'
          Dst:             log_discard
    - functionName:    log_restart_ev
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 929
      functionLinenumberEnd: 941
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - destroy_pool
        - make_sub_pool
        - parse_logformat
        - pr_pool_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:930,3'
          Dst:             destroy_pool
        - Src:             'mod_log.c:937,14'
          Dst:             make_sub_pool
        - Src:             'mod_log.c:938,3'
          Dst:             pr_pool_tag
        - Src:             'mod_log.c:940,3'
          Dst:             parse_logformat
    - functionName:    log_pre_dele
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1106
      functionLinenumberEnd: 1125
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dir_canonical_path
        - jot_set_deleted_filesz
        - pr_fs_clear_cache2
        - pr_fs_decode_path
        - pr_fsio_stat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:1109,3'
          Dst:             jot_set_deleted_filesz
        - Src:             'mod_log.c:1112,5'
          Dst:             pr_fs_decode_path
        - Src:             'mod_log.c:1111,10'
          Dst:             dir_canonical_path
        - Src:             'mod_log.c:1119,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_log.c:1120,9'
          Dst:             pr_fsio_stat
        - Src:             'mod_log.c:1121,7'
          Dst:             jot_set_deleted_filesz
    - functionName:    log_post_pass
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1128
      functionLinenumberEnd: 1197
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         61
      ICount:          326
      EdgeCount:       83
      CyclomaticComplexity: 24
      functionsReached:
        - close
        - pr_jot_filters_include_classes
        - pr_log_debug
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:1140,9'
          Dst:             pr_log_debug
        - Src:             'mod_log.c:1142,16'
          Dst:             close
        - Src:             'mod_log.c:1156,9'
          Dst:             pr_log_debug
        - Src:             'mod_log.c:1158,16'
          Dst:             close
        - Src:             'mod_log.c:1178,15'
          Dst:             strcmp
        - Src:             'mod_log.c:1179,13'
          Dst:             pr_log_debug
        - Src:             'mod_log.c:1181,20'
          Dst:             close
        - Src:             'mod_log.c:1189,13'
          Dst:             pr_jot_filters_include_classes
        - Src:             'mod_log.c:1190,18'
          Dst:             close
    - functionName:    set_allowlogsymlinks
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          137
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:406,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:406,3'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:407,3'
          Dst:             check_context
        - Src:             'mod_log.c:407,3'
          Dst:             get_context_name
        - Src:             'mod_log.c:407,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:407,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:407,3'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:409,24'
          Dst:             get_boolean
        - Src:             'mod_log.c:411,5'
          Dst:             pstrcat
        - Src:             'mod_log.c:411,5'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:414,7'
          Dst:             add_config_param
        - Src:             'mod_log.c:415,16'
          Dst:             pcalloc
        - Src:             'mod_log.c:418,10'
          Dst:             mod_create_ret
    - functionName:    set_extendedlog
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          343
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_jot_filters_create
        - pr_jot_filters_parse_sifts
        - pr_log_str2sysloglevel
        - pr_module_exists
        - pstrcat
        - pstrdup
        - strchr
        - strerror
        - strncasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:323,3'
          Dst:             check_context
        - Src:             'mod_log.c:323,3'
          Dst:             get_context_name
        - Src:             'mod_log.c:323,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:323,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:323,3'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:328,5'
          Dst:             pstrcat
        - Src:             'mod_log.c:328,5'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:331,7'
          Dst:             add_config_param
        - Src:             'mod_log.c:334,7'
          Dst:             strncasecmp
        - Src:             'mod_log.c:337,11'
          Dst:             strchr
        - Src:             'mod_log.c:339,9'
          Dst:             pr_log_str2sysloglevel
        - Src:             'mod_log.c:340,7'
          Dst:             pstrcat
        - Src:             'mod_log.c:340,7'
          Dst:             pstrcat
        - Src:             'mod_log.c:340,7'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:344,18'
          Dst:             pstrdup
        - Src:             'mod_log.c:347,5'
          Dst:             pstrcat
        - Src:             'mod_log.c:347,5'
          Dst:             pstrcat
        - Src:             'mod_log.c:347,5'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:351,18'
          Dst:             pstrdup
        - Src:             'mod_log.c:361,11'
          Dst:             strchr
        - Src:             'mod_log.c:367,19'
          Dst:             pr_jot_filters_create
        - Src:             'mod_log.c:370,7'
          Dst:             __errno_location
        - Src:             'mod_log.c:370,7'
          Dst:             strerror
        - Src:             'mod_log.c:370,7'
          Dst:             pstrcat
        - Src:             'mod_log.c:370,7'
          Dst:             pstrcat
        - Src:             'mod_log.c:370,7'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:377,13'
          Dst:             pr_jot_filters_parse_sifts
        - Src:             'mod_log.c:379,9'
          Dst:             __errno_location
        - Src:             'mod_log.c:379,9'
          Dst:             strerror
        - Src:             'mod_log.c:379,9'
          Dst:             pstrcat
        - Src:             'mod_log.c:379,9'
          Dst:             pstrcat
        - Src:             'mod_log.c:379,9'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:388,18'
          Dst:             pstrdup
        - Src:             'mod_log.c:391,7'
          Dst:             pr_module_exists
        - Src:             'mod_log.c:398,10'
          Dst:             mod_create_ret
    - functionName:    set_logformat
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          127
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - check_context
        - get_context_name
        - mod_create_ret
        - parse_logformat
        - pstrcat
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:208,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:208,3'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:209,3'
          Dst:             check_context
        - Src:             'mod_log.c:209,3'
          Dst:             get_context_name
        - Src:             'mod_log.c:209,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:209,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:209,3'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:211,7'
          Dst:             strlen
        - Src:             'mod_log.c:212,5'
          Dst:             pstrcat
        - Src:             'mod_log.c:212,5'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:215,3'
          Dst:             parse_logformat
        - Src:             'mod_log.c:216,10'
          Dst:             mod_create_ret
    - functionName:    set_logoptions
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 315
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         60
      ICount:          398
      EdgeCount:       70
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - palloc
        - pr_log_debug
        - pr_log_set_options
        - pstrcat
        - strcasecmp
        - strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mod_log.c:247,7'
          Branch Sides:    []
        - Branch String:   'mod_log.c:258,7'
          Branch Sides:    []
        - Branch String:   'mod_log.c:269,7'
          Branch Sides:    []
        - Branch String:   'mod_log.c:280,7'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_log.c:227,5'
          Dst:             pstrcat
        - Src:             'mod_log.c:227,5'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:230,3'
          Dst:             check_context
        - Src:             'mod_log.c:230,3'
          Dst:             get_context_name
        - Src:             'mod_log.c:230,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:230,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:230,3'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:240,7'
          Dst:             pstrcat
        - Src:             'mod_log.c:240,7'
          Dst:             pstrcat
        - Src:             'mod_log.c:240,7'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:246,9'
          Dst:             strcasecmp
        - Src:             'mod_log.c:257,16'
          Dst:             strcasecmp
        - Src:             'mod_log.c:268,16'
          Dst:             strcasecmp
        - Src:             'mod_log.c:279,16'
          Dst:             strcasecmp
        - Src:             'mod_log.c:291,7'
          Dst:             pstrcat
        - Src:             'mod_log.c:291,7'
          Dst:             pstrcat
        - Src:             'mod_log.c:291,7'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:296,7'
          Dst:             add_config_param
        - Src:             'mod_log.c:297,16'
          Dst:             palloc
        - Src:             'mod_log.c:308,9'
          Dst:             pr_log_set_options
        - Src:             'mod_log.c:310,51'
          Dst:             __errno_location
        - Src:             'mod_log.c:310,42'
          Dst:             strerror
        - Src:             'mod_log.c:309,7'
          Dst:             pr_log_debug
        - Src:             'mod_log.c:314,10'
          Dst:             mod_create_ret
    - functionName:    set_serverlog
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 422
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          97
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:423,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:423,3'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:424,3'
          Dst:             check_context
        - Src:             'mod_log.c:424,3'
          Dst:             get_context_name
        - Src:             'mod_log.c:424,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:424,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:424,3'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:426,3'
          Dst:             add_config_param_str
        - Src:             'mod_log.c:428,10'
          Dst:             mod_create_ret
    - functionName:    set_systemlog
      functionSourceFile: '/src/proftpd/modules/mod_log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 432
      functionLinenumberEnd: 438
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          97
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_log.c:433,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:433,3'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:434,3'
          Dst:             check_context
        - Src:             'mod_log.c:434,3'
          Dst:             get_context_name
        - Src:             'mod_log.c:434,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:434,3'
          Dst:             pstrcat
        - Src:             'mod_log.c:434,3'
          Dst:             mod_create_ret
        - Src:             'mod_log.c:436,10'
          Dst:             add_config_param_str
        - Src:             'mod_log.c:437,10'
          Dst:             mod_create_ret
    - functionName:    xfer_timedout
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4353
      functionLinenumberEnd: 4362
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - pr_trace_msg
        - retr_abort
        - stor_abort
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:4355,5'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:4356,5'
          Dst:             stor_abort
        - Src:             'mod_xfer.c:4359,5'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:4360,5'
          Dst:             retr_abort
    - functionName:    stor_abort
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 988
      functionLinenumberEnd: 1095
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         59
      ICount:          303
      EdgeCount:       78
      CyclomaticComplexity: 21
      functionsReached:
        - __errno_location
        - _log_transfer
        - destroy_pool
        - get_param_ptr
        - make_sub_pool
        - pr_error_destroy
        - pr_error_set_where
        - pr_error_set_why
        - pr_error_strerror
        - pr_fsio_close_with_error
        - pr_fsio_unlink_with_error
        - pr_log_debug
        - pr_log_pri
        - pstrcat
        - pstrdup
        - strerror
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:994,14'
          Dst:             make_sub_pool
        - Src:             'mod_xfer.c:1002,15'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:1004,11'
          Dst:             pr_fsio_close_with_error
        - Src:             'mod_xfer.c:1005,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1008,7'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:1009,29'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:1009,7'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:1013,41'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:1013,9'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1014,9'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:1019,11'
          Dst:             strerror
        - Src:             'mod_xfer.c:1018,9'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1022,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1028,19'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:1037,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1040,15'
          Dst:             pr_fsio_unlink_with_error
        - Src:             'mod_xfer.c:1042,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1045,11'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:1046,33'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:1046,11'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:1051,42'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:1051,15'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1055,43'
          Dst:             strerror
        - Src:             'mod_xfer.c:1054,15'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1059,11'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:1068,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1070,13'
          Dst:             pr_fsio_unlink_with_error
        - Src:             'mod_xfer.c:1071,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1074,9'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:1075,31'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:1075,9'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:1080,40'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:1080,13'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1081,13'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:1086,34'
          Dst:             strerror
        - Src:             'mod_xfer.c:1085,13'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1093,3'
          Dst:             destroy_pool
        - Src:             'mod_xfer.c:1094,3'
          Dst:             _log_transfer
    - functionName:    retr_abort
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 972
      functionLinenumberEnd: 981
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _log_transfer
        - pr_fsio_close
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:976,5'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:980,3'
          Dst:             _log_transfer
    - functionName:    _log_transfer
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          126
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - dir_abs_path
        - gettimeofday
        - pr_log_debug
        - pr_netaddr_get_sess_remote_name
        - xferlog_write
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:187,5'
          Dst:             gettimeofday
        - Src:             'mod_xfer.c:200,14'
          Dst:             dir_abs_path
        - Src:             'mod_xfer.c:203,36'
          Dst:             pr_netaddr_get_sess_remote_name
        - Src:             'mod_xfer.c:203,5'
          Dst:             xferlog_write
        - Src:             'mod_xfer.c:209,36'
          Dst:             pr_netaddr_get_sess_remote_name
        - Src:             'mod_xfer.c:209,5'
          Dst:             xferlog_write
        - Src:             'mod_xfer.c:215,3'
          Dst:             pr_log_debug
    - functionName:    xfer_init
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4384
      functionLinenumberEnd: 4403
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_feat_add
        - pr_help_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:4387,3'
          Dst:             pr_help_add
        - Src:             'mod_xfer.c:4388,3'
          Dst:             pr_help_add
        - Src:             'mod_xfer.c:4389,3'
          Dst:             pr_help_add
        - Src:             'mod_xfer.c:4390,3'
          Dst:             pr_help_add
        - Src:             'mod_xfer.c:4391,3'
          Dst:             pr_help_add
        - Src:             'mod_xfer.c:4392,3'
          Dst:             pr_help_add
        - Src:             'mod_xfer.c:4393,3'
          Dst:             pr_help_add
        - Src:             'mod_xfer.c:4394,3'
          Dst:             pr_help_add
        - Src:             'mod_xfer.c:4395,3'
          Dst:             pr_help_add
        - Src:             'mod_xfer.c:4396,3'
          Dst:             pr_help_add
        - Src:             'mod_xfer.c:4401,3'
          Dst:             pr_feat_add
    - functionName:    xfer_sess_init
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4406
      functionLinenumberEnd: 4469
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         22
      ICount:          122
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - get_param_ptr
        - pr_event_register
        - pr_fsio_close
        - pr_fsio_fstat
        - pr_fsio_open
        - pr_log_debug
        - strcmp
        - strerror
        - xfer_exit_ev
        - xfer_sess_reinit_ev
        - xfer_sigusr2_ev
        - xfer_timeout_session_ev
        - xfer_timeout_stalled_ev
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:4410,3'
          Dst:             pr_event_register
        - Src:             'mod_xfer.c:4410,3'
          Dst:             xfer_exit_ev
        - Src:             'mod_xfer.c:4411,3'
          Dst:             pr_event_register
        - Src:             'mod_xfer.c:4411,3'
          Dst:             xfer_sess_reinit_ev
        - Src:             'mod_xfer.c:4413,3'
          Dst:             pr_event_register
        - Src:             'mod_xfer.c:4413,3'
          Dst:             xfer_sigusr2_ev
        - Src:             'mod_xfer.c:4415,3'
          Dst:             pr_event_register
        - Src:             'mod_xfer.c:4415,3'
          Dst:             xfer_timeout_session_ev
        - Src:             'mod_xfer.c:4417,3'
          Dst:             pr_event_register
        - Src:             'mod_xfer.c:4417,3'
          Dst:             xfer_timeout_stalled_ev
        - Src:             'mod_xfer.c:4428,21'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:4434,26'
          Dst:             pr_fsio_open
        - Src:             'mod_xfer.c:4437,35'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:4437,26'
          Dst:             strerror
        - Src:             'mod_xfer.c:4436,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:4440,11'
          Dst:             pr_fsio_fstat
        - Src:             'mod_xfer.c:4442,37'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:4442,28'
          Dst:             strerror
        - Src:             'mod_xfer.c:4441,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:4443,9'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:4448,11'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:4452,39'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:4452,30'
          Dst:             strerror
        - Src:             'mod_xfer.c:4450,11'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:4453,11'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:4465,7'
          Dst:             strcmp
    - functionName:    xfer_exit_ev
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4273
      functionLinenumberEnd: 4299
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          77
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - pr_cmd_alloc
        - pr_cmd_dispatch_phase
        - pr_data_abort
        - pr_trace_msg
        - retr_abort
        - stor_abort
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:4277,5'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:4278,5'
          Dst:             stor_abort
        - Src:             'mod_xfer.c:4282,5'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:4283,5'
          Dst:             retr_abort
        - Src:             'mod_xfer.c:4289,5'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:4293,13'
          Dst:             pr_cmd_alloc
        - Src:             'mod_xfer.c:4296,12'
          Dst:             pr_cmd_dispatch_phase
        - Src:             'mod_xfer.c:4297,12'
          Dst:             pr_cmd_dispatch_phase
    - functionName:    xfer_sess_reinit_ev
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4301
      functionLinenumberEnd: 4322
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - pr_event_unregister
        - pr_fsio_close
        - pr_session_disconnect
        - xfer_exit_ev
        - xfer_sess_init
        - xfer_sess_reinit_ev
        - xfer_sigusr2_ev
        - xfer_timeout_stalled_ev
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:4306,3'
          Dst:             pr_event_unregister
        - Src:             'mod_xfer.c:4306,3'
          Dst:             xfer_exit_ev
        - Src:             'mod_xfer.c:4307,3'
          Dst:             pr_event_unregister
        - Src:             'mod_xfer.c:4307,3'
          Dst:             xfer_sess_reinit_ev
        - Src:             'mod_xfer.c:4308,3'
          Dst:             pr_event_unregister
        - Src:             'mod_xfer.c:4308,3'
          Dst:             xfer_sigusr2_ev
        - Src:             'mod_xfer.c:4309,3'
          Dst:             pr_event_unregister
        - Src:             'mod_xfer.c:4309,3'
          Dst:             xfer_timeout_stalled_ev
        - Src:             'mod_xfer.c:4313,12'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:4317,9'
          Dst:             xfer_sess_init
        - Src:             'mod_xfer.c:4319,5'
          Dst:             pr_session_disconnect
    - functionName:    xfer_sigusr2_ev
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4324
      functionLinenumberEnd: 4351
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          77
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - destroy_pool
        - make_sub_pool
        - pr_cmd_alloc
        - pr_log_debug
        - pr_module_exists
        - pr_pool_tag
        - pr_throttle_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:4326,7'
          Dst:             pr_module_exists
        - Src:             'mod_xfer.c:4337,18'
          Dst:             make_sub_pool
        - Src:             'mod_xfer.c:4338,7'
          Dst:             pr_pool_tag
        - Src:             'mod_xfer.c:4340,13'
          Dst:             pr_cmd_alloc
        - Src:             'mod_xfer.c:4345,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:4346,7'
          Dst:             pr_throttle_init
        - Src:             'mod_xfer.c:4348,7'
          Dst:             destroy_pool
    - functionName:    xfer_timeout_session_ev
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4364
      functionLinenumberEnd: 4366
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xfer_timedout
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:4365,3'
          Dst:             xfer_timedout
    - functionName:    xfer_timeout_stalled_ev
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4368
      functionLinenumberEnd: 4379
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - xfer_timedout
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:4377,5'
          Dst:             xfer_timedout
    - functionName:    xfer_type
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3164
      functionLinenumberEnd: 3219
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         34
      ICount:          209
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - mod_create_ret
        - pr_cmd_get_displayable_str
        - pr_cmd_set_errno
        - pr_response_add
        - pr_response_add_err
        - pstrdup
        - strcmp
        - toupper
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3170,7'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:3169,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3172,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3173,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3174,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3177,10'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:3178,13'
          Dst:             toupper
        - Src:             'mod_xfer.c:3180,7'
          Dst:             strcmp
        - Src:             'mod_xfer.c:3182,8'
          Dst:             strcmp
        - Src:             'mod_xfer.c:3183,8'
          Dst:             strcmp
        - Src:             'mod_xfer.c:3188,14'
          Dst:             strcmp
        - Src:             'mod_xfer.c:3190,8'
          Dst:             strcmp
        - Src:             'mod_xfer.c:3191,8'
          Dst:             strcmp
        - Src:             'mod_xfer.c:3197,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3200,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3201,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3202,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3217,3'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:3218,10'
          Dst:             mod_create_ret
    - functionName:    xfer_stru
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3221
      functionLinenumberEnd: 3273
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          99
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - mod_create_ret
        - pr_cmd_get_displayable_str
        - pr_cmd_set_errno
        - pr_response_add
        - pr_response_add_err
        - toupper
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mod_xfer.c:3236,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_xfer.c:3226,7'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:3225,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3228,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3229,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3230,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3234,13'
          Dst:             toupper
        - Src:             'mod_xfer.c:3239,7'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:3240,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3259,9'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:3258,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3261,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3262,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3263,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3267,9'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:3266,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3269,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3270,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3271,14'
          Dst:             mod_create_ret
    - functionName:    xfer_mode
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3275
      functionLinenumberEnd: 3314
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          99
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - mod_create_ret
        - pr_cmd_get_displayable_str
        - pr_cmd_set_errno
        - pr_response_add
        - pr_response_add_err
        - toupper
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mod_xfer.c:3290,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_xfer.c:3280,7'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:3279,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3282,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3283,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3284,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3288,13'
          Dst:             toupper
        - Src:             'mod_xfer.c:3293,7'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:3294,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3301,9'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:3300,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3303,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3304,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3305,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3309,5'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:3308,3'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3311,3'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3312,3'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3313,10'
          Dst:             mod_create_ret
    - functionName:    xfer_post_mode
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1402
      functionLinenumberEnd: 1413
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mod_create_ret
        - pr_response_add_err
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:1403,3'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1403,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1405,7'
          Dst:             strcmp
    - functionName:    xfer_allo
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3316
      functionLinenumberEnd: 3395
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          181
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - mod_create_ret
        - pr_cmd_get_displayable_str
        - pr_cmd_set_errno
        - pr_fs_getcwd
        - pr_fs_getsize2
        - pr_log_debug
        - pr_response_add
        - pr_response_add_err
        - strerror
        - strtoull
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3327,7'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:3326,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3329,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3330,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3331,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3335,18'
          Dst:             strtoull
        - Src:             'mod_xfer.c:3341,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3343,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3344,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3345,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3353,12'
          Dst:             pr_fs_getcwd
        - Src:             'mod_xfer.c:3355,11'
          Dst:             pr_fs_getsize2
        - Src:             'mod_xfer.c:3362,24'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3362,15'
          Dst:             strerror
        - Src:             'mod_xfer.c:3360,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:3363,7'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:3374,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:3377,56'
          Dst:             strerror
        - Src:             'mod_xfer.c:3377,9'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3379,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3380,9'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3381,16'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3384,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:3387,7'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:3391,5'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:3394,10'
          Dst:             mod_create_ret
    - functionName:    xfer_smnt
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3397
      functionLinenumberEnd: 3399
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mod_create_ret
        - pr_response_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3398,3'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:3399,10'
          Dst:             mod_create_ret
    - functionName:    xfer_pre_retr
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2616
      functionLinenumberEnd: 2743
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         62
      ICount:          452
      EdgeCount:       84
      CyclomaticComplexity: 24
      functionsReached:
        - __errno_location
        - dir_best_path
        - dir_check
        - dir_realpath
        - file_mode2
        - find_config
        - get_param_ptr
        - mod_create_ret
        - pr_cmd_get_displayable_str
        - pr_cmd_set_errno
        - pr_fs_clear_cache2
        - pr_fs_decode_path2
        - pr_log_debug
        - pr_log_pri
        - pr_response_add_err
        - pr_table_add
        - pstrdup
        - strerror
        - xfer_check_limit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:2626,7'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:2625,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2628,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2629,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2630,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2633,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_xfer.c:2636,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2639,7'
          Dst:             strerror
        - Src:             'mod_xfer.c:2638,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2640,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2643,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2644,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2645,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2648,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_xfer.c:2649,9'
          Dst:             dir_realpath
        - Src:             'mod_xfer.c:2657,11'
          Dst:             dir_best_path
        - Src:             'mod_xfer.c:2661,8'
          Dst:             dir_check
        - Src:             'mod_xfer.c:2662,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2664,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2666,52'
          Dst:             strerror
        - Src:             'mod_xfer.c:2666,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2668,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2669,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2670,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2678,7'
          Dst:             find_config
        - Src:             'mod_xfer.c:2685,7'
          Dst:             xfer_check_limit
        - Src:             'mod_xfer.c:2686,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2688,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2689,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2690,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2693,11'
          Dst:             file_mode2
        - Src:             'mod_xfer.c:2695,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2697,52'
          Dst:             strerror
        - Src:             'mod_xfer.c:2697,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2699,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2700,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2701,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2709,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2712,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2713,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2714,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2720,19'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:2724,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2728,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2729,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2730,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2735,7'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:2734,7'
          Dst:             pr_table_add
        - Src:             'mod_xfer.c:2736,9'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2738,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2738,9'
          Dst:             strerror
        - Src:             'mod_xfer.c:2737,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:2742,10'
          Dst:             mod_create_ret
    - functionName:    xfer_retr
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2765
      functionLinenumberEnd: 3130
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         91
      ICount:          760
      EdgeCount:       124
      CyclomaticComplexity: 35
      functionsReached:
        - __errno_location
        - find_max_nbytes
        - mod_create_ret
        - palloc
        - pr_alarms_block
        - pr_alarms_unblock
        - pr_cmd_set_errno
        - pr_config_get_server_xfer_bufsz
        - pr_data_abort
        - pr_data_close2
        - pr_data_init
        - pr_data_open
        - pr_error_destroy
        - pr_error_set_where
        - pr_error_set_why
        - pr_error_strerror
        - pr_fs_fadvise
        - pr_fsio_close
        - pr_fsio_fstat
        - pr_fsio_lseek
        - pr_fsio_open_with_error
        - pr_gid2str
        - pr_log_debug
        - pr_log_pri
        - pr_response_add
        - pr_response_add_err
        - pr_scoreboard_entry_update
        - pr_signals_handle
        - pr_table_add
        - pr_table_get
        - pr_throttle_init
        - pr_throttle_pause
        - pr_trace_msg
        - pr_uid2str
        - pstrcat
        - retr_abort
        - retr_complete
        - strerror
        - transmit_data
        - xfer_displayfile
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:2778,3'
          Dst:             pr_throttle_init
        - Src:             'mod_xfer.c:2780,9'
          Dst:             pr_table_get
        - Src:             'mod_xfer.c:2782,13'
          Dst:             pr_fsio_open_with_error
        - Src:             'mod_xfer.c:2783,12'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2786,5'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:2787,27'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:2787,5'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:2792,7'
          Dst:             pr_uid2str
        - Src:             'mod_xfer.c:2793,7'
          Dst:             pr_gid2str
        - Src:             'mod_xfer.c:2793,52'
          Dst:             strerror
        - Src:             'mod_xfer.c:2790,12'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:2796,34'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:2796,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2797,7'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:2801,52'
          Dst:             strerror
        - Src:             'mod_xfer.c:2801,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2803,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2804,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2805,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2808,7'
          Dst:             pr_fsio_fstat
        - Src:             'mod_xfer.c:2810,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2812,12'
          Dst:             strerror
        - Src:             'mod_xfer.c:2811,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2814,5'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:2816,52'
          Dst:             strerror
        - Src:             'mod_xfer.c:2816,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2818,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2819,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2820,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2828,3'
          Dst:             pr_fs_fadvise
        - Src:             'mod_xfer.c:2850,7'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:2853,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2855,7'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:2858,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2859,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2860,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2878,7'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:2882,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2883,7'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:2886,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2887,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2888,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2891,9'
          Dst:             pr_fsio_lseek
        - Src:             'mod_xfer.c:2892,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2893,7'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:2894,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2899,23'
          Dst:             pr_uid2str
        - Src:             'mod_xfer.c:2900,9'
          Dst:             pr_gid2str
        - Src:             'mod_xfer.c:2901,14'
          Dst:             strerror
        - Src:             'mod_xfer.c:2897,14'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:2904,59'
          Dst:             strerror
        - Src:             'mod_xfer.c:2903,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2905,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2908,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2909,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2910,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2924,17'
          Dst:             pr_fsio_lseek
        - Src:             'mod_xfer.c:2928,19'
          Dst:             palloc
        - Src:             'mod_xfer.c:2930,12'
          Dst:             pr_table_add
        - Src:             'mod_xfer.c:2939,3'
          Dst:             pr_alarms_block
        - Src:             'mod_xfer.c:2942,3'
          Dst:             pr_data_init
        - Src:             'mod_xfer.c:2947,3'
          Dst:             pr_alarms_unblock
        - Src:             'mod_xfer.c:2969,7'
          Dst:             pr_data_open
        - Src:             'mod_xfer.c:2970,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2972,5'
          Dst:             retr_abort
        - Src:             'mod_xfer.c:2973,5'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:2975,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2976,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2977,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2981,25'
          Dst:             find_max_nbytes
        - Src:             'mod_xfer.c:2996,5'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:3001,5'
          Dst:             retr_abort
        - Src:             'mod_xfer.c:3004,5'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:3006,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3007,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3008,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3011,11'
          Dst:             pr_config_get_server_xfer_bufsz
        - Src:             'mod_xfer.c:3012,19'
          Dst:             palloc
        - Src:             'mod_xfer.c:3013,3'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:3016,3'
          Dst:             pr_scoreboard_entry_update
        - Src:             'mod_xfer.c:3030,5'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:3036,11'
          Dst:             transmit_data
        - Src:             'mod_xfer.c:3047,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3048,7'
          Dst:             retr_abort
        - Src:             'mod_xfer.c:3081,9'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:3084,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3085,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3086,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3104,5'
          Dst:             pr_throttle_pause
        - Src:             'mod_xfer.c:3108,5'
          Dst:             retr_abort
        - Src:             'mod_xfer.c:3109,5'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:3111,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3112,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3113,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3122,3'
          Dst:             pr_throttle_pause
        - Src:             'mod_xfer.c:3124,3'
          Dst:             retr_complete
        - Src:             'mod_xfer.c:3125,3'
          Dst:             xfer_displayfile
        - Src:             'mod_xfer.c:3126,3'
          Dst:             pr_data_close2
        - Src:             'mod_xfer.c:3127,3'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:3129,10'
          Dst:             mod_create_ret
    - functionName:    xfer_post_retr
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2745
      functionLinenumberEnd: 2762
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - palloc
        - pr_fsio_stat
        - pr_table_add
        - pr_table_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:2748,10'
          Dst:             pr_table_get
        - Src:             'mod_xfer.c:2752,9'
          Dst:             pr_fsio_stat
        - Src:             'mod_xfer.c:2755,19'
          Dst:             palloc
        - Src:             'mod_xfer.c:2757,14'
          Dst:             pr_table_add
    - functionName:    xfer_log_retr
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3450
      functionLinenumberEnd: 3463
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _log_transfer
        - pr_data_cleanup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3451,3'
          Dst:             _log_transfer
        - Src:             'mod_xfer.c:3457,3'
          Dst:             pr_data_cleanup
    - functionName:    xfer_err_cleanup
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3402
      functionLinenumberEnd: 3431
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          130
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - get_param_ptr
        - pr_data_cleanup
        - pr_data_reset
        - pr_fsio_unlink
        - pr_log_debug
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3408,21'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:3412,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:3414,13'
          Dst:             pr_fsio_unlink
        - Src:             'mod_xfer.c:3415,15'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3417,50'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3417,41'
          Dst:             strerror
        - Src:             'mod_xfer.c:3416,13'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:3424,3'
          Dst:             pr_data_reset
        - Src:             'mod_xfer.c:3425,3'
          Dst:             pr_data_cleanup
    - functionName:    xfer_pre_stor
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1420
      functionLinenumberEnd: 1682
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         147
      ICount:          905
      EdgeCount:       197
      CyclomaticComplexity: 52
      functionsReached:
        - __errno_location
        - dir_best_path
        - dir_check
        - file_mode2
        - find_config
        - get_hidden_store_path
        - get_param_ptr
        - mod_create_ret
        - pr_cmd_get_displayable_str
        - pr_cmd_set_errno
        - pr_filter_allow_path
        - pr_fs_clear_cache2
        - pr_fs_decode_path2
        - pr_log_debug
        - pr_log_pri
        - pr_response_add_err
        - pr_snprintf
        - pr_table_add
        - pr_table_remove
        - pstrdup
        - sreplace
        - strcasecmp
        - strerror
        - strstr
        - xfer_check_limit
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mod_xfer.c:1468,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_xfer.c:1429,7'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:1428,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1431,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1432,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1433,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1436,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_xfer.c:1439,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1442,7'
          Dst:             strerror
        - Src:             'mod_xfer.c:1441,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1443,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1446,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1447,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1448,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1451,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_xfer.c:1452,10'
          Dst:             dir_best_path
        - Src:             'mod_xfer.c:1455,8'
          Dst:             dir_check
        - Src:             'mod_xfer.c:1456,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1458,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1460,52'
          Dst:             strerror
        - Src:             'mod_xfer.c:1460,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1462,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1463,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1464,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1467,9'
          Dst:             pr_filter_allow_path
        - Src:             'mod_xfer.c:1473,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1475,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1477,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1478,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1479,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1482,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1484,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1486,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1487,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1488,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1491,7'
          Dst:             xfer_check_limit
        - Src:             'mod_xfer.c:1492,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1494,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1495,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1496,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1499,11'
          Dst:             file_mode2
        - Src:             'mod_xfer.c:1501,21'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:1506,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1507,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1509,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1510,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1511,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1526,11'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:1528,14'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:1548,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1551,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1552,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1553,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1559,19'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:1566,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1568,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1573,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1574,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1575,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1581,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1582,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1583,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1584,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1590,12'
          Dst:             pr_table_remove
        - Src:             'mod_xfer.c:1593,9'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:1592,9'
          Dst:             pr_table_add
        - Src:             'mod_xfer.c:1594,11'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1597,20'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1597,11'
          Dst:             strerror
        - Src:             'mod_xfer.c:1595,9'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1604,7'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:1603,7'
          Dst:             pr_table_add
        - Src:             'mod_xfer.c:1605,9'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1607,68'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1607,59'
          Dst:             strerror
        - Src:             'mod_xfer.c:1606,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1611,7'
          Dst:             find_config
        - Src:             'mod_xfer.c:1624,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1626,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1630,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1631,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1632,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1649,11'
          Dst:             strstr
        - Src:             'mod_xfer.c:1653,9'
          Dst:             pr_snprintf
        - Src:             'mod_xfer.c:1655,18'
          Dst:             sreplace
        - Src:             'mod_xfer.c:1658,11'
          Dst:             strstr
        - Src:             'mod_xfer.c:1662,9'
          Dst:             pr_snprintf
        - Src:             'mod_xfer.c:1664,18'
          Dst:             sreplace
        - Src:             'mod_xfer.c:1667,11'
          Dst:             get_hidden_store_path
        - Src:             'mod_xfer.c:1668,22'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1670,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1671,9'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1672,16'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1676,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1681,10'
          Dst:             mod_create_ret
    - functionName:    xfer_stor
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1914
      functionLinenumberEnd: 2426
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         146
      ICount:          1177
      EdgeCount:       199
      CyclomaticComplexity: 55
      functionsReached:
        - __errno_location
        - _log_transfer
        - find_max_nbytes
        - mod_create_ret
        - palloc
        - pr_alarms_block
        - pr_alarms_unblock
        - pr_cmd_set_errno
        - pr_config_get_server_xfer_bufsz
        - pr_data_abort
        - pr_data_close2
        - pr_data_init
        - pr_data_open
        - pr_data_xfer
        - pr_error_destroy
        - pr_error_set_where
        - pr_error_set_why
        - pr_error_strerror
        - pr_fs_clear_cache2
        - pr_fs_fadvise
        - pr_fs_getcwd
        - pr_fs_setcwd
        - pr_fsio_close
        - pr_fsio_fstat
        - pr_fsio_lseek
        - pr_fsio_open_with_error
        - pr_fsio_rename
        - pr_fsio_stat
        - pr_fsio_unlink
        - pr_fsio_write_with_error
        - pr_gid2str
        - pr_log_debug
        - pr_log_pri
        - pr_response_add
        - pr_response_add_err
        - pr_signals_handle
        - pr_table_add
        - pr_table_get
        - pr_throttle_init
        - pr_throttle_pause
        - pr_trace_msg
        - pr_uid2str
        - pstrcat
        - stor_abort
        - stor_chown
        - stor_complete
        - strerror
        - xfer_displayfile
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:1928,3'
          Dst:             pr_throttle_init
        - Src:             'mod_xfer.c:1930,23'
          Dst:             pr_table_get
        - Src:             'mod_xfer.c:1931,30'
          Dst:             pr_table_get
        - Src:             'mod_xfer.c:1939,16'
          Dst:             pr_fs_getcwd
        - Src:             'mod_xfer.c:1939,3'
          Dst:             pr_fs_setcwd
        - Src:             'mod_xfer.c:1951,11'
          Dst:             pr_table_get
        - Src:             'mod_xfer.c:1953,7'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:1959,7'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:1964,15'
          Dst:             pr_fsio_open_with_error
        - Src:             'mod_xfer.c:1966,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1969,7'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:1970,29'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:1970,7'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:1975,9'
          Dst:             pr_uid2str
        - Src:             'mod_xfer.c:1976,9'
          Dst:             pr_gid2str
        - Src:             'mod_xfer.c:1977,9'
          Dst:             strerror
        - Src:             'mod_xfer.c:1973,14'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:1981,15'
          Dst:             pr_fsio_open_with_error
        - Src:             'mod_xfer.c:1983,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1986,11'
          Dst:             pr_fsio_lseek
        - Src:             'mod_xfer.c:1988,30'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1988,21'
          Dst:             strerror
        - Src:             'mod_xfer.c:1987,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1989,16'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:1994,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1996,7'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:1997,29'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:1997,7'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:2002,9'
          Dst:             pr_uid2str
        - Src:             'mod_xfer.c:2003,9'
          Dst:             pr_gid2str
        - Src:             'mod_xfer.c:2004,9'
          Dst:             strerror
        - Src:             'mod_xfer.c:2000,14'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:2019,15'
          Dst:             pr_fsio_open_with_error
        - Src:             'mod_xfer.c:2020,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2023,7'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:2024,29'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:2024,7'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:2029,9'
          Dst:             pr_uid2str
        - Src:             'mod_xfer.c:2030,9'
          Dst:             pr_gid2str
        - Src:             'mod_xfer.c:2030,55'
          Dst:             strerror
        - Src:             'mod_xfer.c:2027,14'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:2045,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_xfer.c:2046,9'
          Dst:             pr_fsio_lseek
        - Src:             'mod_xfer.c:2048,53'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2048,44'
          Dst:             strerror
        - Src:             'mod_xfer.c:2047,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2049,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2051,16'
          Dst:             pr_fsio_stat
        - Src:             'mod_xfer.c:2053,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2053,9'
          Dst:             strerror
        - Src:             'mod_xfer.c:2052,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2054,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2058,14'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:2059,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2074,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2076,14'
          Dst:             pr_fsio_close
        - Src:             'mod_xfer.c:2079,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2080,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2081,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2096,34'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:2096,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2097,7'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:2102,9'
          Dst:             strerror
        - Src:             'mod_xfer.c:2101,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2105,52'
          Dst:             strerror
        - Src:             'mod_xfer.c:2105,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2107,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2108,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2109,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2117,3'
          Dst:             pr_fs_fadvise
        - Src:             'mod_xfer.c:2120,17'
          Dst:             pr_fsio_lseek
        - Src:             'mod_xfer.c:2124,19'
          Dst:             palloc
        - Src:             'mod_xfer.c:2126,12'
          Dst:             pr_table_add
        - Src:             'mod_xfer.c:2133,10'
          Dst:             pr_fsio_fstat
        - Src:             'mod_xfer.c:2140,3'
          Dst:             pr_alarms_block
        - Src:             'mod_xfer.c:2143,3'
          Dst:             pr_data_init
        - Src:             'mod_xfer.c:2149,23'
          Dst:             pr_table_get
        - Src:             'mod_xfer.c:2150,30'
          Dst:             pr_table_get
        - Src:             'mod_xfer.c:2154,3'
          Dst:             pr_alarms_unblock
        - Src:             'mod_xfer.c:2157,3'
          Dst:             stor_chown
        - Src:             'mod_xfer.c:2163,7'
          Dst:             pr_data_open
        - Src:             'mod_xfer.c:2164,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2166,5'
          Dst:             stor_abort
        - Src:             'mod_xfer.c:2167,5'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:2169,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2170,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2171,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2181,22'
          Dst:             find_max_nbytes
        - Src:             'mod_xfer.c:2189,11'
          Dst:             pr_config_get_server_xfer_bufsz
        - Src:             'mod_xfer.c:2190,19'
          Dst:             palloc
        - Src:             'mod_xfer.c:2191,3'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:2194,17'
          Dst:             pr_data_xfer
        - Src:             'mod_xfer.c:2197,5'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:2211,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:2215,7'
          Dst:             stor_abort
        - Src:             'mod_xfer.c:2226,7'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:2227,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2228,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2229,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2237,11'
          Dst:             pr_fsio_write_with_error
        - Src:             'mod_xfer.c:2238,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2243,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2244,7'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:2246,13'
          Dst:             pr_fsio_write_with_error
        - Src:             'mod_xfer.c:2247,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2254,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2256,9'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:2257,31'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:2257,9'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:2263,9'
          Dst:             pr_uid2str
        - Src:             'mod_xfer.c:2264,9'
          Dst:             pr_gid2str
        - Src:             'mod_xfer.c:2265,9'
          Dst:             strerror
        - Src:             'mod_xfer.c:2261,14'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:2268,36'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:2268,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2269,9'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:2273,7'
          Dst:             stor_abort
        - Src:             'mod_xfer.c:2274,7'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:2276,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2277,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2278,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2282,5'
          Dst:             pr_throttle_pause
        - Src:             'mod_xfer.c:2292,9'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:2297,9'
          Dst:             stor_abort
        - Src:             'mod_xfer.c:2299,9'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:2300,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2301,9'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2302,16'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2308,5'
          Dst:             stor_abort
        - Src:             'mod_xfer.c:2309,5'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:2311,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2312,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2313,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2320,5'
          Dst:             stor_abort
        - Src:             'mod_xfer.c:2327,5'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:2328,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2329,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2330,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2338,5'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:2343,5'
          Dst:             stor_abort
        - Src:             'mod_xfer.c:2345,5'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:2346,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2347,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2348,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2352,3'
          Dst:             pr_throttle_pause
        - Src:             'mod_xfer.c:2354,7'
          Dst:             stor_complete
        - Src:             'mod_xfer.c:2355,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2357,5'
          Dst:             _log_transfer
        - Src:             'mod_xfer.c:2366,54'
          Dst:             strerror
        - Src:             'mod_xfer.c:2366,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2368,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2369,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2370,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2382,52'
          Dst:             strerror
        - Src:             'mod_xfer.c:2382,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2384,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2385,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2386,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2391,9'
          Dst:             pr_fsio_rename
        - Src:             'mod_xfer.c:2392,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2400,54'
          Dst:             strerror
        - Src:             'mod_xfer.c:2399,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:2403,54'
          Dst:             strerror
        - Src:             'mod_xfer.c:2402,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2405,11'
          Dst:             pr_fsio_unlink
        - Src:             'mod_xfer.c:2406,13'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2408,48'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2408,39'
          Dst:             strerror
        - Src:             'mod_xfer.c:2407,11'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2412,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2413,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2414,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2421,3'
          Dst:             xfer_displayfile
        - Src:             'mod_xfer.c:2422,3'
          Dst:             pr_data_close2
        - Src:             'mod_xfer.c:2423,3'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:2425,10'
          Dst:             mod_create_ret
    - functionName:    xfer_post_stor
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1836
      functionLinenumberEnd: 1853
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - palloc
        - pr_fsio_stat
        - pr_table_add
        - pr_table_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:1839,10'
          Dst:             pr_table_get
        - Src:             'mod_xfer.c:1843,9'
          Dst:             pr_fsio_stat
        - Src:             'mod_xfer.c:1846,19'
          Dst:             palloc
        - Src:             'mod_xfer.c:1848,14'
          Dst:             pr_table_add
    - functionName:    xfer_log_stor
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3434
      functionLinenumberEnd: 3447
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _log_transfer
        - pr_data_cleanup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3435,3'
          Dst:             _log_transfer
        - Src:             'mod_xfer.c:3441,3'
          Dst:             pr_data_cleanup
    - functionName:    xfer_pre_stou
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1688
      functionLinenumberEnd: 1834
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         65
      ICount:          446
      EdgeCount:       88
      CyclomaticComplexity: 25
      functionsReached:
        - __errno_location
        - close
        - dir_best_path
        - dir_check
        - file_mode2
        - find_config
        - get_param_ptr
        - mkstemp
        - mod_create_ret
        - pr_cmd_get_displayable_str
        - pr_cmd_set_errno
        - pr_fsio_unlink
        - pr_log_debug
        - pr_log_pri
        - pr_response_add_err
        - pr_table_add
        - pstrcat
        - pstrdup
        - strerror
        - xfer_check_limit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:1704,7'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:1703,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1706,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1707,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1708,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1711,7'
          Dst:             xfer_check_limit
        - Src:             'mod_xfer.c:1712,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1714,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1715,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1716,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1726,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1729,7'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1732,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1733,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1734,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1740,7'
          Dst:             find_config
        - Src:             'mod_xfer.c:1748,14'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:1750,13'
          Dst:             mkstemp
        - Src:             'mod_xfer.c:1752,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1755,7'
          Dst:             strerror
        - Src:             'mod_xfer.c:1754,5'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1758,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1761,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1762,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1763,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1773,10'
          Dst:             close
        - Src:             'mod_xfer.c:1775,14'
          Dst:             dir_best_path
        - Src:             'mod_xfer.c:1778,8'
          Dst:             dir_check
        - Src:             'mod_xfer.c:1779,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1784,12'
          Dst:             pr_fsio_unlink
        - Src:             'mod_xfer.c:1785,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1787,52'
          Dst:             strerror
        - Src:             'mod_xfer.c:1787,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1789,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1790,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1791,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1794,10'
          Dst:             file_mode2
        - Src:             'mod_xfer.c:1799,21'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:1803,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1804,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1806,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1807,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1808,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1814,12'
          Dst:             pr_fsio_unlink
        - Src:             'mod_xfer.c:1815,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1818,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1819,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1820,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1825,7'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:1824,7'
          Dst:             pr_table_add
        - Src:             'mod_xfer.c:1826,9'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1828,68'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1828,59'
          Dst:             strerror
        - Src:             'mod_xfer.c:1827,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1833,10'
          Dst:             mod_create_ret
    - functionName:    xfer_post_stou
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1861
      functionLinenumberEnd: 1893
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          131
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - get_param_ptr
        - palloc
        - pr_fsio_chmod
        - pr_fsio_stat
        - pr_log_pri
        - pr_table_add
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:1868,19'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:1878,7'
          Dst:             pr_fsio_chmod
        - Src:             'mod_xfer.c:1881,33'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1881,24'
          Dst:             strerror
        - Src:             'mod_xfer.c:1880,5'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1884,7'
          Dst:             pr_fsio_stat
        - Src:             'mod_xfer.c:1887,17'
          Dst:             palloc
        - Src:             'mod_xfer.c:1889,12'
          Dst:             pr_table_add
    - functionName:    xfer_pre_appe
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1899
      functionLinenumberEnd: 1912
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_response_add_err
        - xfer_check_limit
        - xfer_pre_stor
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:1902,7'
          Dst:             xfer_check_limit
        - Src:             'mod_xfer.c:1903,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1905,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1906,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1907,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1911,10'
          Dst:             xfer_pre_stor
    - functionName:    xfer_abor
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3132
      functionLinenumberEnd: 3153
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - mod_create_ret
        - pr_cmd_get_displayable_str
        - pr_cmd_set_errno
        - pr_data_abort
        - pr_response_add
        - pr_response_add_err
        - retr_abort
        - stor_abort
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3135,7'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:3134,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:3137,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:3138,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3139,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3143,5'
          Dst:             stor_abort
        - Src:             'mod_xfer.c:3146,5'
          Dst:             retr_abort
        - Src:             'mod_xfer.c:3149,3'
          Dst:             pr_data_abort
        - Src:             'mod_xfer.c:3151,3'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:3152,10'
          Dst:             mod_create_ret
    - functionName:    xfer_log_abor
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3155
      functionLinenumberEnd: 3161
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_data_cleanup
        - pr_data_reset
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3158,3'
          Dst:             pr_data_reset
        - Src:             'mod_xfer.c:3159,3'
          Dst:             pr_data_cleanup
    - functionName:    xfer_opts_rest
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1312
      functionLinenumberEnd: 1387
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         32
      ICount:          232
      EdgeCount:       43
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - get_param_ptr
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_response_add
        - pr_response_add_err
        - pstrdup
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:1317,19'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:1320,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1322,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1323,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1324,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1327,12'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:1337,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1339,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1340,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1341,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1345,7'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:1349,21'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:1353,7'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:1354,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1357,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1358,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1359,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1360,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1363,7'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:1367,21'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:1371,7'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:1372,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1375,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1376,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1377,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1378,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1382,3'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1384,3'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:1385,3'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1386,10'
          Dst:             mod_create_ret
    - functionName:    xfer_rest
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2455
      functionLinenumberEnd: 2510
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          126
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - mod_create_ret
        - parse_offset
        - pr_cmd_get_displayable_str
        - pr_cmd_set_errno
        - pr_log_debug
        - pr_response_add
        - pr_response_add_err
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:2461,7'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:2460,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2463,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2464,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2465,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2468,9'
          Dst:             parse_offset
        - Src:             'mod_xfer.c:2470,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2472,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2475,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2476,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2477,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2492,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2493,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2497,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2498,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2499,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2507,3'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:2509,10'
          Dst:             mod_create_ret
    - functionName:    xfer_rang
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2512
      functionLinenumberEnd: 2610
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          225
      EdgeCount:       29
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - dir_check
        - mod_create_ret
        - parse_offset
        - pr_cmd_get_displayable_str
        - pr_cmd_set_errno
        - pr_log_debug
        - pr_response_add
        - pr_response_add_err
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:2518,7'
          Dst:             pr_cmd_get_displayable_str
        - Src:             'mod_xfer.c:2517,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2520,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2521,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2522,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2525,8'
          Dst:             dir_check
        - Src:             'mod_xfer.c:2528,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2530,7'
          Dst:             strerror
        - Src:             'mod_xfer.c:2529,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2532,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2533,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2534,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2537,9'
          Dst:             parse_offset
        - Src:             'mod_xfer.c:2539,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2541,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2544,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2545,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2546,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2549,9'
          Dst:             parse_offset
        - Src:             'mod_xfer.c:2551,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2553,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2556,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2557,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2558,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2570,7'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:2571,14'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2574,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2576,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2578,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2579,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2580,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2585,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:2586,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:2590,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_xfer.c:2591,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2592,12'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:2606,3'
          Dst:             pr_response_add
        - Src:             'mod_xfer.c:2609,10'
          Dst:             mod_create_ret
    - functionName:    xfer_post_prot
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1389
      functionLinenumberEnd: 1400
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mod_create_ret
        - pr_response_add_err
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:1390,3'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1390,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:1392,7'
          Dst:             strcmp
    - functionName:    xfer_post_pass
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3510
      functionLinenumberEnd: 3576
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         42
      ICount:          236
      EdgeCount:       55
      CyclomaticComplexity: 15
      functionsReached:
        - find_config
        - find_config_next
        - noxfer_timeout_cb
        - pr_data_ignore_ascii
        - pr_data_set_timeout
        - pr_log_debug
        - pr_signals_handle
        - pr_timer_add
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3518,9'
          Dst:             find_config
        - Src:             'mod_xfer.c:3524,11'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:3530,7'
          Dst:             find_config
        - Src:             'mod_xfer.c:3533,5'
          Dst:             pr_data_set_timeout
        - Src:             'mod_xfer.c:3537,7'
          Dst:             pr_timer_add
        - Src:             'mod_xfer.c:3537,7'
          Dst:             noxfer_timeout_cb
        - Src:             'mod_xfer.c:3542,7'
          Dst:             find_config
        - Src:             'mod_xfer.c:3545,5'
          Dst:             pr_data_set_timeout
        - Src:             'mod_xfer.c:3552,7'
          Dst:             find_config
        - Src:             'mod_xfer.c:3556,5'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:3561,9'
          Dst:             find_config_next
        - Src:             'mod_xfer.c:3565,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:3566,5'
          Dst:             pr_data_ignore_ascii
    - functionName:    noxfer_timeout_cb
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3466
      functionLinenumberEnd: 3508
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - pr_data_get_timeout
        - pr_event_generate
        - pr_log_pri
        - pr_response_send_async
        - pr_session_disconnect
        - pr_session_get_protocol
        - pr_timer_remove
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3470,13'
          Dst:             pr_data_get_timeout
        - Src:             'mod_xfer.c:3473,5'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:3481,3'
          Dst:             pr_event_generate
        - Src:             'mod_xfer.c:3482,3'
          Dst:             pr_response_send_async
        - Src:             'mod_xfer.c:3485,3'
          Dst:             pr_timer_remove
        - Src:             'mod_xfer.c:3486,3'
          Dst:             pr_timer_remove
        - Src:             'mod_xfer.c:3493,5'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:3495,5'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:3497,5'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:3501,11'
          Dst:             pr_session_get_protocol
        - Src:             'mod_xfer.c:3503,3'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:3504,3'
          Dst:             pr_session_disconnect
    - functionName:    parse_offset
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2429
      functionLinenumberEnd: 2453
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - strtoull
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:2437,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:2442,10'
          Dst:             strtoull
        - Src:             'mod_xfer.c:2448,5'
          Dst:             __errno_location
    - functionName:    xfer_check_limit
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 462
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         74
      ICount:          542
      EdgeCount:       100
      CyclomaticComplexity: 28
      functionsReached:
        - find_config
        - find_config_next
        - pr_event_generate
        - pr_log_debug
        - pr_netaddr_get_ipstr
        - pr_response_send
        - pr_restore_scoreboard
        - pr_rewind_scoreboard
        - pr_scoreboard_entry_read
        - pr_signals_handle
        - pr_snprintf
        - pr_trace_msg
        - sreplace
        - strcasecmp
        - strcmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:268,29'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_xfer.c:273,5'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_xfer.c:272,3'
          Dst:             pr_snprintf
        - Src:             'mod_xfer.c:276,7'
          Dst:             find_config
        - Src:             'mod_xfer.c:283,5'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:290,11'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:297,11'
          Dst:             find_config_next
        - Src:             'mod_xfer.c:308,12'
          Dst:             pr_rewind_scoreboard
        - Src:             'mod_xfer.c:309,21'
          Dst:             pr_scoreboard_entry_read
        - Src:             'mod_xfer.c:310,7'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:315,11'
          Dst:             strcmp
        - Src:             'mod_xfer.c:316,9'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:322,11'
          Dst:             strcmp
        - Src:             'mod_xfer.c:323,9'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:329,11'
          Dst:             strcmp
        - Src:             'mod_xfer.c:330,9'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:339,5'
          Dst:             pr_restore_scoreboard
        - Src:             'mod_xfer.c:341,5'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:355,7'
          Dst:             pr_event_generate
        - Src:             'mod_xfer.c:358,7'
          Dst:             pr_snprintf
        - Src:             'mod_xfer.c:359,37'
          Dst:             sreplace
        - Src:             'mod_xfer.c:359,7'
          Dst:             pr_response_send
        - Src:             'mod_xfer.c:361,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:367,9'
          Dst:             find_config_next
        - Src:             'mod_xfer.c:370,7'
          Dst:             find_config
        - Src:             'mod_xfer.c:377,5'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:384,11'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:391,11'
          Dst:             find_config_next
        - Src:             'mod_xfer.c:402,12'
          Dst:             pr_rewind_scoreboard
        - Src:             'mod_xfer.c:403,21'
          Dst:             pr_scoreboard_entry_read
        - Src:             'mod_xfer.c:404,7'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:406,11'
          Dst:             strcmp
        - Src:             'mod_xfer.c:407,9'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:413,11'
          Dst:             strcmp
        - Src:             'mod_xfer.c:414,9'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:420,11'
          Dst:             strcmp
        - Src:             'mod_xfer.c:421,9'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:430,5'
          Dst:             pr_restore_scoreboard
        - Src:             'mod_xfer.c:432,5'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:446,7'
          Dst:             pr_event_generate
        - Src:             'mod_xfer.c:449,7'
          Dst:             pr_snprintf
        - Src:             'mod_xfer.c:450,37'
          Dst:             sreplace
        - Src:             'mod_xfer.c:450,7'
          Dst:             pr_response_send
        - Src:             'mod_xfer.c:452,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:458,9'
          Dst:             find_config_next
    - functionName:    mkstemp
      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:    stor_chown
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 792
      functionLinenumberEnd: 970
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         69
      ICount:          450
      EdgeCount:       91
      CyclomaticComplexity: 24
      functionsReached:
        - __errno_location
        - pr_error_destroy
        - pr_error_set_where
        - pr_error_set_why
        - pr_error_strerror
        - pr_fs_clear_cache2
        - pr_fsio_chmod_with_error
        - pr_fsio_lchown_with_error
        - pr_fsio_stat
        - pr_gid2str
        - pr_log_debug
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
        - pr_uid2str
        - pstrcat
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:811,5'
          Dst:             pr_privs_root
        - Src:             'mod_xfer.c:812,11'
          Dst:             pr_fsio_lchown_with_error
        - Src:             'mod_xfer.c:814,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:815,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_xfer.c:818,7'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:819,29'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:819,7'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:823,42'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:823,9'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:824,9'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:829,11'
          Dst:             strerror
        - Src:             'mod_xfer.c:828,9'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:835,22'
          Dst:             pr_uid2str
        - Src:             'mod_xfer.c:836,11'
          Dst:             pr_gid2str
        - Src:             'mod_xfer.c:834,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:840,11'
          Dst:             pr_uid2str
        - Src:             'mod_xfer.c:839,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:843,7'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_xfer.c:844,11'
          Dst:             pr_fsio_stat
        - Src:             'mod_xfer.c:847,20'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:847,11'
          Dst:             strerror
        - Src:             'mod_xfer.c:845,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:860,7'
          Dst:             pr_privs_root
        - Src:             'mod_xfer.c:861,13'
          Dst:             pr_fsio_chmod_with_error
        - Src:             'mod_xfer.c:862,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:863,7'
          Dst:             pr_privs_relinquish
        - Src:             'mod_xfer.c:866,9'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:867,31'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:867,9'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:871,38'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:871,11'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:872,11'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:877,40'
          Dst:             strerror
        - Src:             'mod_xfer.c:876,11'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:881,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:903,7'
          Dst:             pr_privs_root
        - Src:             'mod_xfer.c:906,11'
          Dst:             pr_fsio_lchown_with_error
        - Src:             'mod_xfer.c:908,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:911,7'
          Dst:             pr_privs_relinquish
        - Src:             'mod_xfer.c:915,7'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:916,29'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:916,7'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:920,42'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:920,9'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:921,9'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:926,53'
          Dst:             strerror
        - Src:             'mod_xfer.c:925,9'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:932,9'
          Dst:             pr_gid2str
        - Src:             'mod_xfer.c:930,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:934,7'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_xfer.c:935,11'
          Dst:             pr_fsio_stat
        - Src:             'mod_xfer.c:938,51'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:938,42'
          Dst:             strerror
        - Src:             'mod_xfer.c:936,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:942,9'
          Dst:             pr_privs_root
        - Src:             'mod_xfer.c:945,13'
          Dst:             pr_fsio_chmod_with_error
        - Src:             'mod_xfer.c:946,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:949,9'
          Dst:             pr_privs_relinquish
        - Src:             'mod_xfer.c:953,9'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:954,31'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:954,9'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:958,38'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:958,11'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:959,11'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:965,13'
          Dst:             strerror
        - Src:             'mod_xfer.c:963,11'
          Dst:             pr_log_debug
    - functionName:    find_max_nbytes
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         66
      ICount:          393
      EdgeCount:       88
      CyclomaticComplexity: 24
      functionsReached:
        - find_config
        - find_config_next
        - pr_expr_eval_class_or
        - pr_expr_eval_group_or
        - pr_expr_eval_user_or
        - pr_log_debug
        - pr_signals_handle
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:95,7'
          Dst:             find_config
        - Src:             'mod_xfer.c:97,5'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:106,11'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:107,13'
          Dst:             pr_expr_eval_user_or
        - Src:             'mod_xfer.c:120,18'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:121,13'
          Dst:             pr_expr_eval_group_or
        - Src:             'mod_xfer.c:134,18'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:135,13'
          Dst:             pr_expr_eval_class_or
        - Src:             'mod_xfer.c:162,9'
          Dst:             find_config_next
        - Src:             'mod_xfer.c:171,5'
          Dst:             pr_log_debug
    - functionName:    stor_complete
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1097
      functionLinenumberEnd: 1167
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          153
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - destroy_pool
        - make_sub_pool
        - pr_error_destroy
        - pr_error_set_where
        - pr_error_set_why
        - pr_error_strerror
        - pr_fsio_close_with_error
        - pr_fsio_unlink_with_error
        - pr_log_debug
        - pr_log_pri
        - pstrcat
        - pstrdup
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:1103,14'
          Dst:             make_sub_pool
        - Src:             'mod_xfer.c:1108,13'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:1110,9'
          Dst:             pr_fsio_close_with_error
        - Src:             'mod_xfer.c:1111,12'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1114,5'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:1115,27'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:1115,5'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:1119,39'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:1119,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1120,7'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:1125,9'
          Dst:             strerror
        - Src:             'mod_xfer.c:1124,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1133,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1136,15'
          Dst:             pr_fsio_unlink_with_error
        - Src:             'mod_xfer.c:1138,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1141,11'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:1142,33'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:1142,11'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:1147,42'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:1147,15'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1151,43'
          Dst:             strerror
        - Src:             'mod_xfer.c:1150,15'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1155,11'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:1161,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1165,3'
          Dst:             destroy_pool
    - functionName:    xfer_displayfile
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 464
      functionLinenumberEnd: 490
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         18
      ICount:          88
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - get_param_ptr
        - pr_display_fh
        - pr_display_file
        - pr_fsio_lseek
        - pr_log_debug
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:467,9'
          Dst:             pr_display_fh
        - Src:             'mod_xfer.c:469,64'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:469,55'
          Dst:             strerror
        - Src:             'mod_xfer.c:468,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:473,9'
          Dst:             pr_fsio_lseek
        - Src:             'mod_xfer.c:475,64'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:475,55'
          Dst:             strerror
        - Src:             'mod_xfer.c:474,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:481,23'
          Dst:             get_param_ptr
        - Src:             'mod_xfer.c:484,11'
          Dst:             pr_display_file
        - Src:             'mod_xfer.c:486,54'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:486,45'
          Dst:             strerror
        - Src:             'mod_xfer.c:485,9'
          Dst:             pr_log_debug
    - functionName:    get_hidden_store_path
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1171
      functionLinenumberEnd: 1310
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          351
      EdgeCount:       65
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
        - file_mode2
        - pr_fs_clear_cache2
        - pr_fs_is_nfs
        - pr_log_debug
        - pr_log_pri
        - pr_response_add_err
        - pr_table_add
        - pr_table_set
        - pstrcat
        - pstrdup
        - pstrndup
        - strerror
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:1214,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1218,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1219,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1226,12'
          Dst:             strlen
        - Src:             'mod_xfer.c:1226,29'
          Dst:             strlen
        - Src:             'mod_xfer.c:1226,44'
          Dst:             strlen
        - Src:             'mod_xfer.c:1231,5'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1235,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1236,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1240,7'
          Dst:             pr_table_add
        - Src:             'mod_xfer.c:1241,9'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1244,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1244,9'
          Dst:             strerror
        - Src:             'mod_xfer.c:1242,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1251,19'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:1253,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1259,19'
          Dst:             pstrndup
        - Src:             'mod_xfer.c:1262,19'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:1265,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1269,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_xfer.c:1270,7'
          Dst:             file_mode2
        - Src:             'mod_xfer.c:1273,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:1276,5'
          Dst:             pr_response_add_err
        - Src:             'mod_xfer.c:1278,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1282,7'
          Dst:             pr_table_set
        - Src:             'mod_xfer.c:1286,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1286,7'
          Dst:             strerror
        - Src:             'mod_xfer.c:1284,5'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:1296,18'
          Dst:             pstrndup
        - Src:             'mod_xfer.c:1299,7'
          Dst:             pr_fs_is_nfs
        - Src:             'mod_xfer.c:1301,9'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:1300,9'
          Dst:             pr_table_add
        - Src:             'mod_xfer.c:1304,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:1304,9'
          Dst:             strerror
        - Src:             'mod_xfer.c:1302,7'
          Dst:             pr_log_pri
    - functionName:    transmit_data
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 722
      functionLinenumberEnd: 789
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          151
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pr_inet_set_proto_cork
        - pr_log_debug
        - pr_log_pri
        - strerror
        - transmit_normal
        - transmit_sendfile
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:731,7'
          Dst:             pr_inet_set_proto_cork
        - Src:             'mod_xfer.c:733,49'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:733,40'
          Dst:             strerror
        - Src:             'mod_xfer.c:732,5'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:737,9'
          Dst:             transmit_sendfile
        - Src:             'mod_xfer.c:746,11'
          Dst:             transmit_normal
        - Src:             'mod_xfer.c:747,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:756,60'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:756,51'
          Dst:             strerror
        - Src:             'mod_xfer.c:757,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:755,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:758,11'
          Dst:             transmit_normal
        - Src:             'mod_xfer.c:759,14'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:780,9'
          Dst:             pr_inet_set_proto_cork
        - Src:             'mod_xfer.c:781,11'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:783,53'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:783,44'
          Dst:             strerror
        - Src:             'mod_xfer.c:782,9'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:788,3'
          Dst:             __errno_location
    - functionName:    retr_complete
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 983
      functionLinenumberEnd: 986
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_fsio_close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:984,3'
          Dst:             pr_fsio_close
    - functionName:    transmit_sendfile
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 582
      functionLinenumberEnd: 714
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          324
      EdgeCount:       88
      CyclomaticComplexity: 20
      functionsReached:
        - __errno_location
        - pr_data_sendfile
        - pr_log_debug
        - pr_log_pri
        - pr_signals_handle
        - pr_throttle_have_rate
        - strerror
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mod_xfer.c:671,5'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_xfer.c:593,7'
          Dst:             pr_throttle_have_rate
        - Src:             'mod_xfer.c:601,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:604,18'
          Dst:             pr_throttle_have_rate
        - Src:             'mod_xfer.c:605,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:609,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:612,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:616,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:620,9'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:630,3'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:649,5'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:658,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:666,15'
          Dst:             pr_data_sendfile
        - Src:             'mod_xfer.c:669,18'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:676,13'
          Dst:             strerror
        - Src:             'mod_xfer.c:675,11'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:677,11'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:682,9'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:707,9'
          Dst:             strerror
        - Src:             'mod_xfer.c:706,7'
          Dst:             pr_log_pri
        - Src:             'mod_xfer.c:708,7'
          Dst:             __errno_location
    - functionName:    transmit_normal
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 527
      functionLinenumberEnd: 578
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          146
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pr_data_xfer
        - pr_error_destroy
        - pr_error_set_where
        - pr_error_set_why
        - pr_error_strerror
        - pr_fsio_read_with_error
        - pr_gid2str
        - pr_log_debug
        - pr_signals_handle
        - pr_trace_msg
        - pr_uid2str
        - pstrcat
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:540,11'
          Dst:             pr_fsio_read_with_error
        - Src:             'mod_xfer.c:541,12'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:546,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:547,7'
          Dst:             pr_signals_handle
        - Src:             'mod_xfer.c:549,15'
          Dst:             pr_fsio_read_with_error
        - Src:             'mod_xfer.c:550,16'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:554,5'
          Dst:             pr_error_set_where
        - Src:             'mod_xfer.c:555,27'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:555,5'
          Dst:             pr_error_set_why
        - Src:             'mod_xfer.c:560,7'
          Dst:             pr_uid2str
        - Src:             'mod_xfer.c:560,35'
          Dst:             pr_gid2str
        - Src:             'mod_xfer.c:561,25'
          Dst:             strerror
        - Src:             'mod_xfer.c:558,12'
          Dst:             pr_trace_msg
        - Src:             'mod_xfer.c:564,34'
          Dst:             pr_error_strerror
        - Src:             'mod_xfer.c:564,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:565,7'
          Dst:             pr_error_destroy
        - Src:             'mod_xfer.c:569,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:577,10'
          Dst:             pr_data_xfer
    - functionName:    set_allowoverwrite
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3582
      functionLinenumberEnd: 3601
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          142
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3586,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3586,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3587,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:3587,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:3587,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3587,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3587,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3590,21'
          Dst:             get_boolean
        - Src:             'mod_xfer.c:3592,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3592,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3595,7'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:3596,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3600,10'
          Dst:             mod_create_ret
    - functionName:    set_allowrestart
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3603
      functionLinenumberEnd: 3622
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          142
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3607,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3607,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3608,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:3608,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:3608,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3608,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3608,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3611,19'
          Dst:             get_boolean
        - Src:             'mod_xfer.c:3613,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3613,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3616,7'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:3617,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3621,10'
          Dst:             mod_create_ret
    - functionName:    set_defaulttransfermode
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3625
      functionLinenumberEnd: 3639
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          131
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3628,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3628,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3629,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:3629,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:3629,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3629,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3629,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3632,7'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:3633,7'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:3634,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3634,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3637,3'
          Dst:             add_config_param_str
        - Src:             'mod_xfer.c:3638,10'
          Dst:             mod_create_ret
    - functionName:    set_deleteabortedstores
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3641
      functionLinenumberEnd: 3660
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          142
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3645,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3645,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3646,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:3646,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:3646,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3646,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3646,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3649,27'
          Dst:             get_boolean
        - Src:             'mod_xfer.c:3651,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3651,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3654,7'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:3655,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3659,10'
          Dst:             mod_create_ret
    - functionName:    set_displayfiletransfer
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3663
      functionLinenumberEnd: 3669
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          97
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3664,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3664,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3665,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:3665,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:3665,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3665,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3665,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3667,10'
          Dst:             add_config_param_str
        - Src:             'mod_xfer.c:3668,10'
          Dst:             mod_create_ret
    - functionName:    set_hiddenstores
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3671
      functionLinenumberEnd: 3742
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         32
      ICount:          303
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - pstrdup
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3676,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3676,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3677,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:3677,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:3677,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3677,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3677,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3679,7'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:3688,14'
          Dst:             strlen
        - Src:             'mod_xfer.c:3693,15'
          Dst:             get_boolean
        - Src:             'mod_xfer.c:3709,18'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3714,20'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3717,20'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:3721,20'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:3724,20'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:3728,18'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3733,20'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:3736,20'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:3741,10'
          Dst:             mod_create_ret
    - functionName:    set_maxfilesize
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3744
      functionLinenumberEnd: 3870
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         74
      ICount:          611
      EdgeCount:       100
      CyclomaticComplexity: 28
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_expr_create
        - pr_str_get_nbytes
        - pstrcat
        - pstrdup
        - strcasecmp
        - strcmp
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3754,9'
          Dst:             strcmp
        - Src:             'mod_xfer.c:3755,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3755,7'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3760,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3760,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3763,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:3763,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:3763,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3763,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3763,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3792,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:3793,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:3794,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:3795,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3795,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3795,7'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3811,9'
          Dst:             pr_str_get_nbytes
        - Src:             'mod_xfer.c:3812,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3812,7'
          Dst:             strerror
        - Src:             'mod_xfer.c:3812,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3812,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3812,7'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3817,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3817,7'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3823,9'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:3824,18'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3826,18'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3837,11'
          Dst:             pr_expr_create
        - Src:             'mod_xfer.c:3839,9'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:3841,15'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3846,13'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3850,13'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3854,15'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:3858,19'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:3869,10'
          Dst:             mod_create_ret
    - functionName:    set_maxtransfersperhost
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3873
      functionLinenumberEnd: 3907
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          209
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - add_config_param
        - atoi
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - pstrdup
        - xfer_parse_cmdlist
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3879,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3879,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3882,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:3882,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:3882,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3882,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3882,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3885,11'
          Dst:             atoi
        - Src:             'mod_xfer.c:3887,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3887,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3887,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3890,7'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:3893,7'
          Dst:             xfer_parse_cmdlist
        - Src:             'mod_xfer.c:3894,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3894,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3897,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3901,18'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:3906,10'
          Dst:             mod_create_ret
    - functionName:    set_maxtransfersperuser
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3910
      functionLinenumberEnd: 3945
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          209
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - add_config_param
        - atoi
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - pstrdup
        - xfer_parse_cmdlist
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3916,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3916,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3919,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:3919,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:3919,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3919,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3919,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3922,11'
          Dst:             atoi
        - Src:             'mod_xfer.c:3924,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3924,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3924,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3928,7'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:3931,7'
          Dst:             xfer_parse_cmdlist
        - Src:             'mod_xfer.c:3932,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3932,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3935,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3939,18'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:3944,10'
          Dst:             mod_create_ret
    - functionName:    set_storeuniqueprefix
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3947
      functionLinenumberEnd: 3964
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          138
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
        - strchr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3950,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3950,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3951,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:3951,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:3951,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3951,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3951,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3955,7'
          Dst:             strchr
        - Src:             'mod_xfer.c:3956,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3956,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3956,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3960,7'
          Dst:             add_config_param_str
        - Src:             'mod_xfer.c:3963,10'
          Dst:             mod_create_ret
    - functionName:    set_timeoutnoxfer
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3966
      functionLinenumberEnd: 3984
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          155
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_str_get_duration
        - pstrcat
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3970,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3970,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3971,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:3971,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:3971,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3971,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3971,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3973,7'
          Dst:             pr_str_get_duration
        - Src:             'mod_xfer.c:3974,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3974,5'
          Dst:             strerror
        - Src:             'mod_xfer.c:3974,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3974,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3974,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3978,7'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:3979,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:3983,10'
          Dst:             mod_create_ret
    - functionName:    set_timeoutstalled
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3986
      functionLinenumberEnd: 4004
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          155
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_str_get_duration
        - pstrcat
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:3990,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3990,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3991,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:3991,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:3991,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3991,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3991,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3993,7'
          Dst:             pr_str_get_duration
        - Src:             'mod_xfer.c:3994,5'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:3994,5'
          Dst:             strerror
        - Src:             'mod_xfer.c:3994,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3994,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:3994,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:3998,7'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:3999,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4003,10'
          Dst:             mod_create_ret
    - functionName:    set_transferoptions
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4007
      functionLinenumberEnd: 4038
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          201
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:4013,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4013,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4016,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:4016,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:4016,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4016,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4016,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4018,7'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:4021,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:4024,16'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:4025,16'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:4029,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4029,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4029,7'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4034,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4037,10'
          Dst:             mod_create_ret
    - functionName:    set_transferrate
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4043
      functionLinenumberEnd: 4193
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         81
      ICount:          735
      EdgeCount:       110
      CyclomaticComplexity: 31
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_expr_create
        - pstrcat
        - pstrdup
        - strcasecmp
        - strchr
        - strtod
        - strtoul
        - xfer_parse_cmdlist
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:4057,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4057,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4060,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:4060,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:4060,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4060,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4060,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4089,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:4090,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:4091,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:4092,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4092,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4092,7'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4097,9'
          Dst:             strchr
        - Src:             'mod_xfer.c:4105,24'
          Dst:             strtod
        - Src:             'mod_xfer.c:4108,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4108,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4112,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4112,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4112,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4120,17'
          Dst:             strtoul
        - Src:             'mod_xfer.c:4122,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4122,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4122,7'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4129,9'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:4132,9'
          Dst:             xfer_parse_cmdlist
        - Src:             'mod_xfer.c:4133,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4133,7'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4136,18'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4138,18'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4140,18'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4151,11'
          Dst:             pr_expr_create
        - Src:             'mod_xfer.c:4152,9'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:4161,15'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4164,9'
          Dst:             xfer_parse_cmdlist
        - Src:             'mod_xfer.c:4165,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4165,7'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4171,13'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4173,13'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4175,13'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4178,15'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:4182,19'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:4192,10'
          Dst:             mod_create_ret
    - functionName:    set_usesendfile
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4196
      functionLinenumberEnd: 4268
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          316
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_str_get_nbytes
        - pstrcat
        - strerror
        - strlen
        - strtof
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:4202,3'
          Dst:             check_context
        - Src:             'mod_xfer.c:4202,3'
          Dst:             get_context_name
        - Src:             'mod_xfer.c:4202,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4202,3'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4202,3'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4208,19'
          Dst:             get_boolean
        - Src:             'mod_xfer.c:4215,16'
          Dst:             strlen
        - Src:             'mod_xfer.c:4223,24'
          Dst:             strtof
        - Src:             'mod_xfer.c:4231,11'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4231,11'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4231,11'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4239,9'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4239,9'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4246,9'
          Dst:             pr_str_get_nbytes
        - Src:             'mod_xfer.c:4247,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:4247,7'
          Dst:             strerror
        - Src:             'mod_xfer.c:4247,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4247,7'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4247,7'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4255,5'
          Dst:             pstrcat
        - Src:             'mod_xfer.c:4255,5'
          Dst:             mod_create_ret
        - Src:             'mod_xfer.c:4258,7'
          Dst:             add_config_param
        - Src:             'mod_xfer.c:4259,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4261,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4263,16'
          Dst:             pcalloc
        - Src:             'mod_xfer.c:4267,10'
          Dst:             mod_create_ret
    - functionName:    strtof
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      float
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xfer_parse_cmdlist
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 493
      functionLinenumberEnd: 525
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          104
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - get_cmd_from_list
        - make_array
        - pr_log_debug
        - pstrdup
        - push_array
        - strcasecmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:498,10'
          Dst:             make_array
        - Src:             'mod_xfer.c:503,17'
          Dst:             get_cmd_from_list
        - Src:             'mod_xfer.c:506,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:507,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:508,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:509,9'
          Dst:             strcasecmp
        - Src:             'mod_xfer.c:510,7'
          Dst:             pr_log_debug
        - Src:             'mod_xfer.c:511,7'
          Dst:             __errno_location
        - Src:             'mod_xfer.c:515,37'
          Dst:             pstrdup
        - Src:             'mod_xfer.c:515,17'
          Dst:             push_array
        - Src:             'mod_xfer.c:519,15'
          Dst:             push_array
    - functionName:    get_cmd_from_list
      functionSourceFile: '/src/proftpd/modules/mod_xfer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         43
      ICount:          265
      EdgeCount:       57
      CyclomaticComplexity: 16
      functionsReached:
        - __ctype_b_loc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_xfer.c:228,20'
          Dst:             __ctype_b_loc
        - Src:             'mod_xfer.c:244,42'
          Dst:             __ctype_b_loc
    - functionName:    auth_scan_scoreboard
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2020
      functionLinenumberEnd: 2126
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         48
      ICount:          309
      EdgeCount:       64
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
        - find_config
        - palloc
        - pr_event_generate
        - pr_log_auth
        - pr_log_pri
        - pr_netaddr_get_ipstr
        - pr_response_send
        - pr_restore_scoreboard
        - pr_rewind_scoreboard
        - pr_scoreboard_entry_read
        - pr_session_disconnect
        - pr_signals_handle
        - pr_snprintf
        - pr_table_add
        - pr_table_remove
        - sreplace
        - strcasecmp
        - strcmp
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:2027,29'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_auth.c:2030,5'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_auth.c:2029,3'
          Dst:             pr_snprintf
        - Src:             'mod_auth.c:2034,7'
          Dst:             pr_rewind_scoreboard
        - Src:             'mod_auth.c:2036,16'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2036,7'
          Dst:             strerror
        - Src:             'mod_auth.c:2035,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:2039,19'
          Dst:             pr_scoreboard_entry_read
        - Src:             'mod_auth.c:2040,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth.c:2043,9'
          Dst:             strcmp
        - Src:             'mod_auth.c:2046,11'
          Dst:             strcmp
        - Src:             'mod_auth.c:2051,11'
          Dst:             strcmp
        - Src:             'mod_auth.c:2059,11'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:2064,3'
          Dst:             pr_restore_scoreboard
        - Src:             'mod_auth.c:2067,10'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:2068,7'
          Dst:             palloc
        - Src:             'mod_auth.c:2071,7'
          Dst:             pr_table_add
        - Src:             'mod_auth.c:2072,9'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2074,59'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2074,50'
          Dst:             strerror
        - Src:             'mod_auth.c:2073,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:2080,12'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:2081,9'
          Dst:             palloc
        - Src:             'mod_auth.c:2084,9'
          Dst:             pr_table_add
        - Src:             'mod_auth.c:2085,11'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2087,61'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2087,52'
          Dst:             strerror
        - Src:             'mod_auth.c:2086,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:2093,7'
          Dst:             find_config
        - Src:             'mod_auth.c:2106,7'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:2113,7'
          Dst:             pr_snprintf
        - Src:             'mod_auth.c:2116,37'
          Dst:             sreplace
        - Src:             'mod_auth.c:2116,7'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:2119,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:2121,7'
          Dst:             pr_session_disconnect
    - functionName:    auth_init
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - auth_cmd_chk_cb
        - pr_help_add
        - set_auth_check
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:187,3'
          Dst:             pr_help_add
        - Src:             'mod_auth.c:188,3'
          Dst:             pr_help_add
        - Src:             'mod_auth.c:189,3'
          Dst:             pr_help_add
        - Src:             'mod_auth.c:190,3'
          Dst:             pr_help_add
        - Src:             'mod_auth.c:193,3'
          Dst:             set_auth_check
        - Src:             'mod_auth.c:193,3'
          Dst:             auth_cmd_chk_cb
    - functionName:    auth_sess_init
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         47
      ICount:          289
      EdgeCount:       59
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - auth_exit_ev
        - auth_login_timeout_cb
        - auth_scan_scoreboard
        - auth_sess_reinit_ev
        - find_config
        - find_config_next
        - get_param_ptr
        - pr_auth_set_max_password_len
        - pr_event_register
        - pr_log_debug
        - pr_log_pri
        - pr_open_scoreboard
        - pr_privs_relinquish
        - pr_privs_root
        - pr_scoreboard_entry_add
        - pr_scoreboard_entry_get
        - pr_scoreboard_entry_update
        - pr_session_disconnect
        - pr_signals_handle
        - pr_timer_add
        - pr_timer_remove
        - strerror
        - time
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mod_auth.c:235,7'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_auth.c:202,3'
          Dst:             pr_event_register
        - Src:             'mod_auth.c:202,3'
          Dst:             auth_sess_reinit_ev
        - Src:             'mod_auth.c:206,7'
          Dst:             find_config
        - Src:             'mod_auth.c:211,12'
          Dst:             pr_auth_set_max_password_len
        - Src:             'mod_auth.c:215,7'
          Dst:             find_config
        - Src:             'mod_auth.c:222,5'
          Dst:             pr_timer_remove
        - Src:             'mod_auth.c:223,5'
          Dst:             pr_timer_add
        - Src:             'mod_auth.c:223,5'
          Dst:             auth_login_timeout_cb
        - Src:             'mod_auth.c:230,5'
          Dst:             pr_privs_root
        - Src:             'mod_auth.c:231,11'
          Dst:             pr_open_scoreboard
        - Src:             'mod_auth.c:232,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth.c:237,11'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:241,11'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:246,11'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:251,73'
          Dst:             __errno_location
        - Src:             'mod_auth.c:251,64'
          Dst:             strerror
        - Src:             'mod_auth.c:251,11'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:257,3'
          Dst:             pr_event_register
        - Src:             'mod_auth.c:257,3'
          Dst:             auth_exit_ev
        - Src:             'mod_auth.c:262,9'
          Dst:             find_config
        - Src:             'mod_auth.c:266,7'
          Dst:             pr_signals_handle
        - Src:             'mod_auth.c:271,11'
          Dst:             find_config_next
        - Src:             'mod_auth.c:277,9'
          Dst:             pr_scoreboard_entry_get
        - Src:             'mod_auth.c:278,11'
          Dst:             pr_scoreboard_entry_add
        - Src:             'mod_auth.c:285,68'
          Dst:             __errno_location
        - Src:             'mod_auth.c:285,59'
          Dst:             strerror
        - Src:             'mod_auth.c:284,11'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:289,67'
          Dst:             __errno_location
        - Src:             'mod_auth.c:289,58'
          Dst:             strerror
        - Src:             'mod_auth.c:288,11'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:290,11'
          Dst:             pr_session_disconnect
        - Src:             'mod_auth.c:304,33'
          Dst:             time
        - Src:             'mod_auth.c:295,7'
          Dst:             pr_scoreboard_entry_update
        - Src:             'mod_auth.c:312,5'
          Dst:             pr_scoreboard_entry_update
        - Src:             'mod_auth.c:318,9'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:343,3'
          Dst:             auth_scan_scoreboard
    - functionName:    auth_sess_reinit_ev
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - auth_exit_ev
        - auth_sess_init
        - auth_sess_reinit_ev
        - pr_auth_set_max_password_len
        - pr_event_unregister
        - pr_session_disconnect
        - pr_timer_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:159,3'
          Dst:             pr_event_unregister
        - Src:             'mod_auth.c:159,3'
          Dst:             auth_exit_ev
        - Src:             'mod_auth.c:160,3'
          Dst:             pr_event_unregister
        - Src:             'mod_auth.c:160,3'
          Dst:             auth_sess_reinit_ev
        - Src:             'mod_auth.c:162,3'
          Dst:             pr_timer_remove
        - Src:             'mod_auth.c:168,10'
          Dst:             pr_auth_set_max_password_len
        - Src:             'mod_auth.c:175,9'
          Dst:             auth_sess_init
        - Src:             'mod_auth.c:177,5'
          Dst:             pr_session_disconnect
    - functionName:    auth_login_timeout_cb
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_event_generate
        - pr_log_pri
        - pr_response_send_async
        - pr_session_disconnect
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:111,3'
          Dst:             pr_response_send_async
        - Src:             'mod_auth.c:120,3'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:121,3'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:123,3'
          Dst:             pr_session_disconnect
    - functionName:    auth_exit_ev
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_auth_cache_clear
        - pr_close_scoreboard
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:148,3'
          Dst:             pr_auth_cache_clear
        - Src:             'mod_auth.c:151,10'
          Dst:             pr_close_scoreboard
    - functionName:    auth_cmd_chk_cb
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          82
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - get_param_ptr
        - pr_response_add_err
        - pr_table_add
        - pr_table_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:81,13'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:93,25'
          Dst:             pr_table_get
        - Src:             'mod_auth.c:97,9'
          Dst:             pr_response_add_err
        - Src:             'mod_auth.c:98,9'
          Dst:             pr_table_add
    - functionName:    auth_pre_user
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2419
      functionLinenumberEnd: 2457
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - mod_create_ret
        - pr_auth_endgrent
        - pr_auth_endpwent
        - pr_cmd_set_errno
        - pr_gettimeofday_millis
        - pr_log_pri
        - pr_response_add_err
        - pr_trace_get_level
        - pr_trace_msg
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:2422,9'
          Dst:             pr_trace_get_level
        - Src:             'mod_auth.c:2426,7'
          Dst:             pr_gettimeofday_millis
        - Src:             'mod_auth.c:2429,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth.c:2442,3'
          Dst:             pr_auth_endpwent
        - Src:             'mod_auth.c:2443,3'
          Dst:             pr_auth_endgrent
        - Src:             'mod_auth.c:2446,7'
          Dst:             strlen
        - Src:             'mod_auth.c:2447,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:2449,5'
          Dst:             pr_response_add_err
        - Src:             'mod_auth.c:2451,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_auth.c:2452,5'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2453,12'
          Dst:             mod_create_ret
    - functionName:    auth_user
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2459
      functionLinenumberEnd: 2548
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          251
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - add_config_param_set
        - get_param_ptr
        - mod_create_ret
        - pcalloc
        - pr_auth_get_anon_config
        - pr_auth_requires_pass
        - pr_cmd_alloc
        - pr_cmd_dispatch
        - pr_log_auth
        - pr_log_debug
        - pr_response_add
        - pr_response_add_err
        - pr_table_add_dup
        - pr_table_get
        - pr_table_remove
        - pstrdup
        - strcmp
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:2466,12'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:2474,16'
          Dst:             pr_table_get
        - Src:             'mod_auth.c:2476,9'
          Dst:             strcmp
        - Src:             'mod_auth.c:2477,7'
          Dst:             pr_response_add
        - Src:             'mod_auth.c:2478,14'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:2481,5'
          Dst:             pr_response_add_err
        - Src:             'mod_auth.c:2482,12'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:2487,10'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:2488,10'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:2490,7'
          Dst:             pr_table_add_dup
        - Src:             'mod_auth.c:2492,37'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2492,28'
          Dst:             strerror
        - Src:             'mod_auth.c:2491,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:2496,7'
          Dst:             pr_auth_get_anon_config
        - Src:             'mod_auth.c:2499,27'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:2514,5'
          Dst:             pr_response_add
        - Src:             'mod_auth.c:2517,14'
          Dst:             pr_auth_requires_pass
        - Src:             'mod_auth.c:2523,24'
          Dst:             pr_cmd_alloc
        - Src:             'mod_auth.c:2529,24'
          Dst:             pstrdup
        - Src:             'mod_auth.c:2533,9'
          Dst:             add_config_param_set
        - Src:             'mod_auth.c:2534,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:2538,5'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:2540,5'
          Dst:             pr_cmd_dispatch
        - Src:             'mod_auth.c:2543,5'
          Dst:             pr_response_add
        - Src:             'mod_auth.c:2547,10'
          Dst:             mod_create_ret
    - functionName:    auth_pre_pass
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2551
      functionLinenumberEnd: 2673
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         61
      ICount:          330
      EdgeCount:       81
      CyclomaticComplexity: 22
      functionsReached:
        - __errno_location
        - find_config
        - get_param_ptr
        - mod_create_ret
        - pr_auth_endgrent
        - pr_auth_endpwent
        - pr_auth_get_anon_config
        - pr_event_generate
        - pr_fsio_close
        - pr_fsio_fstat
        - pr_fsio_open
        - pr_log_auth
        - pr_log_debug
        - pr_response_add_err
        - pr_session_get_protocol
        - pr_table_get
        - pstrdup
        - strcmp
        - strerror
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:2555,3'
          Dst:             pr_auth_endpwent
        - Src:             'mod_auth.c:2556,3'
          Dst:             pr_auth_endgrent
        - Src:             'mod_auth.c:2559,10'
          Dst:             pr_table_get
        - Src:             'mod_auth.c:2563,9'
          Dst:             find_config
        - Src:             'mod_auth.c:2572,19'
          Dst:             pstrdup
        - Src:             'mod_auth.c:2573,21'
          Dst:             pr_auth_get_anon_config
        - Src:             'mod_auth.c:2576,13'
          Dst:             find_config
        - Src:             'mod_auth.c:2590,17'
          Dst:             pr_session_get_protocol
        - Src:             'mod_auth.c:2591,13'
          Dst:             strcmp
        - Src:             'mod_auth.c:2597,26'
          Dst:             strlen
        - Src:             'mod_auth.c:2611,15'
          Dst:             strcmp
        - Src:             'mod_auth.c:2612,13'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:2623,11'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:2626,11'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:2629,11'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:2630,11'
          Dst:             pr_response_add_err
        - Src:             'mod_auth.c:2631,18'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:2643,18'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:2648,23'
          Dst:             pr_fsio_open
        - Src:             'mod_auth.c:2651,32'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2651,23'
          Dst:             strerror
        - Src:             'mod_auth.c:2650,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:2654,11'
          Dst:             pr_fsio_fstat
        - Src:             'mod_auth.c:2656,34'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2656,25'
          Dst:             strerror
        - Src:             'mod_auth.c:2655,9'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:2657,9'
          Dst:             pr_fsio_close
        - Src:             'mod_auth.c:2662,11'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2664,36'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2664,27'
          Dst:             strerror
        - Src:             'mod_auth.c:2663,11'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:2665,11'
          Dst:             pr_fsio_close
    - functionName:    auth_pass
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2675
      functionLinenumberEnd: 2782
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         44
      ICount:          296
      EdgeCount:       59
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - add_config_param_set
        - get_param_ptr
        - mod_create_ret
        - pcalloc
        - pr_event_generate
        - pr_fs_decode_path
        - pr_gettimeofday_millis
        - pr_log_auth
        - pr_log_debug
        - pr_response_send
        - pr_table_add_dup
        - pr_table_get
        - pr_table_remove
        - pr_trace_get_level
        - pr_trace_msg
        - set_auth_check
        - setup_env
        - sreplace
        - strerror
        - strstr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:2680,12'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:2683,10'
          Dst:             pr_table_get
        - Src:             'mod_auth.c:2685,12'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:2686,12'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:2688,12'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:2695,9'
          Dst:             setup_env
        - Src:             'mod_auth.c:2699,9'
          Dst:             add_config_param_set
        - Src:             'mod_auth.c:2700,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:2703,5'
          Dst:             set_auth_check
        - Src:             'mod_auth.c:2705,12'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:2709,11'
          Dst:             pr_fs_decode_path
        - Src:             'mod_auth.c:2708,11'
          Dst:             pr_table_add_dup
        - Src:             'mod_auth.c:2712,20'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2712,11'
          Dst:             strerror
        - Src:             'mod_auth.c:2710,9'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:2718,9'
          Dst:             pr_trace_get_level
        - Src:             'mod_auth.c:2722,7'
          Dst:             pr_gettimeofday_millis
        - Src:             'mod_auth.c:2725,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth.c:2730,12'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:2733,10'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:2740,20'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:2744,11'
          Dst:             strstr
        - Src:             'mod_auth.c:2745,19'
          Dst:             sreplace
        - Src:             'mod_auth.c:2749,11'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:2760,9'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:2763,9'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:2766,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:2770,7'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:2778,12'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:2781,10'
          Dst:             mod_create_ret
    - functionName:    auth_post_pass
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 514
      functionLinenumberEnd: 783
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         158
      ICount:          883
      EdgeCount:       211
      CyclomaticComplexity: 55
      functionsReached:
        - __errno_location
        - auth_count_scoreboard
        - auth_session_timeout_cb
        - build_dyn_config
        - find_config
        - find_config_next
        - get_param_ptr
        - login_succeeded
        - pr_auth_clear_auth_only_modules
        - pr_display_fh
        - pr_display_file
        - pr_expr_eval_group_and
        - pr_expr_eval_user_or
        - pr_fsio_close
        - pr_fsio_stat
        - pr_log_debug
        - pr_privs_revoke
        - pr_privs_root
        - pr_response_add
        - pr_response_send
        - pr_session_disconnect
        - pr_session_get_protocol
        - pr_signals_block
        - pr_signals_handle
        - pr_signals_unblock
        - pr_table_get
        - pr_timer_add
        - sreplace
        - strcasecmp
        - strcmp
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:526,19'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:529,3'
          Dst:             pr_auth_clear_auth_only_modules
        - Src:             'mod_auth.c:538,9'
          Dst:             find_config
        - Src:             'mod_auth.c:547,18'
          Dst:             pr_session_get_protocol
        - Src:             'mod_auth.c:554,11'
          Dst:             strcmp
        - Src:             'mod_auth.c:563,17'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:571,11'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:572,11'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:573,11'
          Dst:             pr_session_disconnect
        - Src:             'mod_auth.c:580,10'
          Dst:             pr_table_get
        - Src:             'mod_auth.c:586,3'
          Dst:             auth_count_scoreboard
        - Src:             'mod_auth.c:592,7'
          Dst:             pr_fsio_stat
        - Src:             'mod_auth.c:593,5'
          Dst:             build_dyn_config
        - Src:             'mod_auth.c:599,7'
          Dst:             find_config
        - Src:             'mod_auth.c:601,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth.c:604,11'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:605,13'
          Dst:             pr_expr_eval_user_or
        - Src:             'mod_auth.c:619,18'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:620,13'
          Dst:             pr_expr_eval_group_and
        - Src:             'mod_auth.c:634,18'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:636,13'
          Dst:             strcmp
        - Src:             'mod_auth.c:664,9'
          Dst:             find_config_next
        - Src:             'mod_auth.c:677,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:681,5'
          Dst:             pr_timer_add
        - Src:             'mod_auth.c:681,5'
          Dst:             auth_session_timeout_cb
        - Src:             'mod_auth.c:688,11'
          Dst:             pr_display_fh
        - Src:             'mod_auth.c:690,46'
          Dst:             __errno_location
        - Src:             'mod_auth.c:690,37'
          Dst:             strerror
        - Src:             'mod_auth.c:689,9'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:693,7'
          Dst:             pr_fsio_close
        - Src:             'mod_auth.c:703,7'
          Dst:             pr_fsio_close
        - Src:             'mod_auth.c:706,22'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:708,13'
          Dst:             pr_display_file
        - Src:             'mod_auth.c:710,36'
          Dst:             __errno_location
        - Src:             'mod_auth.c:710,27'
          Dst:             strerror
        - Src:             'mod_auth.c:709,11'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:718,20'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:720,11'
          Dst:             pr_display_file
        - Src:             'mod_auth.c:722,34'
          Dst:             __errno_location
        - Src:             'mod_auth.c:722,25'
          Dst:             strerror
        - Src:             'mod_auth.c:721,9'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:727,14'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:731,7'
          Dst:             pr_response_add
        - Src:             'mod_auth.c:735,7'
          Dst:             pr_response_add
        - Src:             'mod_auth.c:740,17'
          Dst:             sreplace
        - Src:             'mod_auth.c:741,6'
          Dst:             pr_response_add
        - Src:             'mod_auth.c:744,3'
          Dst:             login_succeeded
        - Src:             'mod_auth.c:747,7'
          Dst:             find_config
        - Src:             'mod_auth.c:752,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:759,9'
          Dst:             find_config
        - Src:             'mod_auth.c:761,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:767,5'
          Dst:             pr_signals_block
        - Src:             'mod_auth.c:768,5'
          Dst:             pr_privs_root
        - Src:             'mod_auth.c:769,5'
          Dst:             pr_privs_revoke
        - Src:             'mod_auth.c:770,5'
          Dst:             pr_signals_unblock
        - Src:             'mod_auth.c:775,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:778,7'
          Dst:             find_config
    - functionName:    auth_log_pass
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 476
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_log_auth
        - pr_memscrub
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:463,3'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:472,18'
          Dst:             strlen
        - Src:             'mod_auth.c:473,5'
          Dst:             pr_memscrub
    - functionName:    auth_err_pass
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 415
      functionLinenumberEnd: 455
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - login_failed
        - mod_create_ret
        - pr_session_disconnect
        - pr_table_get
        - pr_table_remove
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:418,10'
          Dst:             pr_table_get
        - Src:             'mod_auth.c:427,12'
          Dst:             pr_table_get
        - Src:             'mod_auth.c:429,7'
          Dst:             login_failed
        - Src:             'mod_auth.c:432,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth.c:445,3'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:451,5'
          Dst:             pr_session_disconnect
        - Src:             'mod_auth.c:455,10'
          Dst:             mod_create_ret
    - functionName:    auth_acct
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2784
      functionLinenumberEnd: 2786
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mod_create_ret
        - pr_response_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:2785,3'
          Dst:             pr_response_add
        - Src:             'mod_auth.c:2786,10'
          Dst:             mod_create_ret
    - functionName:    auth_rein
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2789
      functionLinenumberEnd: 2791
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mod_create_ret
        - pr_response_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:2790,3'
          Dst:             pr_response_add
        - Src:             'mod_auth.c:2791,10'
          Dst:             mod_create_ret
    - functionName:    auth_pre_retr
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2908
      functionLinenumberEnd: 2996
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          237
      EdgeCount:       26
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - dir_canonical_path
        - pr_fs_clear_cache2
        - pr_fsio_lstat
        - pr_get_fs
        - pr_log_debug
        - pr_register_fs
        - strcasecmp
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:2924,10'
          Dst:             dir_canonical_path
        - Src:             'mod_auth.c:2925,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:2933,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:2939,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_auth.c:2940,7'
          Dst:             pr_fsio_lstat
        - Src:             'mod_auth.c:2944,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:2949,13'
          Dst:             pr_get_fs
        - Src:             'mod_auth.c:2953,17'
          Dst:             pr_register_fs
        - Src:             'mod_auth.c:2956,37'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2956,28'
          Dst:             strerror
        - Src:             'mod_auth.c:2955,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:2991,5'
          Dst:             pr_fs_clear_cache2
    - functionName:    auth_post_retr
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2998
      functionLinenumberEnd: 3016
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          55
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - pr_log_debug
        - pr_unregister_fs
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3006,11'
          Dst:             pr_unregister_fs
        - Src:             'mod_auth.c:3009,18'
          Dst:             __errno_location
        - Src:             'mod_auth.c:3009,9'
          Dst:             strerror
        - Src:             'mod_auth.c:3008,7'
          Dst:             pr_log_debug
    - functionName:    robots_fsio_stat
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2801
      functionLinenumberEnd: 2815
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          49
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    robots_fsio_fstat
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2818
      functionLinenumberEnd: 2825
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - robots_fsio_stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:2820,5'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2824,10'
          Dst:             robots_fsio_stat
    - functionName:    robots_fsio_lstat
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2827
      functionLinenumberEnd: 2828
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - robots_fsio_stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:2828,10'
          Dst:             robots_fsio_stat
    - functionName:    robots_fsio_unlink
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2831
      functionLinenumberEnd: 2832
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    robots_fsio_open
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2835
      functionLinenumberEnd: 2842
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:2837,5'
          Dst:             __errno_location
    - functionName:    robots_fsio_close
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2844
      functionLinenumberEnd: 2851
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:2846,5'
          Dst:             __errno_location
    - functionName:    robots_fsio_read
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2853
      functionLinenumberEnd: 2870
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:2857,5'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2864,5'
          Dst:             __errno_location
    - functionName:    robots_fsio_write
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2873
      functionLinenumberEnd: 2880
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:2875,5'
          Dst:             __errno_location
    - functionName:    robots_fsio_access
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2883
      functionLinenumberEnd: 2890
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:2885,5'
          Dst:             __errno_location
    - functionName:    robots_fsio_faccess
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2893
      functionLinenumberEnd: 2906
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:2896,5'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2901,5'
          Dst:             __errno_location
    - functionName:    login_failed
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 389
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_netaddr_get_dnsstr
        - pr_session_get_ttyname
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:395,10'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'mod_auth.c:396,18'
          Dst:             pr_session_get_ttyname
        - Src:             'mod_auth.c:398,3'
          Dst:             pr_trace_msg
    - functionName:    auth_count_scoreboard
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2153
      functionLinenumberEnd: 2417
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         145
      ICount:          918
      EdgeCount:       195
      CyclomaticComplexity: 52
      functionsReached:
        - __errno_location
        - find_config
        - find_config_next
        - have_client_limits
        - palloc
        - pr_auth_get_anon_config
        - pr_cmd_dispatch_phase
        - pr_event_generate
        - pr_log_auth
        - pr_log_pri
        - pr_netaddr_get_ipstr
        - pr_privs_relinquish
        - pr_response_send
        - pr_restore_scoreboard
        - pr_rewind_scoreboard
        - pr_scoreboard_entry_read
        - pr_session_disconnect
        - pr_signals_handle
        - pr_snprintf
        - pr_table_add
        - pr_table_remove
        - sreplace
        - strcasecmp
        - strcmp
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:2164,7'
          Dst:             have_client_limits
        - Src:             'mod_auth.c:2171,7'
          Dst:             pr_auth_get_anon_config
        - Src:             'mod_auth.c:2178,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_auth.c:2177,5'
          Dst:             pr_snprintf
        - Src:             'mod_auth.c:2181,9'
          Dst:             pr_rewind_scoreboard
        - Src:             'mod_auth.c:2183,18'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2183,9'
          Dst:             strerror
        - Src:             'mod_auth.c:2182,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:2186,21'
          Dst:             pr_scoreboard_entry_read
        - Src:             'mod_auth.c:2189,7'
          Dst:             pr_signals_handle
        - Src:             'mod_auth.c:2192,11'
          Dst:             strcmp
        - Src:             'mod_auth.c:2196,14'
          Dst:             strcmp
        - Src:             'mod_auth.c:2200,15'
          Dst:             strcmp
        - Src:             'mod_auth.c:2209,15'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_auth.c:2208,15'
          Dst:             strcmp
        - Src:             'mod_auth.c:2215,15'
          Dst:             strcmp
        - Src:             'mod_auth.c:2226,13'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:2231,5'
          Dst:             pr_restore_scoreboard
        - Src:             'mod_auth.c:2232,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth.c:2236,10'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:2237,7'
          Dst:             palloc
        - Src:             'mod_auth.c:2240,7'
          Dst:             pr_table_add
        - Src:             'mod_auth.c:2241,9'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2243,59'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2243,50'
          Dst:             strerror
        - Src:             'mod_auth.c:2242,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:2249,12'
          Dst:             pr_table_remove
        - Src:             'mod_auth.c:2250,9'
          Dst:             palloc
        - Src:             'mod_auth.c:2253,9'
          Dst:             pr_table_add
        - Src:             'mod_auth.c:2254,11'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2256,61'
          Dst:             __errno_location
        - Src:             'mod_auth.c:2256,52'
          Dst:             strerror
        - Src:             'mod_auth.c:2255,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:2266,10'
          Dst:             find_config
        - Src:             'mod_auth.c:2273,9'
          Dst:             strcmp
        - Src:             'mod_auth.c:2274,14'
          Dst:             find_config_next
        - Src:             'mod_auth.c:2287,7'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:2290,7'
          Dst:             pr_snprintf
        - Src:             'mod_auth.c:2291,37'
          Dst:             sreplace
        - Src:             'mod_auth.c:2291,7'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:2293,14'
          Dst:             pr_cmd_dispatch_phase
        - Src:             'mod_auth.c:2295,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:2298,7'
          Dst:             pr_session_disconnect
        - Src:             'mod_auth.c:2305,10'
          Dst:             find_config
        - Src:             'mod_auth.c:2319,7'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:2321,7'
          Dst:             pr_snprintf
        - Src:             'mod_auth.c:2322,37'
          Dst:             sreplace
        - Src:             'mod_auth.c:2322,7'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:2324,14'
          Dst:             pr_cmd_dispatch_phase
        - Src:             'mod_auth.c:2326,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:2328,7'
          Dst:             pr_session_disconnect
        - Src:             'mod_auth.c:2334,10'
          Dst:             find_config
        - Src:             'mod_auth.c:2348,7'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:2350,7'
          Dst:             pr_snprintf
        - Src:             'mod_auth.c:2351,37'
          Dst:             sreplace
        - Src:             'mod_auth.c:2351,7'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:2353,14'
          Dst:             pr_cmd_dispatch_phase
        - Src:             'mod_auth.c:2355,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:2357,7'
          Dst:             pr_session_disconnect
        - Src:             'mod_auth.c:2362,10'
          Dst:             find_config
        - Src:             'mod_auth.c:2376,7'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:2378,7'
          Dst:             pr_snprintf
        - Src:             'mod_auth.c:2379,37'
          Dst:             sreplace
        - Src:             'mod_auth.c:2379,7'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:2381,14'
          Dst:             pr_cmd_dispatch_phase
        - Src:             'mod_auth.c:2383,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:2384,7'
          Dst:             pr_session_disconnect
        - Src:             'mod_auth.c:2389,10'
          Dst:             find_config
        - Src:             'mod_auth.c:2402,7'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:2404,7'
          Dst:             pr_snprintf
        - Src:             'mod_auth.c:2405,37'
          Dst:             sreplace
        - Src:             'mod_auth.c:2405,7'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:2407,14'
          Dst:             pr_cmd_dispatch_phase
        - Src:             'mod_auth.c:2409,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:2411,7'
          Dst:             pr_session_disconnect
    - functionName:    auth_session_timeout_cb
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_event_generate
        - pr_log_pri
        - pr_response_send_async
        - pr_session_disconnect
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:131,3'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:132,3'
          Dst:             pr_response_send_async
        - Src:             'mod_auth.c:136,3'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:137,3'
          Dst:             pr_session_disconnect
    - functionName:    login_succeeded
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 479
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_netaddr_get_dnsstr
        - pr_session_get_ttyname
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:486,10'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'mod_auth.c:487,18'
          Dst:             pr_session_get_ttyname
        - Src:             'mod_auth.c:489,3'
          Dst:             pr_trace_msg
    - functionName:    have_client_limits
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2129
      functionLinenumberEnd: 2151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         44
      ICount:          195
      EdgeCount:       59
      CyclomaticComplexity: 17
      functionsReached:
        - find_config
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:2130,7'
          Dst:             find_config
        - Src:             'mod_auth.c:2134,7'
          Dst:             find_config
        - Src:             'mod_auth.c:2138,7'
          Dst:             find_config
        - Src:             'mod_auth.c:2142,7'
          Dst:             find_config
        - Src:             'mod_auth.c:2146,7'
          Dst:             find_config
    - functionName:    setup_env
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1050
      functionLinenumberEnd: 2012
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         406
      ICount:          2322
      EdgeCount:       542
      CyclomaticComplexity: 138
      functionsReached:
        - __errno_location
        - copy_array
        - copy_array_str
        - create_home
        - dir_check_full
        - dir_realpath
        - do_auth
        - ensure_open_passwd
        - find_config
        - fixup_dirs
        - get_default_chdir
        - get_default_root
        - get_param_ptr
        - log_wtmp
        - login_check_limits
        - make_array
        - passwd_dup
        - path_subst_uservar
        - pdircat
        - pr_auth_banned_by_ftpusers
        - pr_auth_chroot
        - pr_auth_get_anon_config
        - pr_auth_getgrnam
        - pr_auth_getgroups
        - pr_auth_getpwnam
        - pr_auth_gid2name
        - pr_auth_is_valid_shell
        - pr_auth_setgrent
        - pr_event_generate
        - pr_fs_clear_cache2
        - pr_fs_getcwd
        - pr_fs_getvwd
        - pr_fs_interpolate
        - pr_fsio_access
        - pr_fsio_chdir_canon
        - pr_fsio_lstat
        - pr_log_auth
        - pr_log_debug
        - pr_log_pri
        - pr_memscrub
        - pr_netaddr_get_ipstr
        - pr_privs_relinquish
        - pr_privs_root
        - pr_privs_setup
        - pr_privs_user
        - pr_regexp_error
        - pr_regexp_exec
        - pr_resolve_fs_map
        - pr_response_add_err
        - pr_response_send
        - pr_scoreboard_entry_update
        - pr_session_end
        - pr_session_get_ttyname
        - pr_session_set_idle
        - pr_signals_block
        - pr_signals_unblock
        - pr_table_get
        - pr_timer_remove
        - pr_trace_msg
        - pstrcat
        - pstrdup
        - push_array
        - resolve_anonymous_dirs
        - resolve_deferred_dirs
        - set_groups
        - setgid
        - setuid
        - sstrncpy
        - strcasecmp
        - strcmp
        - strerror
        - strlen
        - strncmp
        - xferlog_open
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mod_auth.c:1299,5'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_auth.c:1064,7'
          Dst:             pr_auth_get_anon_config
        - Src:             'mod_auth.c:1066,5'
          Dst:             pr_trace_msg
        - Src:             'mod_auth.c:1077,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_auth.c:1078,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_auth.c:1075,5'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1082,8'
          Dst:             pr_auth_getpwnam
        - Src:             'mod_auth.c:1089,5'
          Dst:             pr_trace_msg
        - Src:             'mod_auth.c:1092,10'
          Dst:             pr_auth_getpwnam
        - Src:             'mod_auth.c:1101,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_auth.c:1102,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_auth.c:1098,5'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1103,5'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:1111,8'
          Dst:             passwd_dup
        - Src:             'mod_auth.c:1116,5'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:1121,23'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1124,27'
          Dst:             strlen
        - Src:             'mod_auth.c:1124,9'
          Dst:             pr_memscrub
        - Src:             'mod_auth.c:1127,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1132,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1133,26'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1134,30'
          Dst:             pr_auth_gid2name
        - Src:             'mod_auth.c:1134,19'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1141,25'
          Dst:             path_subst_uservar
        - Src:             'mod_auth.c:1151,7'
          Dst:             strcmp
        - Src:             'mod_auth.c:1152,5'
          Dst:             pr_trace_msg
        - Src:             'mod_auth.c:1167,12'
          Dst:             pr_auth_getgroups
        - Src:             'mod_auth.c:1173,8'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:1177,23'
          Dst:             make_array
        - Src:             'mod_auth.c:1178,25'
          Dst:             make_array
        - Src:             'mod_auth.c:1180,20'
          Dst:             push_array
        - Src:             'mod_auth.c:1181,50'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1181,20'
          Dst:             push_array
        - Src:             'mod_auth.c:1185,10'
          Dst:             find_config
        - Src:             'mod_auth.c:1192,10'
          Dst:             login_check_limits
        - Src:             'mod_auth.c:1195,17'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1197,19'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1204,12'
          Dst:             find_config
        - Src:             'mod_auth.c:1216,18'
          Dst:             pr_regexp_exec
        - Src:             'mod_auth.c:1221,11'
          Dst:             pr_regexp_error
        - Src:             'mod_auth.c:1222,11'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1225,11'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:1232,10'
          Dst:             login_check_limits
        - Src:             'mod_auth.c:1233,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1241,5'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1247,27'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1259,9'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:1262,26'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1270,9'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1281,19'
          Dst:             do_auth
        - Src:             'mod_auth.c:1288,5'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:1291,25'
          Dst:             strlen
        - Src:             'mod_auth.c:1291,7'
          Dst:             pr_memscrub
        - Src:             'mod_auth.c:1295,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:1309,9'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1314,9'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1319,9'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1324,9'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1329,9'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1334,9'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1339,9'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1344,9'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1349,9'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1355,9'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1361,9'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1375,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1382,3'
          Dst:             pr_auth_setgrent
        - Src:             'mod_auth.c:1384,9'
          Dst:             pr_auth_is_valid_shell
        - Src:             'mod_auth.c:1387,5'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1392,9'
          Dst:             pr_auth_banned_by_ftpusers
        - Src:             'mod_auth.c:1395,5'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1407,9'
          Dst:             pr_table_get
        - Src:             'mod_auth.c:1408,19'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1416,5'
          Dst:             pr_signals_block
        - Src:             'mod_auth.c:1418,5'
          Dst:             pr_privs_root
        - Src:             'mod_auth.c:1419,11'
          Dst:             set_groups
        - Src:             'mod_auth.c:1421,11'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1423,20'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1423,11'
          Dst:             strerror
        - Src:             'mod_auth.c:1422,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1437,9'
          Dst:             setuid
        - Src:             'mod_auth.c:1438,65'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1438,56'
          Dst:             strerror
        - Src:             'mod_auth.c:1438,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1441,9'
          Dst:             setgid
        - Src:             'mod_auth.c:1442,65'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1442,56'
          Dst:             strerror
        - Src:             'mod_auth.c:1442,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1447,5'
          Dst:             pr_privs_setup
        - Src:             'mod_auth.c:1450,9'
          Dst:             strcmp
        - Src:             'mod_auth.c:1451,20'
          Dst:             pdircat
        - Src:             'mod_auth.c:1464,15'
          Dst:             pr_fs_interpolate
        - Src:             'mod_auth.c:1482,26'
          Dst:             strlen
        - Src:             'mod_auth.c:1488,9'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_auth.c:1489,15'
          Dst:             pr_fsio_lstat
        - Src:             'mod_auth.c:1491,24'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1494,26'
          Dst:             strerror
        - Src:             'mod_auth.c:1493,11'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1496,11'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1501,13'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1504,13'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1511,31'
          Dst:             dir_realpath
        - Src:             'mod_auth.c:1519,20'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1519,11'
          Dst:             strerror
        - Src:             'mod_auth.c:1518,9'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:1523,29'
          Dst:             dir_realpath
        - Src:             'mod_auth.c:1526,20'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1526,11'
          Dst:             strerror
        - Src:             'mod_auth.c:1525,9'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:1531,9'
          Dst:             pr_fsio_access
        - Src:             'mod_auth.c:1536,29'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1539,5'
          Dst:             pr_event_generate
        - Src:             'mod_auth.c:1542,5'
          Dst:             pr_privs_root
        - Src:             'mod_auth.c:1543,11'
          Dst:             set_groups
        - Src:             'mod_auth.c:1545,11'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1547,20'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1547,11'
          Dst:             strerror
        - Src:             'mod_auth.c:1546,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1561,9'
          Dst:             setuid
        - Src:             'mod_auth.c:1562,65'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1562,56'
          Dst:             strerror
        - Src:             'mod_auth.c:1562,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1565,9'
          Dst:             setgid
        - Src:             'mod_auth.c:1566,65'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1566,56'
          Dst:             strerror
        - Src:             'mod_auth.c:1566,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1571,5'
          Dst:             pr_privs_setup
        - Src:             'mod_auth.c:1573,5'
          Dst:             pr_signals_unblock
        - Src:             'mod_auth.c:1592,27'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1595,27'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1599,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1601,7'
          Dst:             pr_response_add_err
        - Src:             'mod_auth.c:1605,5'
          Dst:             sstrncpy
        - Src:             'mod_auth.c:1606,15'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1609,13'
          Dst:             pr_auth_getgrnam
        - Src:             'mod_auth.c:1612,25'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1621,13'
          Dst:             pr_auth_getgrnam
        - Src:             'mod_auth.c:1624,25'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1629,5'
          Dst:             pr_privs_user
        - Src:             'mod_auth.c:1630,15'
          Dst:             dir_realpath
        - Src:             'mod_auth.c:1631,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth.c:1634,7'
          Dst:             sstrncpy
        - Src:             'mod_auth.c:1637,7'
          Dst:             sstrncpy
        - Src:             'mod_auth.c:1644,9'
          Dst:             create_home
        - Src:             'mod_auth.c:1652,14'
          Dst:             get_default_chdir
        - Src:             'mod_auth.c:1654,5'
          Dst:             sstrncpy
        - Src:             'mod_auth.c:1661,8'
          Dst:             login_check_limits
        - Src:             'mod_auth.c:1663,5'
          Dst:             pr_log_auth
        - Src:             'mod_auth.c:1669,3'
          Dst:             resolve_deferred_dirs
        - Src:             'mod_auth.c:1670,3'
          Dst:             fixup_dirs
        - Src:             'mod_auth.c:1677,5'
          Dst:             resolve_anonymous_dirs
        - Src:             'mod_auth.c:1686,18'
          Dst:             pr_session_get_ttyname
        - Src:             'mod_auth.c:1692,16'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1696,16'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1725,3'
          Dst:             pr_privs_root
        - Src:             'mod_auth.c:1729,5'
          Dst:             log_wtmp
        - Src:             'mod_auth.c:1743,17'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1747,17'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1755,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:1756,5'
          Dst:             xferlog_open
        - Src:             'mod_auth.c:1759,5'
          Dst:             xferlog_open
        - Src:             'mod_auth.c:1762,9'
          Dst:             set_groups
        - Src:             'mod_auth.c:1764,9'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1766,18'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1766,9'
          Dst:             strerror
        - Src:             'mod_auth.c:1765,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1770,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth.c:1774,9'
          Dst:             get_default_root
        - Src:             'mod_auth.c:1775,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1777,7'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:1778,7'
          Dst:             pr_session_end
        - Src:             'mod_auth.c:1781,5'
          Dst:             ensure_open_passwd
        - Src:             'mod_auth.c:1784,11'
          Dst:             pr_auth_chroot
        - Src:             'mod_auth.c:1785,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1786,9'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:1787,9'
          Dst:             pr_session_end
        - Src:             'mod_auth.c:1794,41'
          Dst:             strlen
        - Src:             'mod_auth.c:1794,11'
          Dst:             strncmp
        - Src:             'mod_auth.c:1795,37'
          Dst:             strlen
        - Src:             'mod_auth.c:1801,9'
          Dst:             sstrncpy
        - Src:             'mod_auth.c:1807,5'
          Dst:             ensure_open_passwd
        - Src:             'mod_auth.c:1811,7'
          Dst:             pr_auth_chroot
        - Src:             'mod_auth.c:1812,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1813,5'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:1814,5'
          Dst:             pr_session_end
        - Src:             'mod_auth.c:1821,3'
          Dst:             pr_privs_root
        - Src:             'mod_auth.c:1833,9'
          Dst:             setuid
        - Src:             'mod_auth.c:1834,65'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1834,56'
          Dst:             strerror
        - Src:             'mod_auth.c:1834,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1837,9'
          Dst:             setgid
        - Src:             'mod_auth.c:1838,65'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1838,56'
          Dst:             strerror
        - Src:             'mod_auth.c:1838,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1843,3'
          Dst:             pr_privs_setup
        - Src:             'mod_auth.c:1859,7'
          Dst:             strncmp
        - Src:             'mod_auth.c:1860,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1862,5'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:1863,5'
          Dst:             pr_session_end
        - Src:             'mod_auth.c:1867,36'
          Dst:             get_param_ptr
        - Src:             'mod_auth.c:1886,7'
          Dst:             pr_fsio_chdir_canon
        - Src:             'mod_auth.c:1895,47'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1895,38'
          Dst:             strerror
        - Src:             'mod_auth.c:1894,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:1898,11'
          Dst:             pr_fsio_chdir_canon
        - Src:             'mod_auth.c:1900,20'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1900,11'
          Dst:             strerror
        - Src:             'mod_auth.c:1899,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1901,9'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:1902,9'
          Dst:             pr_session_end
        - Src:             'mod_auth.c:1911,47'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1911,38'
          Dst:             strerror
        - Src:             'mod_auth.c:1910,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:1913,11'
          Dst:             pr_fsio_chdir_canon
        - Src:             'mod_auth.c:1915,33'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1915,24'
          Dst:             strerror
        - Src:             'mod_auth.c:1914,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1916,9'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:1917,9'
          Dst:             pr_session_end
        - Src:             'mod_auth.c:1926,31'
          Dst:             __errno_location
        - Src:             'mod_auth.c:1926,22'
          Dst:             strerror
        - Src:             'mod_auth.c:1925,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1927,7'
          Dst:             pr_response_send
        - Src:             'mod_auth.c:1928,7'
          Dst:             pr_session_end
        - Src:             'mod_auth.c:1932,25'
          Dst:             pr_fs_getcwd
        - Src:             'mod_auth.c:1932,3'
          Dst:             sstrncpy
        - Src:             'mod_auth.c:1933,25'
          Dst:             pr_fs_getvwd
        - Src:             'mod_auth.c:1933,3'
          Dst:             sstrncpy
        - Src:             'mod_auth.c:1936,3'
          Dst:             dir_check_full
        - Src:             'mod_auth.c:1940,29'
          Dst:             pstrcat
        - Src:             'mod_auth.c:1944,29'
          Dst:             pstrcat
        - Src:             'mod_auth.c:1951,27'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1967,3'
          Dst:             pr_scoreboard_entry_update
        - Src:             'mod_auth.c:1972,3'
          Dst:             pr_session_set_idle
        - Src:             'mod_auth.c:1974,3'
          Dst:             pr_timer_remove
        - Src:             'mod_auth.c:1980,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1983,28'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1987,21'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1991,20'
          Dst:             copy_array
        - Src:             'mod_auth.c:1997,20'
          Dst:             copy_array_str
        - Src:             'mod_auth.c:2000,3'
          Dst:             pr_resolve_fs_map
        - Src:             'mod_auth.c:2006,23'
          Dst:             strlen
        - Src:             'mod_auth.c:2006,5'
          Dst:             pr_memscrub
    - functionName:    passwd_dup
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1011
      functionLinenumberEnd: 1024
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          72
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pcalloc
        - pstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:1014,9'
          Dst:             pcalloc
        - Src:             'mod_auth.c:1016,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1017,20'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1020,19'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1021,17'
          Dst:             pstrdup
        - Src:             'mod_auth.c:1022,19'
          Dst:             pstrdup
    - functionName:    do_auth
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 384
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          123
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - find_config
        - find_config_next
        - pr_auth_authenticate
        - pr_auth_check
        - pr_auth_getpwnam
        - pr_log_pri
        - pr_signals_handle
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:355,9'
          Dst:             find_config
        - Src:             'mod_auth.c:357,7'
          Dst:             pr_signals_handle
        - Src:             'mod_auth.c:359,11'
          Dst:             strcmp
        - Src:             'mod_auth.c:364,11'
          Dst:             find_config_next
        - Src:             'mod_auth.c:369,9'
          Dst:             pr_auth_getpwnam
        - Src:             'mod_auth.c:370,20'
          Dst:             __errno_location
        - Src:             'mod_auth.c:373,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:376,7'
          Dst:             __errno_location
        - Src:             'mod_auth.c:380,12'
          Dst:             pr_auth_check
        - Src:             'mod_auth.c:383,10'
          Dst:             pr_auth_authenticate
    - functionName:    get_default_chdir
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 787
      functionLinenumberEnd: 824
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          126
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - find_config
        - find_config_next
        - path_subst_uservar
        - pdircat
        - pr_expr_eval_group_and
        - pr_signals_handle
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:791,7'
          Dst:             find_config
        - Src:             'mod_auth.c:795,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth.c:803,11'
          Dst:             pr_expr_eval_group_and
        - Src:             'mod_auth.c:809,9'
          Dst:             find_config_next
        - Src:             'mod_auth.c:816,11'
          Dst:             pdircat
        - Src:             'mod_auth.c:821,11'
          Dst:             path_subst_uservar
    - functionName:    get_default_root
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 887
      functionLinenumberEnd: 1009
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          287
      EdgeCount:       60
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - dir_realpath
        - find_config
        - find_config_next
        - is_symlink_path
        - path_subst_uservar
        - pr_expr_eval_group_and
        - pr_fs_clear_cache2
        - pr_fs_interpolate
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_user
        - pr_signals_handle
        - pstrdup
        - strerror
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:892,7'
          Dst:             find_config
        - Src:             'mod_auth.c:894,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth.c:902,11'
          Dst:             pr_expr_eval_group_and
        - Src:             'mod_auth.c:908,9'
          Dst:             find_config_next
        - Src:             'mod_auth.c:915,15'
          Dst:             path_subst_uservar
        - Src:             'mod_auth.c:920,9'
          Dst:             strncmp
        - Src:             'mod_auth.c:936,16'
          Dst:             pstrdup
        - Src:             'mod_auth.c:939,17'
          Dst:             pr_fs_interpolate
        - Src:             'mod_auth.c:953,19'
          Dst:             strlen
        - Src:             'mod_auth.c:959,9'
          Dst:             pr_privs_user
        - Src:             'mod_auth.c:960,15'
          Dst:             is_symlink_path
        - Src:             'mod_auth.c:961,18'
          Dst:             __errno_location
        - Src:             'mod_auth.c:962,9'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth.c:966,13'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:970,11'
          Dst:             __errno_location
        - Src:             'mod_auth.c:981,7'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_auth.c:983,7'
          Dst:             pr_privs_user
        - Src:             'mod_auth.c:984,17'
          Dst:             dir_realpath
        - Src:             'mod_auth.c:985,16'
          Dst:             __errno_location
        - Src:             'mod_auth.c:986,7'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth.c:996,16'
          Dst:             pr_fs_interpolate
        - Src:             'mod_auth.c:1000,28'
          Dst:             strerror
        - Src:             'mod_auth.c:998,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:1002,9'
          Dst:             __errno_location
    - functionName:    ensure_open_passwd
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1027
      functionLinenumberEnd: 1045
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_auth_getgrent
        - pr_auth_getpwent
        - pr_auth_setgrent
        - pr_auth_setpwent
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:1029,3'
          Dst:             pr_auth_setpwent
        - Src:             'mod_auth.c:1030,3'
          Dst:             pr_auth_setgrent
        - Src:             'mod_auth.c:1035,3'
          Dst:             pr_auth_getpwent
        - Src:             'mod_auth.c:1036,3'
          Dst:             pr_auth_getgrent
        - Src:             'mod_auth.c:1043,3'
          Dst:             pr_auth_setpwent
        - Src:             'mod_auth.c:1044,3'
          Dst:             pr_auth_setgrent
    - functionName:    is_symlink_path
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 827
      functionLinenumberEnd: 884
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          127
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - is_symlink_path
        - pr_fs_clear_cache2
        - pr_fsio_lstat
        - pr_log_debug
        - pr_log_pri
        - pr_signals_handle
        - pstrndup
        - strerror
        - strrchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:836,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_auth.c:837,9'
          Dst:             pr_fsio_lstat
        - Src:             'mod_auth.c:838,12'
          Dst:             __errno_location
        - Src:             'mod_auth.c:842,7'
          Dst:             strerror
        - Src:             'mod_auth.c:841,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth.c:844,5'
          Dst:             __errno_location
        - Src:             'mod_auth.c:849,5'
          Dst:             __errno_location
        - Src:             'mod_auth.c:858,9'
          Dst:             strrchr
        - Src:             'mod_auth.c:863,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth.c:872,16'
          Dst:             pstrndup
        - Src:             'mod_auth.c:874,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth.c:877,11'
          Dst:             is_symlink_path
    - functionName:    set_accessdenymsg
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3021
      functionLinenumberEnd: 3031
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          105
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3024,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3024,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3025,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3025,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3025,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3025,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3025,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3027,7'
          Dst:             add_config_param_str
        - Src:             'mod_auth.c:3030,10'
          Dst:             mod_create_ret
    - functionName:    set_accessgrantmsg
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3033
      functionLinenumberEnd: 3043
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          105
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3036,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3036,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3037,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3037,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3037,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3037,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3037,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3039,7'
          Dst:             add_config_param_str
        - Src:             'mod_auth.c:3042,10'
          Dst:             mod_create_ret
    - functionName:    set_allowchrootsymlinks
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3046
      functionLinenumberEnd: 3063
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          136
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3050,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3050,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3051,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3051,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3051,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3051,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3051,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3053,27'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3055,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3055,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3058,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3059,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3062,10'
          Dst:             mod_create_ret
    - functionName:    set_allowemptypasswords
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3066
      functionLinenumberEnd: 3084
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          141
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3070,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3070,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3071,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3071,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3071,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3071,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3071,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3073,27'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3075,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3075,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3078,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3079,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3083,10'
          Dst:             mod_create_ret
    - functionName:    set_anonallowrobots
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3087
      functionLinenumberEnd: 3104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          135
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - palloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3091,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3091,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3092,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3092,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3092,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3092,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3092,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3094,18'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3096,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3096,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3099,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3100,16'
          Dst:             palloc
        - Src:             'mod_auth.c:3103,10'
          Dst:             mod_create_ret
    - functionName:    set_anonrequirepassword
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3106
      functionLinenumberEnd: 3123
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          137
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3110,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3110,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3111,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3111,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3111,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3111,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3111,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3113,25'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3115,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3115,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3118,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3119,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3122,10'
          Dst:             mod_create_ret
    - functionName:    set_anonrejectpasswords
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3126
      functionLinenumberEnd: 3191
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          277
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - palloc
        - pr_filter_parse_flags
        - pr_regexp_alloc
        - pr_regexp_compile
        - pr_regexp_error
        - pr_regexp_free
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3135,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3135,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3138,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3138,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3138,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3138,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3138,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3148,13'
          Dst:             pr_filter_parse_flags
        - Src:             'mod_auth.c:3150,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3150,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3150,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3155,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3155,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3155,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3162,9'
          Dst:             pr_regexp_alloc
        - Src:             'mod_auth.c:3170,9'
          Dst:             pr_regexp_compile
        - Src:             'mod_auth.c:3174,5'
          Dst:             pr_regexp_error
        - Src:             'mod_auth.c:3175,5'
          Dst:             pr_regexp_free
        - Src:             'mod_auth.c:3177,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3177,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3177,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3181,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3182,16'
          Dst:             palloc
        - Src:             'mod_auth.c:3184,10'
          Dst:             mod_create_ret
    - functionName:    set_authaliasonly
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3193
      functionLinenumberEnd: 3211
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          142
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3197,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3197,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3198,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3198,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3198,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3198,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3198,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3200,21'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3202,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3202,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3205,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3206,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3210,10'
          Dst:             mod_create_ret
    - functionName:    set_authusingalias
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3213
      functionLinenumberEnd: 3230
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          137
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3217,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3217,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3218,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3218,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3218,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3218,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3218,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3220,22'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3222,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3222,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3225,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3226,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3229,10'
          Dst:             mod_create_ret
    - functionName:    set_createhome
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3232
      functionLinenumberEnd: 3421
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         79
      ICount:          911
      EdgeCount:       109
      CyclomaticComplexity: 32
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_fsio_stat
        - pr_str2gid
        - pr_str2uid
        - pstrcat
        - pstrdup
        - strcasecmp
        - strcmp
        - strerror
        - strtol
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3242,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3242,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3245,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3245,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3245,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3245,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3245,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3247,17'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3249,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3249,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3254,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3255,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3258,12'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3263,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3264,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3267,12'
          Dst:             strtol
        - Src:             'mod_auth.c:3270,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3270,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3270,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3282,11'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3292,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3292,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3292,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3296,13'
          Dst:             pr_fsio_stat
        - Src:             'mod_auth.c:3297,11'
          Dst:             __errno_location
        - Src:             'mod_auth.c:3297,11'
          Dst:             strerror
        - Src:             'mod_auth.c:3297,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3297,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3297,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3302,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3302,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3302,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3308,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3308,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3308,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3315,18'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3318,19'
          Dst:             strtol
        - Src:             'mod_auth.c:3321,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3321,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3321,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3328,18'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3331,13'
          Dst:             strcmp
        - Src:             'mod_auth.c:3334,15'
          Dst:             pr_str2uid
        - Src:             'mod_auth.c:3335,13'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3335,13'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3335,13'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3349,18'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3352,13'
          Dst:             strcmp
        - Src:             'mod_auth.c:3355,15'
          Dst:             pr_str2gid
        - Src:             'mod_auth.c:3356,13'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3356,13'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3356,13'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3370,18'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3374,15'
          Dst:             strtol
        - Src:             'mod_auth.c:3377,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3377,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3377,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3386,18'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3391,9'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3391,9'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3391,9'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3397,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3400,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3402,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3404,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3408,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3411,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3413,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3415,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3417,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3420,10'
          Dst:             mod_create_ret
    - functionName:    add_defaultchdir
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3476
      functionLinenumberEnd: 3522
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          234
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_expr_create
        - pstrcat
        - pstrdup
        - strchr
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3483,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3483,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3483,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3483,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3483,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3486,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3486,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3494,7'
          Dst:             strchr
        - Src:             'mod_auth.c:3495,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3495,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3495,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3499,15'
          Dst:             strlen
        - Src:             'mod_auth.c:3500,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3503,9'
          Dst:             pr_expr_create
        - Src:             'mod_auth.c:3504,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3507,13'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3509,13'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3513,17'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3521,10'
          Dst:             mod_create_ret
    - functionName:    add_defaultroot
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3423
      functionLinenumberEnd: 3474
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          270
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_expr_create
        - pstrcat
        - pstrdup
        - strchr
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3430,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3430,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3430,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3430,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3430,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3433,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3433,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3444,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3444,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3444,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3448,7'
          Dst:             strchr
        - Src:             'mod_auth.c:3449,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3449,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3449,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3453,15'
          Dst:             strlen
        - Src:             'mod_auth.c:3454,11'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3457,9'
          Dst:             pr_expr_create
        - Src:             'mod_auth.c:3458,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3461,13'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3463,13'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3467,17'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3473,10'
          Dst:             mod_create_ret
    - functionName:    set_displaylogin
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3524
      functionLinenumberEnd: 3534
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          105
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3527,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3527,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3528,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3528,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3528,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3528,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3528,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3530,7'
          Dst:             add_config_param_str
        - Src:             'mod_auth.c:3533,10'
          Dst:             mod_create_ret
    - functionName:    set_maxclients
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3574
      functionLinenumberEnd: 3613
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          231
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - pstrdup
        - strcasecmp
        - strtol
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3580,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3580,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3583,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3583,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3583,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3583,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3583,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3585,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3591,17'
          Dst:             strtol
        - Src:             'mod_auth.c:3594,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3594,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3599,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3600,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3602,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3605,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3606,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3612,10'
          Dst:             mod_create_ret
    - functionName:    set_maxclientsclass
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3537
      functionLinenumberEnd: 3571
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          220
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - pstrdup
        - strcasecmp
        - strtol
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3541,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3541,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3541,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3541,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3541,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3543,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3549,17'
          Dst:             strtol
        - Src:             'mod_auth.c:3552,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3552,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3557,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3558,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3559,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3561,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3564,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3565,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3566,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3570,10'
          Dst:             mod_create_ret
    - functionName:    set_maxhostclients
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3616
      functionLinenumberEnd: 3655
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          231
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - pstrdup
        - strcasecmp
        - strtol
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3622,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3622,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3625,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3625,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3625,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3625,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3625,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3627,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3633,17'
          Dst:             strtol
        - Src:             'mod_auth.c:3636,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3636,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3641,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3642,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3644,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3647,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3648,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3654,10'
          Dst:             mod_create_ret
    - functionName:    set_maxuserclients
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3659
      functionLinenumberEnd: 3698
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          231
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - pstrdup
        - strcasecmp
        - strtol
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3665,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3665,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3668,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3668,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3668,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3668,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3668,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3670,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3676,17'
          Dst:             strtol
        - Src:             'mod_auth.c:3679,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3679,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3684,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3685,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3687,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3690,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3691,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3697,10'
          Dst:             mod_create_ret
    - functionName:    set_maxconnectsperhost
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3701
      functionLinenumberEnd: 3737
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          209
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - pstrdup
        - strcasecmp
        - strtol
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3707,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3707,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3710,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3710,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3710,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3710,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3710,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3712,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3718,17'
          Dst:             strtol
        - Src:             'mod_auth.c:3721,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3721,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3726,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3727,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3730,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3733,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3736,10'
          Dst:             mod_create_ret
    - functionName:    set_maxhostsperuser
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3740
      functionLinenumberEnd: 3779
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          231
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - pstrdup
        - strcasecmp
        - strtol
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3744,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3744,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3744,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3744,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3744,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3748,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3748,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3751,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3757,17'
          Dst:             strtol
        - Src:             'mod_auth.c:3760,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3760,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3765,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3766,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3768,18'
          Dst:             pstrdup
        - Src:             'mod_auth.c:3771,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3772,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3778,10'
          Dst:             mod_create_ret
    - functionName:    set_maxloginattempts
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3781
      functionLinenumberEnd: 3805
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          179
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - strcasecmp
        - strtol
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3785,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3785,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3786,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3786,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3786,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3786,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3786,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3788,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3793,17'
          Dst:             strtol
        - Src:             'mod_auth.c:3796,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3796,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3800,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3801,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3804,10'
          Dst:             mod_create_ret
    - functionName:    set_maxpasswordsize
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3808
      functionLinenumberEnd: 3849
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          175
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - palloc
        - pstrcat
        - strtoul
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3813,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3813,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3814,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3814,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3814,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3814,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3814,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3818,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3818,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3821,18'
          Dst:             strtoul
        - Src:             'mod_auth.c:3823,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3823,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3844,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3845,16'
          Dst:             palloc
        - Src:             'mod_auth.c:3848,10'
          Dst:             mod_create_ret
    - functionName:    set_requirevalidshell
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3851
      functionLinenumberEnd: 3869
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          142
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3855,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3855,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3856,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3856,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3856,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3856,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3856,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3858,25'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3860,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3860,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3863,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3864,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3868,10'
          Dst:             mod_create_ret
    - functionName:    set_rewritehome
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3872
      functionLinenumberEnd: 3889
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          136
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3876,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3876,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3877,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3877,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3877,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3877,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3877,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3879,18'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3881,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3881,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3884,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3885,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3888,10'
          Dst:             mod_create_ret
    - functionName:    set_rootlogin
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3891
      functionLinenumberEnd: 3909
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          142
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3895,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3895,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3896,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3896,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3896,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3896,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3896,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3898,22'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3900,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3900,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3903,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3904,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3908,10'
          Dst:             mod_create_ret
    - functionName:    set_rootrevoke
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3912
      functionLinenumberEnd: 3938
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          170
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3916,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3916,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3917,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3917,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3917,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3917,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3917,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3922,17'
          Dst:             get_boolean
        - Src:             'mod_auth.c:3924,9'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3925,9'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:3926,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3926,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3932,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3933,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3937,10'
          Dst:             mod_create_ret
    - functionName:    set_timeoutlogin
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3940
      functionLinenumberEnd: 3957
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          150
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_str_get_duration
        - pstrcat
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3944,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3944,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3945,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3945,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3945,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3945,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3945,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3947,7'
          Dst:             pr_str_get_duration
        - Src:             'mod_auth.c:3948,5'
          Dst:             __errno_location
        - Src:             'mod_auth.c:3948,5'
          Dst:             strerror
        - Src:             'mod_auth.c:3948,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3948,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3948,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3952,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:3953,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:3956,10'
          Dst:             mod_create_ret
    - functionName:    set_timeoutsession
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3959
      functionLinenumberEnd: 4069
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         60
      ICount:          538
      EdgeCount:       81
      CyclomaticComplexity: 23
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_expr_create
        - pr_str_get_duration
        - pstrcat
        - pstrdup
        - strcasecmp
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:3970,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3970,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3973,3'
          Dst:             check_context
        - Src:             'mod_auth.c:3973,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:3973,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3973,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3973,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3990,7'
          Dst:             pr_str_get_duration
        - Src:             'mod_auth.c:3991,5'
          Dst:             __errno_location
        - Src:             'mod_auth.c:3991,5'
          Dst:             strerror
        - Src:             'mod_auth.c:3991,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3991,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:3991,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:3997,12'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4001,9'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:4002,9'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:4003,9'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:4004,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4004,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4004,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4010,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:4011,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:4013,18'
          Dst:             pcalloc
        - Src:             'mod_auth.c:4024,11'
          Dst:             pr_expr_create
        - Src:             'mod_auth.c:4026,9'
          Dst:             add_config_param
        - Src:             'mod_auth.c:4033,15'
          Dst:             pcalloc
        - Src:             'mod_auth.c:4041,13'
          Dst:             pcalloc
        - Src:             'mod_auth.c:4045,13'
          Dst:             pcalloc
        - Src:             'mod_auth.c:4049,15'
          Dst:             pstrdup
        - Src:             'mod_auth.c:4054,19'
          Dst:             pstrdup
        - Src:             'mod_auth.c:4064,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4064,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4068,10'
          Dst:             mod_create_ret
    - functionName:    set_useftpusers
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4071
      functionLinenumberEnd: 4089
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          142
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:4075,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4075,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4076,3'
          Dst:             check_context
        - Src:             'mod_auth.c:4076,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:4076,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4076,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4076,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4078,18'
          Dst:             get_boolean
        - Src:             'mod_auth.c:4080,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4080,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4083,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:4084,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:4088,10'
          Dst:             mod_create_ret
    - functionName:    set_uselastlog
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4092
      functionLinenumberEnd: 4111
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:4111,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4111,3'
          Dst:             mod_create_ret
    - functionName:    set_useralias
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4116
      functionLinenumberEnd: 4132
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          130
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:4119,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4119,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4120,3'
          Dst:             check_context
        - Src:             'mod_auth.c:4120,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:4120,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4120,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4120,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4126,7'
          Dst:             strcmp
        - Src:             'mod_auth.c:4127,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4127,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4130,3'
          Dst:             add_config_param_str
        - Src:             'mod_auth.c:4131,10'
          Dst:             mod_create_ret
    - functionName:    set_userdirroot
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4134
      functionLinenumberEnd: 4151
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          137
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:4138,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4138,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4139,3'
          Dst:             check_context
        - Src:             'mod_auth.c:4139,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:4139,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4139,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4139,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4141,19'
          Dst:             get_boolean
        - Src:             'mod_auth.c:4143,5'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4143,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4146,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:4147,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:4150,10'
          Dst:             mod_create_ret
    - functionName:    set_userpassword
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4153
      functionLinenumberEnd: 4163
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          110
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:4156,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4156,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4157,3'
          Dst:             check_context
        - Src:             'mod_auth.c:4157,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:4157,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4157,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4157,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4159,7'
          Dst:             add_config_param_str
        - Src:             'mod_auth.c:4162,10'
          Dst:             mod_create_ret
    - functionName:    set_wtmplog
      functionSourceFile: '/src/proftpd/modules/mod_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4166
      functionLinenumberEnd: 4189
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          157
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth.c:4170,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4170,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4171,3'
          Dst:             check_context
        - Src:             'mod_auth.c:4171,3'
          Dst:             get_context_name
        - Src:             'mod_auth.c:4171,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4171,3'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4171,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4173,7'
          Dst:             strcasecmp
        - Src:             'mod_auth.c:4177,16'
          Dst:             get_boolean
        - Src:             'mod_auth.c:4179,7'
          Dst:             pstrcat
        - Src:             'mod_auth.c:4179,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth.c:4183,7'
          Dst:             add_config_param
        - Src:             'mod_auth.c:4184,16'
          Dst:             pcalloc
        - Src:             'mod_auth.c:4188,10'
          Dst:             mod_create_ret
    - functionName:    delay_sess_reinit_ev
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2102
      functionLinenumberEnd: 2125
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - close
        - delay_sess_init
        - delay_sess_reinit_ev
        - pr_event_unregister
        - pr_session_disconnect
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:2107,3'
          Dst:             pr_event_unregister
        - Src:             'mod_delay.c:2107,3'
          Dst:             delay_sess_reinit_ev
        - Src:             'mod_delay.c:2113,5'
          Dst:             close
        - Src:             'mod_delay.c:2120,9'
          Dst:             delay_sess_init
        - Src:             'mod_delay.c:2122,5'
          Dst:             pr_session_disconnect
    - functionName:    delay_sess_init
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2242
      functionLinenumberEnd: 2354
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         32
      ICount:          233
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - delay_sess_reinit_ev
        - fcntl
        - find_config
        - find_config_next
        - pr_event_register
        - pr_fs_get_usable_fd2
        - pr_fsio_open
        - pr_log_debug
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
        - pr_signals_handle
        - pr_trace_msg
        - strerror
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mod_delay.c:2278,5'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_delay.c:2247,3'
          Dst:             pr_event_register
        - Src:             'mod_delay.c:2247,3'
          Dst:             delay_sess_reinit_ev
        - Src:             'mod_delay.c:2257,7'
          Dst:             find_config
        - Src:             'mod_delay.c:2267,7'
          Dst:             find_config
        - Src:             'mod_delay.c:2272,5'
          Dst:             pr_signals_handle
        - Src:             'mod_delay.c:2301,9'
          Dst:             find_config_next
        - Src:             'mod_delay.c:2310,5'
          Dst:             pr_log_debug
        - Src:             'mod_delay.c:2319,3'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:2321,3'
          Dst:             pr_privs_root
        - Src:             'mod_delay.c:2322,8'
          Dst:             pr_fsio_open
        - Src:             'mod_delay.c:2323,12'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2324,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_delay.c:2329,7'
          Dst:             strerror
        - Src:             'mod_delay.c:2327,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:2331,26'
          Dst:             strerror
        - Src:             'mod_delay.c:2330,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:2337,7'
          Dst:             pr_fs_get_usable_fd2
        - Src:             'mod_delay.c:2340,27'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2340,18'
          Dst:             strerror
        - Src:             'mod_delay.c:2338,5'
          Dst:             pr_log_debug
        - Src:             'mod_delay.c:2344,7'
          Dst:             fcntl
        - Src:             'mod_delay.c:2347,16'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2347,7'
          Dst:             strerror
        - Src:             'mod_delay.c:2345,5'
          Dst:             pr_log_pri
    - functionName:    delay_init
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2206
      functionLinenumberEnd: 2239
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          70
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - delay_connect_ev
        - delay_handle_delay
        - delay_postparse_ev
        - delay_restart_ev
        - delay_shutdown_ev
        - make_sub_pool
        - pcalloc
        - pr_ctrls_init_acl
        - pr_ctrls_register
        - pr_event_register
        - pr_log_pri
        - pr_pool_tag
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:2211,3'
          Dst:             pr_event_register
        - Src:             'mod_delay.c:2211,3'
          Dst:             delay_connect_ev
        - Src:             'mod_delay.c:2216,3'
          Dst:             pr_event_register
        - Src:             'mod_delay.c:2216,3'
          Dst:             delay_postparse_ev
        - Src:             'mod_delay.c:2217,3'
          Dst:             pr_event_register
        - Src:             'mod_delay.c:2217,3'
          Dst:             delay_restart_ev
        - Src:             'mod_delay.c:2218,3'
          Dst:             pr_event_register
        - Src:             'mod_delay.c:2218,3'
          Dst:             delay_shutdown_ev
        - Src:             'mod_delay.c:2220,16'
          Dst:             make_sub_pool
        - Src:             'mod_delay.c:2221,3'
          Dst:             pr_pool_tag
        - Src:             'mod_delay.c:2224,7'
          Dst:             pr_ctrls_register
        - Src:             'mod_delay.c:2224,7'
          Dst:             delay_handle_delay
        - Src:             'mod_delay.c:2227,59'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2227,50'
          Dst:             strerror
        - Src:             'mod_delay.c:2226,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:2233,33'
          Dst:             pcalloc
        - Src:             'mod_delay.c:2234,7'
          Dst:             pr_ctrls_init_acl
    - functionName:    delay_connect_ev
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2000
      functionLinenumberEnd: 2028
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          90
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - delay_inject_delay_with_jitter
        - find_config
        - find_config_next
        - pr_signals_handle
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:2007,7'
          Dst:             find_config
        - Src:             'mod_delay.c:2012,5'
          Dst:             pr_signals_handle
        - Src:             'mod_delay.c:2023,9'
          Dst:             find_config_next
        - Src:             'mod_delay.c:2026,10'
          Dst:             delay_inject_delay_with_jitter
    - functionName:    delay_postparse_ev
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2045
      functionLinenumberEnd: 2075
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          103
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - delay_table_init
        - find_config
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:2048,7'
          Dst:             find_config
        - Src:             'mod_delay.c:2058,7'
          Dst:             find_config
        - Src:             'mod_delay.c:2073,12'
          Dst:             delay_table_init
    - functionName:    delay_restart_ev
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2077
      functionLinenumberEnd: 2100
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          71
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - destroy_pool
        - make_sub_pool
        - pcalloc
        - pr_ctrls_init_acl
        - pr_pool_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:2088,5'
          Dst:             destroy_pool
        - Src:             'mod_delay.c:2091,16'
          Dst:             make_sub_pool
        - Src:             'mod_delay.c:2092,3'
          Dst:             pr_pool_tag
        - Src:             'mod_delay.c:2096,31'
          Dst:             pcalloc
        - Src:             'mod_delay.c:2097,5'
          Dst:             pr_ctrls_init_acl
    - functionName:    delay_shutdown_ev
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2127
      functionLinenumberEnd: 2201
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          195
      EdgeCount:       42
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - delay_table_load
        - delay_table_unload
        - palloc
        - pr_fsio_close
        - pr_fsio_open
        - pr_fsio_write
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
        - pr_trace_msg
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:2142,3'
          Dst:             pr_privs_root
        - Src:             'mod_delay.c:2143,8'
          Dst:             pr_fsio_open
        - Src:             'mod_delay.c:2144,12'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2145,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_delay.c:2150,7'
          Dst:             strerror
        - Src:             'mod_delay.c:2148,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:2151,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2158,7'
          Dst:             delay_table_load
        - Src:             'mod_delay.c:2159,14'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2160,5'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:2164,43'
          Dst:             strerror
        - Src:             'mod_delay.c:2162,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:2167,43'
          Dst:             strerror
        - Src:             'mod_delay.c:2165,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:2169,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2174,10'
          Dst:             palloc
        - Src:             'mod_delay.c:2180,7'
          Dst:             delay_table_unload
        - Src:             'mod_delay.c:2183,35'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2183,26'
          Dst:             strerror
        - Src:             'mod_delay.c:2181,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:2188,9'
          Dst:             pr_fsio_write
        - Src:             'mod_delay.c:2191,18'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2191,9'
          Dst:             strerror
        - Src:             'mod_delay.c:2189,7'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:2196,7'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:2199,16'
          Dst:             __errno_location
        - Src:             'mod_delay.c:2199,7'
          Dst:             strerror
        - Src:             'mod_delay.c:2197,5'
          Dst:             pr_log_pri
    - functionName:    delay_handle_delay
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1520
      functionLinenumberEnd: 1552
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          124
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - delay_handle_info
        - delay_handle_reset
        - pr_ctrls_add_response
        - pr_ctrls_check_acl
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:1523,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1529,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1533,7'
          Dst:             strcmp
        - Src:             'mod_delay.c:1534,9'
          Dst:             pr_ctrls_check_acl
        - Src:             'mod_delay.c:1535,7'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1539,12'
          Dst:             delay_handle_info
        - Src:             'mod_delay.c:1541,14'
          Dst:             strcmp
        - Src:             'mod_delay.c:1542,9'
          Dst:             pr_ctrls_check_acl
        - Src:             'mod_delay.c:1543,7'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1547,12'
          Dst:             delay_handle_reset
        - Src:             'mod_delay.c:1550,3'
          Dst:             pr_ctrls_add_response
    - functionName:    delay_handle_info
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1299
      functionLinenumberEnd: 1448
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          398
      EdgeCount:       67
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
        - delay_get_pass_rownum
        - delay_get_user_rownum
        - delay_table_load
        - delay_table_unload
        - destroy_pool
        - make_sub_pool
        - pr_ctrls_add_response
        - pr_fsio_close
        - pr_fsio_open
        - pr_privs_relinquish
        - pr_privs_root
        - pr_snprintf
        - pr_trace_msg
        - pstrcat
        - strerror
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:1306,3'
          Dst:             pr_privs_root
        - Src:             'mod_delay.c:1307,8'
          Dst:             pr_fsio_open
        - Src:             'mod_delay.c:1308,12'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1309,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_delay.c:1314,7'
          Dst:             strerror
        - Src:             'mod_delay.c:1312,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1321,7'
          Dst:             delay_table_load
        - Src:             'mod_delay.c:1322,14'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1326,43'
          Dst:             strerror
        - Src:             'mod_delay.c:1324,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1329,43'
          Dst:             strerror
        - Src:             'mod_delay.c:1327,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1331,5'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:1338,14'
          Dst:             make_sub_pool
        - Src:             'mod_delay.c:1346,9'
          Dst:             delay_get_user_rownum
        - Src:             'mod_delay.c:1348,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1361,7'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1372,9'
          Dst:             pr_snprintf
        - Src:             'mod_delay.c:1375,16'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1379,11'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1384,11'
          Dst:             strlen
        - Src:             'mod_delay.c:1385,9'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1389,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1392,9'
          Dst:             delay_get_pass_rownum
        - Src:             'mod_delay.c:1394,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1407,7'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1415,9'
          Dst:             pr_snprintf
        - Src:             'mod_delay.c:1418,16'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1422,11'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1427,11'
          Dst:             strlen
        - Src:             'mod_delay.c:1428,9'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1432,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1435,7'
          Dst:             delay_table_unload
        - Src:             'mod_delay.c:1438,35'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1438,26'
          Dst:             strerror
        - Src:             'mod_delay.c:1436,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1441,3'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:1446,3'
          Dst:             destroy_pool
    - functionName:    delay_handle_reset
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1451
      functionLinenumberEnd: 1517
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          158
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - fcntl
        - pr_ctrls_add_response
        - pr_fsio_close
        - pr_fsio_ftruncate
        - pr_fsio_open
        - pr_privs_relinquish
        - pr_privs_root
        - pr_signals_handle
        - pr_trace_msg
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:1456,3'
          Dst:             pr_privs_root
        - Src:             'mod_delay.c:1457,8'
          Dst:             pr_fsio_open
        - Src:             'mod_delay.c:1458,12'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1459,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_delay.c:1464,7'
          Dst:             strerror
        - Src:             'mod_delay.c:1462,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1473,10'
          Dst:             fcntl
        - Src:             'mod_delay.c:1474,14'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1477,7'
          Dst:             pr_signals_handle
        - Src:             'mod_delay.c:1483,21'
          Dst:             strerror
        - Src:             'mod_delay.c:1481,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1484,5'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:1489,7'
          Dst:             pr_fsio_ftruncate
        - Src:             'mod_delay.c:1490,14'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1493,60'
          Dst:             strerror
        - Src:             'mod_delay.c:1492,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1494,5'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:1500,7'
          Dst:             fcntl
        - Src:             'mod_delay.c:1502,56'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1502,47'
          Dst:             strerror
        - Src:             'mod_delay.c:1501,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1505,7'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:1506,14'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1510,7'
          Dst:             strerror
        - Src:             'mod_delay.c:1508,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_delay.c:1515,3'
          Dst:             pr_ctrls_add_response
    - functionName:    delay_table_load
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1069
      functionLinenumberEnd: 1125
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          136
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - fcntl
        - mmap
        - pr_signals_handle
        - pr_trace_msg
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:1078,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1080,12'
          Dst:             fcntl
        - Src:             'mod_delay.c:1081,11'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1082,9'
          Dst:             pr_signals_handle
        - Src:             'mod_delay.c:1091,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1094,25'
          Dst:             mmap
        - Src:             'mod_delay.c:1098,20'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1109,9'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1111,16'
          Dst:             fcntl
        - Src:             'mod_delay.c:1112,15'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1113,13'
          Dst:             pr_signals_handle
        - Src:             'mod_delay.c:1119,7'
          Dst:             __errno_location
    - functionName:    delay_get_user_rownum
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 615
      functionLinenumberEnd: 625
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    delay_get_pass_rownum
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 628
      functionLinenumberEnd: 638
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    delay_table_unload
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1223
      functionLinenumberEnd: 1264
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          103
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - fcntl
        - munmap
        - pr_log_pri
        - pr_signals_handle
        - pr_trace_msg
        - strerror
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:1226,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1228,9'
          Dst:             munmap
        - Src:             'mod_delay.c:1229,20'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1233,9'
          Dst:             strerror
        - Src:             'mod_delay.c:1231,7'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:1235,28'
          Dst:             strerror
        - Src:             'mod_delay.c:1234,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1237,7'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1251,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1253,12'
          Dst:             fcntl
        - Src:             'mod_delay.c:1254,11'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1255,9'
          Dst:             pr_signals_handle
    - functionName:    munmap
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mmap
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - int
        - int
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    delay_table_init
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 709
      functionLinenumberEnd: 1067
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         77
      ICount:          760
      EdgeCount:       106
      CyclomaticComplexity: 31
      functionsReached:
        - __errno_location
        - delay_get_pass_rownum
        - delay_get_user_rownum
        - delay_table_init_lookup
        - delay_table_reset
        - fcntl
        - lseek
        - mmap
        - munmap
        - pr_fs_get_usable_fd2
        - pr_fsio_close
        - pr_fsio_fstat
        - pr_fsio_ftruncate
        - pr_fsio_open
        - pr_log_debug
        - pr_log_pri
        - pr_netaddr_get_ipstr
        - pr_privs_relinquish
        - pr_privs_root
        - pr_signals_handle
        - pr_trace_msg
        - strcmp
        - strerror
        - write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:735,3'
          Dst:             pr_privs_root
        - Src:             'mod_delay.c:736,8'
          Dst:             pr_fsio_open
        - Src:             'mod_delay.c:737,12'
          Dst:             __errno_location
        - Src:             'mod_delay.c:738,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_delay.c:743,7'
          Dst:             strerror
        - Src:             'mod_delay.c:741,5'
          Dst:             pr_log_debug
        - Src:             'mod_delay.c:745,26'
          Dst:             strerror
        - Src:             'mod_delay.c:744,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:746,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:751,7'
          Dst:             pr_fs_get_usable_fd2
        - Src:             'mod_delay.c:754,27'
          Dst:             __errno_location
        - Src:             'mod_delay.c:754,18'
          Dst:             strerror
        - Src:             'mod_delay.c:752,5'
          Dst:             pr_log_debug
        - Src:             'mod_delay.c:758,7'
          Dst:             fcntl
        - Src:             'mod_delay.c:761,16'
          Dst:             __errno_location
        - Src:             'mod_delay.c:761,7'
          Dst:             strerror
        - Src:             'mod_delay.c:759,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:764,7'
          Dst:             pr_fsio_fstat
        - Src:             'mod_delay.c:765,14'
          Dst:             __errno_location
        - Src:             'mod_delay.c:768,26'
          Dst:             strerror
        - Src:             'mod_delay.c:767,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:769,5'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:771,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:779,26'
          Dst:             strerror
        - Src:             'mod_delay.c:778,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:780,5'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:782,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:792,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:801,3'
          Dst:             delay_table_init_lookup
        - Src:             'mod_delay.c:811,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:813,12'
          Dst:             fcntl
        - Src:             'mod_delay.c:814,16'
          Dst:             __errno_location
        - Src:             'mod_delay.c:816,11'
          Dst:             __errno_location
        - Src:             'mod_delay.c:817,9'
          Dst:             pr_signals_handle
        - Src:             'mod_delay.c:823,22'
          Dst:             strerror
        - Src:             'mod_delay.c:821,7'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:826,9'
          Dst:             strerror
        - Src:             'mod_delay.c:824,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:827,7'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:829,7'
          Dst:             __errno_location
        - Src:             'mod_delay.c:838,9'
          Dst:             lseek
        - Src:             'mod_delay.c:839,16'
          Dst:             __errno_location
        - Src:             'mod_delay.c:843,50'
          Dst:             strerror
        - Src:             'mod_delay.c:841,7'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:846,50'
          Dst:             strerror
        - Src:             'mod_delay.c:844,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:848,7'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:850,7'
          Dst:             __errno_location
        - Src:             'mod_delay.c:854,9'
          Dst:             write
        - Src:             'mod_delay.c:855,16'
          Dst:             __errno_location
        - Src:             'mod_delay.c:859,9'
          Dst:             strerror
        - Src:             'mod_delay.c:857,7'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:862,9'
          Dst:             strerror
        - Src:             'mod_delay.c:860,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:864,7'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:866,7'
          Dst:             __errno_location
        - Src:             'mod_delay.c:871,5'
          Dst:             pr_fsio_ftruncate
        - Src:             'mod_delay.c:875,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:876,9'
          Dst:             fcntl
        - Src:             'mod_delay.c:878,58'
          Dst:             __errno_location
        - Src:             'mod_delay.c:878,49'
          Dst:             strerror
        - Src:             'mod_delay.c:877,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:885,3'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:888,23'
          Dst:             mmap
        - Src:             'mod_delay.c:892,14'
          Dst:             __errno_location
        - Src:             'mod_delay.c:898,7'
          Dst:             strerror
        - Src:             'mod_delay.c:896,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:901,7'
          Dst:             strerror
        - Src:             'mod_delay.c:899,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:903,5'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:906,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:918,11'
          Dst:             delay_get_user_rownum
        - Src:             'mod_delay.c:920,16'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_delay.c:925,11'
          Dst:             strcmp
        - Src:             'mod_delay.c:936,11'
          Dst:             delay_get_pass_rownum
        - Src:             'mod_delay.c:938,11'
          Dst:             strcmp
        - Src:             'mod_delay.c:958,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:960,12'
          Dst:             fcntl
        - Src:             'mod_delay.c:961,16'
          Dst:             __errno_location
        - Src:             'mod_delay.c:963,11'
          Dst:             __errno_location
        - Src:             'mod_delay.c:964,9'
          Dst:             pr_signals_handle
        - Src:             'mod_delay.c:970,22'
          Dst:             strerror
        - Src:             'mod_delay.c:968,7'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:973,9'
          Dst:             strerror
        - Src:             'mod_delay.c:971,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:974,7'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:976,7'
          Dst:             __errno_location
        - Src:             'mod_delay.c:985,9'
          Dst:             lseek
        - Src:             'mod_delay.c:986,16'
          Dst:             __errno_location
        - Src:             'mod_delay.c:990,50'
          Dst:             strerror
        - Src:             'mod_delay.c:988,7'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:993,50'
          Dst:             strerror
        - Src:             'mod_delay.c:991,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:995,7'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:997,7'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1001,9'
          Dst:             write
        - Src:             'mod_delay.c:1002,16'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1006,9'
          Dst:             strerror
        - Src:             'mod_delay.c:1004,7'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:1009,9'
          Dst:             strerror
        - Src:             'mod_delay.c:1007,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1011,7'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:1013,7'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1018,5'
          Dst:             pr_fsio_ftruncate
        - Src:             'mod_delay.c:1020,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1022,5'
          Dst:             delay_table_reset
        - Src:             'mod_delay.c:1026,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1027,9'
          Dst:             fcntl
        - Src:             'mod_delay.c:1029,58'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1029,49'
          Dst:             strerror
        - Src:             'mod_delay.c:1028,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1034,3'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1036,7'
          Dst:             munmap
        - Src:             'mod_delay.c:1037,14'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1038,5'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:1042,7'
          Dst:             strerror
        - Src:             'mod_delay.c:1040,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:1044,26'
          Dst:             strerror
        - Src:             'mod_delay.c:1043,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1046,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1053,7'
          Dst:             pr_fsio_close
        - Src:             'mod_delay.c:1054,14'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1058,7'
          Dst:             strerror
        - Src:             'mod_delay.c:1056,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:1060,26'
          Dst:             strerror
        - Src:             'mod_delay.c:1059,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1062,5'
          Dst:             __errno_location
    - functionName:    delay_table_init_lookup
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 678
      functionLinenumberEnd: 707
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         11
      ICount:          102
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - pcalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:688,12'
          Dst:             pcalloc
    - functionName:    delay_table_reset
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1127
      functionLinenumberEnd: 1194
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          224
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - delay_get_pass_rownum
        - delay_get_user_rownum
        - pr_netaddr_get_ipstr
        - sstrcat
        - sstrncpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:1136,14'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_delay.c:1142,9'
          Dst:             delay_get_user_rownum
        - Src:             'mod_delay.c:1145,5'
          Dst:             sstrncpy
        - Src:             'mod_delay.c:1152,5'
          Dst:             sstrcat
        - Src:             'mod_delay.c:1158,5'
          Dst:             sstrcat
        - Src:             'mod_delay.c:1164,5'
          Dst:             sstrcat
        - Src:             'mod_delay.c:1169,9'
          Dst:             delay_get_pass_rownum
        - Src:             'mod_delay.c:1172,5'
          Dst:             sstrncpy
        - Src:             'mod_delay.c:1178,5'
          Dst:             sstrcat
        - Src:             'mod_delay.c:1184,5'
          Dst:             sstrcat
        - Src:             'mod_delay.c:1190,5'
          Dst:             sstrcat
    - functionName:    delay_inject_delay_with_jitter
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 394
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - delay_inject_delay
        - pr_random_next
        - pr_trace_msg
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:403,17'
          Dst:             pr_random_next
        - Src:             'mod_delay.c:405,3'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:413,10'
          Dst:             delay_inject_delay
    - functionName:    delay_inject_delay
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          61
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - delay_signals_block
        - delay_signals_unblock
        - pr_signals_handle
        - pr_trace_msg
        - select
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:375,3'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:378,3'
          Dst:             delay_signals_block
        - Src:             'mod_delay.c:379,9'
          Dst:             select
        - Src:             'mod_delay.c:380,12'
          Dst:             __errno_location
        - Src:             'mod_delay.c:381,3'
          Dst:             delay_signals_unblock
        - Src:             'mod_delay.c:387,5'
          Dst:             pr_signals_handle
    - functionName:    delay_signals_block
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - delay_mask_signals
        - pr_trace_msg
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:355,7'
          Dst:             delay_mask_signals
        - Src:             'mod_delay.c:357,46'
          Dst:             __errno_location
        - Src:             'mod_delay.c:357,37'
          Dst:             strerror
        - Src:             'mod_delay.c:356,5'
          Dst:             pr_trace_msg
    - functionName:    delay_signals_unblock
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - delay_mask_signals
        - pr_trace_msg
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:362,7'
          Dst:             delay_mask_signals
        - Src:             'mod_delay.c:364,48'
          Dst:             __errno_location
        - Src:             'mod_delay.c:364,39'
          Dst:             strerror
        - Src:             'mod_delay.c:363,5'
          Dst:             pr_trace_msg
    - functionName:    delay_mask_signals
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sigaddset
        - sigemptyset
        - sigprocmask
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:331,5'
          Dst:             sigemptyset
        - Src:             'mod_delay.c:333,5'
          Dst:             sigaddset
        - Src:             'mod_delay.c:334,5'
          Dst:             sigaddset
        - Src:             'mod_delay.c:335,5'
          Dst:             sigaddset
        - Src:             'mod_delay.c:336,5'
          Dst:             sigaddset
        - Src:             'mod_delay.c:338,5'
          Dst:             sigaddset
        - Src:             'mod_delay.c:341,5'
          Dst:             sigaddset
        - Src:             'mod_delay.c:343,5'
          Dst:             sigaddset
        - Src:             'mod_delay.c:345,11'
          Dst:             sigprocmask
        - Src:             'mod_delay.c:348,11'
          Dst:             sigprocmask
    - functionName:    delay_pre_pass
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1868
      functionLinenumberEnd: 1878
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - gettimeofday
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:1876,3'
          Dst:             gettimeofday
    - functionName:    delay_post_pass
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1765
      functionLinenumberEnd: 1866
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          222
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - close
        - delay_get_median
        - delay_get_pass_rownum
        - delay_inject_delay_with_jitter
        - delay_table_add_interval
        - delay_table_load
        - delay_table_unload
        - delay_table_unlock
        - delay_table_wlock
        - get_param_ptr
        - gettimeofday
        - pr_event_generate
        - pr_log_pri
        - pr_session_get_protocol
        - pr_trace_msg
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:1778,19'
          Dst:             get_param_ptr
        - Src:             'mod_delay.c:1784,12'
          Dst:             delay_get_pass_rownum
        - Src:             'mod_delay.c:1787,7'
          Dst:             delay_table_load
        - Src:             'mod_delay.c:1788,18'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1792,43'
          Dst:             strerror
        - Src:             'mod_delay.c:1790,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:1795,43'
          Dst:             strerror
        - Src:             'mod_delay.c:1793,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1797,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1802,3'
          Dst:             gettimeofday
        - Src:             'mod_delay.c:1804,3'
          Dst:             delay_table_wlock
        - Src:             'mod_delay.c:1808,3'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1811,11'
          Dst:             pr_session_get_protocol
        - Src:             'mod_delay.c:1814,12'
          Dst:             delay_get_median
        - Src:             'mod_delay.c:1821,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1822,5'
          Dst:             delay_table_add_interval
        - Src:             'mod_delay.c:1829,5'
          Dst:             pr_event_generate
        - Src:             'mod_delay.c:1833,3'
          Dst:             delay_table_unlock
        - Src:             'mod_delay.c:1834,7'
          Dst:             delay_table_unload
        - Src:             'mod_delay.c:1837,35'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1837,26'
          Dst:             strerror
        - Src:             'mod_delay.c:1835,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:1845,12'
          Dst:             close
        - Src:             'mod_delay.c:1854,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1857,28'
          Dst:             delay_inject_delay_with_jitter
        - Src:             'mod_delay.c:1861,5'
          Dst:             pr_trace_msg
    - functionName:    delay_pre_user
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1985
      functionLinenumberEnd: 1995
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - gettimeofday
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:1993,3'
          Dst:             gettimeofday
    - functionName:    delay_post_user
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1880
      functionLinenumberEnd: 1983
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          222
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - delay_get_median
        - delay_get_user_rownum
        - delay_inject_delay_with_jitter
        - delay_table_add_interval
        - delay_table_load
        - delay_table_unload
        - delay_table_unlock
        - delay_table_wlock
        - get_param_ptr
        - gettimeofday
        - pr_event_generate
        - pr_log_pri
        - pr_session_get_protocol
        - pr_trace_msg
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:1893,19'
          Dst:             get_param_ptr
        - Src:             'mod_delay.c:1899,12'
          Dst:             delay_get_user_rownum
        - Src:             'mod_delay.c:1902,7'
          Dst:             delay_table_load
        - Src:             'mod_delay.c:1903,18'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1907,43'
          Dst:             strerror
        - Src:             'mod_delay.c:1905,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:1910,43'
          Dst:             strerror
        - Src:             'mod_delay.c:1908,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1912,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1917,3'
          Dst:             gettimeofday
        - Src:             'mod_delay.c:1919,3'
          Dst:             delay_table_wlock
        - Src:             'mod_delay.c:1934,3'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1937,11'
          Dst:             pr_session_get_protocol
        - Src:             'mod_delay.c:1940,12'
          Dst:             delay_get_median
        - Src:             'mod_delay.c:1947,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1948,5'
          Dst:             delay_table_add_interval
        - Src:             'mod_delay.c:1955,5'
          Dst:             pr_event_generate
        - Src:             'mod_delay.c:1959,3'
          Dst:             delay_table_unlock
        - Src:             'mod_delay.c:1960,7'
          Dst:             delay_table_unload
        - Src:             'mod_delay.c:1963,35'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1963,26'
          Dst:             strerror
        - Src:             'mod_delay.c:1961,5'
          Dst:             pr_log_pri
        - Src:             'mod_delay.c:1971,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1974,28'
          Dst:             delay_inject_delay_with_jitter
        - Src:             'mod_delay.c:1978,5'
          Dst:             pr_trace_msg
    - functionName:    delay_log_user
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1742
      functionLinenumberEnd: 1763
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          72
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - delay_inject_delay
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:1755,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1758,7'
          Dst:             delay_inject_delay
    - functionName:    delay_log_pass
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1690
      functionLinenumberEnd: 1711
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          72
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - delay_inject_delay
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:1703,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1706,7'
          Dst:             delay_inject_delay
    - functionName:    delay_log_pass_err
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1713
      functionLinenumberEnd: 1740
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          102
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - delay_inject_delay
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:1732,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1735,7'
          Dst:             delay_inject_delay
    - functionName:    delay_table_wlock
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1196
      functionLinenumberEnd: 1221
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - fcntl
        - pr_signals_handle
        - pr_trace_msg
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:1204,3'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1206,10'
          Dst:             fcntl
        - Src:             'mod_delay.c:1207,18'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1210,7'
          Dst:             pr_signals_handle
        - Src:             'mod_delay.c:1214,61'
          Dst:             strerror
        - Src:             'mod_delay.c:1214,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1216,5'
          Dst:             __errno_location
    - functionName:    delay_get_median
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          185
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - delay_select_k
        - make_array
        - pr_log_debug
        - pr_trace_msg
        - push_array
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:260,24'
          Dst:             make_array
        - Src:             'mod_delay.c:280,9'
          Dst:             strcmp
        - Src:             'mod_delay.c:295,20'
          Dst:             push_array
        - Src:             'mod_delay.c:299,14'
          Dst:             push_array
        - Src:             'mod_delay.c:301,3'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:304,12'
          Dst:             delay_select_k
        - Src:             'mod_delay.c:309,7'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:312,7'
          Dst:             pr_log_debug
        - Src:             'mod_delay.c:318,7'
          Dst:             pr_trace_msg
    - functionName:    delay_table_add_interval
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 642
      functionLinenumberEnd: 671
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          106
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:651,9'
          Dst:             strcmp
    - functionName:    delay_table_unlock
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1266
      functionLinenumberEnd: 1291
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - fcntl
        - pr_signals_handle
        - pr_trace_msg
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:1274,3'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1276,10'
          Dst:             fcntl
        - Src:             'mod_delay.c:1277,18'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1280,7'
          Dst:             pr_signals_handle
        - Src:             'mod_delay.c:1284,63'
          Dst:             strerror
        - Src:             'mod_delay.c:1284,5'
          Dst:             pr_trace_msg
        - Src:             'mod_delay.c:1286,5'
          Dst:             __errno_location
    - functionName:    delay_select_k
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          419
      EdgeCount:       62
      CyclomaticComplexity: 16
      functionsReached:
        - pr_signals_handle
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:186,5'
          Dst:             pr_signals_handle
        - Src:             'mod_delay.c:217,7'
          Dst:             pr_signals_handle
    - functionName:    set_delayctrlsacls
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1559
      functionLinenumberEnd: 1591
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          227
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_ctrls_parse_acl
        - pr_ctrls_set_module_acls
        - pstrcat
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:1563,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1563,3'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1564,3'
          Dst:             check_context
        - Src:             'mod_delay.c:1564,3'
          Dst:             get_context_name
        - Src:             'mod_delay.c:1564,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1564,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1564,3'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1566,13'
          Dst:             pr_ctrls_parse_acl
        - Src:             'mod_delay.c:1569,7'
          Dst:             strcmp
        - Src:             'mod_delay.c:1570,7'
          Dst:             strcmp
        - Src:             'mod_delay.c:1571,5'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1571,5'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1575,7'
          Dst:             strcmp
        - Src:             'mod_delay.c:1576,7'
          Dst:             strcmp
        - Src:             'mod_delay.c:1577,5'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1577,5'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1580,16'
          Dst:             pr_ctrls_set_module_acls
        - Src:             'mod_delay.c:1583,5'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1583,5'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1583,5'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1587,10'
          Dst:             mod_create_ret
    - functionName:    set_delayengine
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1594
      functionLinenumberEnd: 1611
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          134
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:1598,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1598,3'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1599,3'
          Dst:             check_context
        - Src:             'mod_delay.c:1599,3'
          Dst:             get_context_name
        - Src:             'mod_delay.c:1599,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1599,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1599,3'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1601,12'
          Dst:             get_boolean
        - Src:             'mod_delay.c:1603,5'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1603,5'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1606,7'
          Dst:             add_config_param
        - Src:             'mod_delay.c:1607,16'
          Dst:             pcalloc
        - Src:             'mod_delay.c:1610,10'
          Dst:             mod_create_ret
    - functionName:    set_delayonevent
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1614
      functionLinenumberEnd: 1665
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          284
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - delay_str_get_duration_ms
        - get_context_name
        - mod_create_ret
        - palloc
        - pr_module_exists
        - pstrcat
        - strcmp
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:1619,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1619,3'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1620,3'
          Dst:             check_context
        - Src:             'mod_delay.c:1620,3'
          Dst:             get_context_name
        - Src:             'mod_delay.c:1620,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1620,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1620,3'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1622,7'
          Dst:             strcmp
        - Src:             'mod_delay.c:1625,14'
          Dst:             strcmp
        - Src:             'mod_delay.c:1628,14'
          Dst:             strcmp
        - Src:             'mod_delay.c:1631,14'
          Dst:             strcmp
        - Src:             'mod_delay.c:1635,5'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1635,5'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1635,5'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1639,7'
          Dst:             delay_str_get_duration_ms
        - Src:             'mod_delay.c:1641,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:1641,5'
          Dst:             strerror
        - Src:             'mod_delay.c:1641,5'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1641,5'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1641,5'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1645,7'
          Dst:             add_config_param
        - Src:             'mod_delay.c:1646,16'
          Dst:             palloc
        - Src:             'mod_delay.c:1648,16'
          Dst:             palloc
        - Src:             'mod_delay.c:1649,16'
          Dst:             palloc
        - Src:             'mod_delay.c:1657,7'
          Dst:             pr_module_exists
        - Src:             'mod_delay.c:1664,10'
          Dst:             mod_create_ret
    - functionName:    set_delaytable
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1668
      functionLinenumberEnd: 1685
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          140
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_fs_valid_path
        - pstrcat
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:1671,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1671,3'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1672,3'
          Dst:             check_context
        - Src:             'mod_delay.c:1672,3'
          Dst:             get_context_name
        - Src:             'mod_delay.c:1672,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1672,3'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1672,3'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1674,7'
          Dst:             pr_fs_valid_path
        - Src:             'mod_delay.c:1675,9'
          Dst:             strcasecmp
        - Src:             'mod_delay.c:1676,7'
          Dst:             pstrcat
        - Src:             'mod_delay.c:1676,7'
          Dst:             mod_create_ret
        - Src:             'mod_delay.c:1683,3'
          Dst:             add_config_param_str
        - Src:             'mod_delay.c:1684,10'
          Dst:             mod_create_ret
    - functionName:    delay_str_get_duration_ms
      functionSourceFile: '/src/proftpd/modules/mod_delay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 422
      functionLinenumberEnd: 607
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         111
      ICount:          561
      EdgeCount:       154
      CyclomaticComplexity: 45
      functionsReached:
        - __errno_location
        - __isoc99_sscanf
        - pr_strnrstr
        - strlen
        - strtol
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_delay.c:430,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:434,7'
          Dst:             __isoc99_sscanf
        - Src:             'mod_delay.c:438,7'
          Dst:             __errno_location
        - Src:             'mod_delay.c:453,7'
          Dst:             __isoc99_sscanf
        - Src:             'mod_delay.c:456,7'
          Dst:             __errno_location
        - Src:             'mod_delay.c:461,7'
          Dst:             __errno_location
        - Src:             'mod_delay.c:476,9'
          Dst:             strlen
        - Src:             'mod_delay.c:478,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:482,16'
          Dst:             pr_strnrstr
        - Src:             'mod_delay.c:486,9'
          Dst:             __isoc99_sscanf
        - Src:             'mod_delay.c:488,9'
          Dst:             __errno_location
        - Src:             'mod_delay.c:503,9'
          Dst:             __isoc99_sscanf
        - Src:             'mod_delay.c:506,9'
          Dst:             __errno_location
        - Src:             'mod_delay.c:511,9'
          Dst:             __errno_location
        - Src:             'mod_delay.c:526,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:530,16'
          Dst:             pr_strnrstr
        - Src:             'mod_delay.c:532,18'
          Dst:             pr_strnrstr
        - Src:             'mod_delay.c:540,9'
          Dst:             __isoc99_sscanf
        - Src:             'mod_delay.c:542,9'
          Dst:             __errno_location
        - Src:             'mod_delay.c:557,9'
          Dst:             __isoc99_sscanf
        - Src:             'mod_delay.c:560,9'
          Dst:             __errno_location
        - Src:             'mod_delay.c:565,9'
          Dst:             __errno_location
        - Src:             'mod_delay.c:580,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:585,15'
          Dst:             strtol
        - Src:             'mod_delay.c:588,5'
          Dst:             __errno_location
        - Src:             'mod_delay.c:594,5'
          Dst:             __errno_location
    - functionName:    core_get_sess_files_str
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6903
      functionLinenumberEnd: 6910
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_snprintf
        - pstrdup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:6908,3'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:6910,10'
          Dst:             pstrdup
    - functionName:    core_get_sess_bytes_str
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6893
      functionLinenumberEnd: 6900
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_snprintf
        - pstrdup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:6898,3'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:6900,10'
          Dst:             pstrdup
    - functionName:    core_get_xfer_bytes_str
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6913
      functionLinenumberEnd: 6920
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_snprintf
        - pstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:6918,3'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:6920,10'
          Dst:             pstrdup
    - functionName:    set_server_auth_order
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7169
      functionLinenumberEnd: 7243
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         30
      ICount:          219
      EdgeCount:       38
      CyclomaticComplexity: 10
      functionsReached:
        - find_config
        - pr_log_debug
        - pr_module_get
        - pr_stash_add_symbol
        - pr_stash_remove_symbol
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:7172,7'
          Dst:             find_config
        - Src:             'mod_core.c:7179,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7186,7'
          Dst:             pr_stash_remove_symbol
        - Src:             'mod_core.c:7198,22'
          Dst:             strlen
        - Src:             'mod_core.c:7200,20'
          Dst:             strlen
        - Src:             'mod_core.c:7203,11'
          Dst:             pr_module_get
        - Src:             'mod_core.c:7223,13'
          Dst:             pr_stash_add_symbol
        - Src:             'mod_core.c:7227,11'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7233,9'
          Dst:             pr_log_debug
    - functionName:    core_scrub_scoreboard_cb
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_scoreboard_scrub
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:191,3'
          Dst:             pr_scoreboard_scrub
    - functionName:    core_startup_ev
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7034
      functionLinenumberEnd: 7065
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          86
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - core_scrub_scoreboard_cb
        - find_config
        - pr_timer_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:7051,9'
          Dst:             find_config
        - Src:             'mod_core.c:7061,29'
          Dst:             pr_timer_add
        - Src:             'mod_core.c:7061,29'
          Dst:             core_scrub_scoreboard_cb
    - functionName:    core_init
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7070
      functionLinenumberEnd: 7127
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          58
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - core_connected_ev
        - core_postparse_ev
        - core_restart_ev
        - core_startup_ev
        - pr_cmd_set_handler
        - pr_event_register
        - pr_feat_add
        - pr_help_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:7072,3'
          Dst:             pr_cmd_set_handler
        - Src:             'mod_core.c:7075,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7076,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7077,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7078,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7079,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7080,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7081,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7082,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7083,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7084,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7085,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7086,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7087,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7088,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7089,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7090,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7091,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7092,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7093,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7094,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7095,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7096,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7097,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7098,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7099,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7100,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7101,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7102,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7103,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7104,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7105,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7106,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7107,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7108,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7109,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7110,3'
          Dst:             pr_help_add
        - Src:             'mod_core.c:7115,3'
          Dst:             pr_feat_add
        - Src:             'mod_core.c:7116,3'
          Dst:             pr_feat_add
        - Src:             'mod_core.c:7117,3'
          Dst:             pr_feat_add
        - Src:             'mod_core.c:7118,3'
          Dst:             pr_feat_add
        - Src:             'mod_core.c:7119,3'
          Dst:             pr_feat_add
        - Src:             'mod_core.c:7120,3'
          Dst:             pr_feat_add
        - Src:             'mod_core.c:7122,3'
          Dst:             pr_event_register
        - Src:             'mod_core.c:7122,3'
          Dst:             core_connected_ev
        - Src:             'mod_core.c:7123,3'
          Dst:             pr_event_register
        - Src:             'mod_core.c:7123,3'
          Dst:             core_postparse_ev
        - Src:             'mod_core.c:7124,3'
          Dst:             pr_event_register
        - Src:             'mod_core.c:7124,3'
          Dst:             core_restart_ev
        - Src:             'mod_core.c:7125,3'
          Dst:             pr_event_register
        - Src:             'mod_core.c:7125,3'
          Dst:             core_startup_ev
    - functionName:    core_sess_init
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7245
      functionLinenumberEnd: 7541
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         119
      ICount:          804
      EdgeCount:       158
      CyclomaticComplexity: 41
      functionsReached:
        - __errno_location
        - core_chroot_ev
        - core_get_sess_bytes_str
        - core_get_sess_files_str
        - core_get_xfer_bytes_str
        - core_handle_locale_env
        - core_idle_timeout_cb
        - find_config
        - find_config_next
        - get_param_ptr
        - init_auth
        - pr_data_get_timeout
        - pr_data_set_linger
        - pr_data_set_timeout
        - pr_env_set
        - pr_env_unset
        - pr_event_register
        - pr_fsio_close
        - pr_fsio_fstat
        - pr_fsio_open
        - pr_fsio_set_options
        - pr_inet_set_proto_keepalive
        - pr_log_debug
        - pr_log_setdebuglevel
        - pr_proctitle_set_static_str
        - pr_regexp_set_engine
        - pr_regexp_set_limits
        - pr_scoreboard_scrub
        - pr_signals_handle
        - pr_timer_add
        - pr_timer_remove
        - pr_trace_msg
        - pr_trace_parse_levels
        - pr_trace_set_levels
        - pr_trace_set_options
        - pr_var_set
        - set_server_auth_order
        - strcasecmp
        - strchr
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:7252,3'
          Dst:             init_auth
        - Src:             'mod_core.c:7260,7'
          Dst:             pr_inet_set_proto_keepalive
        - Src:             'mod_core.c:7263,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:7263,7'
          Dst:             strerror
        - Src:             'mod_core.c:7262,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7269,7'
          Dst:             find_config
        - Src:             'mod_core.c:7272,5'
          Dst:             pr_data_set_timeout
        - Src:             'mod_core.c:7275,18'
          Dst:             pr_data_get_timeout
        - Src:             'mod_core.c:7277,5'
          Dst:             pr_timer_add
        - Src:             'mod_core.c:7277,5'
          Dst:             core_idle_timeout_cb
        - Src:             'mod_core.c:7282,7'
          Dst:             find_config
        - Src:             'mod_core.c:7287,5'
          Dst:             pr_data_set_linger
        - Src:             'mod_core.c:7291,17'
          Dst:             get_param_ptr
        - Src:             'mod_core.c:7293,5'
          Dst:             pr_log_setdebuglevel
        - Src:             'mod_core.c:7296,7'
          Dst:             find_config
        - Src:             'mod_core.c:7300,5'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:7305,9'
          Dst:             find_config_next
        - Src:             'mod_core.c:7308,10'
          Dst:             pr_fsio_set_options
        - Src:             'mod_core.c:7311,7'
          Dst:             find_config
        - Src:             'mod_core.c:7320,5'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:7325,5'
          Dst:             pr_regexp_set_limits
        - Src:             'mod_core.c:7326,5'
          Dst:             pr_regexp_set_engine
        - Src:             'mod_core.c:7330,7'
          Dst:             find_config
        - Src:             'mod_core.c:7332,5'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:7334,9'
          Dst:             pr_env_set
        - Src:             'mod_core.c:7336,39'
          Dst:             __errno_location
        - Src:             'mod_core.c:7336,30'
          Dst:             strerror
        - Src:             'mod_core.c:7335,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7339,7'
          Dst:             core_handle_locale_env
        - Src:             'mod_core.c:7342,9'
          Dst:             find_config_next
        - Src:             'mod_core.c:7346,7'
          Dst:             find_config
        - Src:             'mod_core.c:7348,5'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:7350,9'
          Dst:             pr_env_unset
        - Src:             'mod_core.c:7352,39'
          Dst:             __errno_location
        - Src:             'mod_core.c:7352,30'
          Dst:             strerror
        - Src:             'mod_core.c:7351,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7355,7'
          Dst:             core_handle_locale_env
        - Src:             'mod_core.c:7358,9'
          Dst:             find_config_next
        - Src:             'mod_core.c:7361,3'
          Dst:             set_server_auth_order
        - Src:             'mod_core.c:7365,7'
          Dst:             find_config
        - Src:             'mod_core.c:7373,7'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:7377,13'
          Dst:             strchr
        - Src:             'mod_core.c:7379,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7386,13'
          Dst:             pr_trace_parse_levels
        - Src:             'mod_core.c:7388,15'
          Dst:             pr_trace_set_levels
        - Src:             'mod_core.c:7394,22'
          Dst:             __errno_location
        - Src:             'mod_core.c:7394,13'
          Dst:             strerror
        - Src:             'mod_core.c:7392,11'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7399,53'
          Dst:             __errno_location
        - Src:             'mod_core.c:7399,44'
          Dst:             strerror
        - Src:             'mod_core.c:7398,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7405,7'
          Dst:             find_config
        - Src:             'mod_core.c:7410,9'
          Dst:             pr_trace_set_options
        - Src:             'mod_core.c:7412,39'
          Dst:             __errno_location
        - Src:             'mod_core.c:7412,30'
          Dst:             strerror
        - Src:             'mod_core.c:7411,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7418,5'
          Dst:             pr_timer_remove
        - Src:             'mod_core.c:7426,9'
          Dst:             find_config
        - Src:             'mod_core.c:7429,9'
          Dst:             pr_scoreboard_scrub
        - Src:             'mod_core.c:7436,7'
          Dst:             pr_var_set
        - Src:             'mod_core.c:7436,7'
          Dst:             core_get_xfer_bytes_str
        - Src:             'mod_core.c:7441,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:7441,7'
          Dst:             strerror
        - Src:             'mod_core.c:7440,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7444,7'
          Dst:             pr_var_set
        - Src:             'mod_core.c:7444,7'
          Dst:             core_get_sess_bytes_str
        - Src:             'mod_core.c:7449,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:7449,7'
          Dst:             strerror
        - Src:             'mod_core.c:7448,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7452,7'
          Dst:             pr_var_set
        - Src:             'mod_core.c:7452,7'
          Dst:             core_get_sess_bytes_str
        - Src:             'mod_core.c:7457,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:7457,7'
          Dst:             strerror
        - Src:             'mod_core.c:7456,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7460,7'
          Dst:             pr_var_set
        - Src:             'mod_core.c:7460,7'
          Dst:             core_get_sess_bytes_str
        - Src:             'mod_core.c:7465,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:7465,7'
          Dst:             strerror
        - Src:             'mod_core.c:7464,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7468,7'
          Dst:             pr_var_set
        - Src:             'mod_core.c:7468,7'
          Dst:             core_get_sess_files_str
        - Src:             'mod_core.c:7473,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:7473,7'
          Dst:             strerror
        - Src:             'mod_core.c:7472,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7476,7'
          Dst:             pr_var_set
        - Src:             'mod_core.c:7476,7'
          Dst:             core_get_sess_files_str
        - Src:             'mod_core.c:7481,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:7481,7'
          Dst:             strerror
        - Src:             'mod_core.c:7480,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7484,7'
          Dst:             pr_var_set
        - Src:             'mod_core.c:7484,7'
          Dst:             core_get_sess_files_str
        - Src:             'mod_core.c:7489,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:7489,7'
          Dst:             strerror
        - Src:             'mod_core.c:7488,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7493,3'
          Dst:             pr_event_register
        - Src:             'mod_core.c:7493,3'
          Dst:             core_chroot_ev
        - Src:             'mod_core.c:7501,17'
          Dst:             get_param_ptr
        - Src:             'mod_core.c:7506,22'
          Dst:             pr_fsio_open
        - Src:             'mod_core.c:7509,31'
          Dst:             __errno_location
        - Src:             'mod_core.c:7509,22'
          Dst:             strerror
        - Src:             'mod_core.c:7508,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7512,11'
          Dst:             pr_fsio_fstat
        - Src:             'mod_core.c:7514,33'
          Dst:             __errno_location
        - Src:             'mod_core.c:7514,24'
          Dst:             strerror
        - Src:             'mod_core.c:7513,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7515,9'
          Dst:             pr_fsio_close
        - Src:             'mod_core.c:7520,11'
          Dst:             __errno_location
        - Src:             'mod_core.c:7522,35'
          Dst:             __errno_location
        - Src:             'mod_core.c:7522,26'
          Dst:             strerror
        - Src:             'mod_core.c:7521,11'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:7523,11'
          Dst:             pr_fsio_close
        - Src:             'mod_core.c:7531,7'
          Dst:             find_config
        - Src:             'mod_core.c:7536,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:7537,7'
          Dst:             pr_proctitle_set_static_str
    - functionName:    core_idle_timeout_cb
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_data_get_timeout
        - pr_event_generate
        - pr_log_pri
        - pr_response_send_async
        - pr_session_disconnect
        - pr_timer_remove
        - pr_trace_msg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:129,13'
          Dst:             pr_data_get_timeout
        - Src:             'mod_core.c:133,5'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:141,3'
          Dst:             pr_event_generate
        - Src:             'mod_core.c:143,3'
          Dst:             pr_response_send_async
        - Src:             'mod_core.c:146,3'
          Dst:             pr_timer_remove
        - Src:             'mod_core.c:147,3'
          Dst:             pr_timer_remove
        - Src:             'mod_core.c:149,3'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:150,3'
          Dst:             pr_session_disconnect
    - functionName:    core_handle_locale_env
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    core_chroot_ev
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6926
      functionLinenumberEnd: 6955
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          81
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - find_config
        - find_config_next
        - pr_fsio_open
        - pr_log_debug
        - pr_signals_handle
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:6933,7'
          Dst:             find_config
        - Src:             'mod_core.c:6937,5'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:6943,12'
          Dst:             pr_fsio_open
        - Src:             'mod_core.c:6946,26'
          Dst:             __errno_location
        - Src:             'mod_core.c:6946,17'
          Dst:             strerror
        - Src:             'mod_core.c:6945,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6953,9'
          Dst:             find_config_next
    - functionName:    core_connected_ev
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6957
      functionLinenumberEnd: 6959
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - session_set_connected
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:6958,3'
          Dst:             session_set_connected
    - functionName:    core_postparse_ev
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6965
      functionLinenumberEnd: 7019
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          117
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - destroy_pool
        - dir_check_limits
        - get_param_ptr
        - make_sub_pool
        - pr_cmd_alloc
        - pr_feat_add
        - pr_signals_handle
        - pstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:6988,14'
          Dst:             make_sub_pool
        - Src:             'mod_core.c:6990,35'
          Dst:             pstrdup
        - Src:             'mod_core.c:6990,9'
          Dst:             pr_cmd_alloc
        - Src:             'mod_core.c:6991,9'
          Dst:             dir_check_limits
        - Src:             'mod_core.c:6993,5'
          Dst:             pr_feat_add
        - Src:             'mod_core.c:6996,3'
          Dst:             destroy_pool
        - Src:             'mod_core.c:6997,35'
          Dst:             pstrdup
        - Src:             'mod_core.c:6997,9'
          Dst:             pr_cmd_alloc
        - Src:             'mod_core.c:6998,9'
          Dst:             dir_check_limits
        - Src:             'mod_core.c:7000,5'
          Dst:             pr_feat_add
        - Src:             'mod_core.c:7003,3'
          Dst:             destroy_pool
        - Src:             'mod_core.c:7004,3'
          Dst:             destroy_pool
        - Src:             'mod_core.c:7012,5'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:7014,19'
          Dst:             get_param_ptr
    - functionName:    core_restart_ev
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7021
      functionLinenumberEnd: 7032
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_fs_statcache_reset
        - pr_scoreboard_scrub
        - pr_trace_set_file
        - pr_trace_set_levels
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:7022,3'
          Dst:             pr_fs_statcache_reset
        - Src:             'mod_core.c:7023,3'
          Dst:             pr_scoreboard_scrub
        - Src:             'mod_core.c:7027,12'
          Dst:             pr_trace_set_levels
        - Src:             'mod_core.c:7028,5'
          Dst:             pr_trace_set_file
    - functionName:    regex_filters
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3655
      functionLinenumberEnd: 3694
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         38
      ICount:          221
      EdgeCount:       51
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - get_param_ptr
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_log_debug
        - pr_regexp_exec
        - pr_response_add_err
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:3661,7'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3666,17'
          Dst:             get_param_ptr
        - Src:             'mod_core.c:3669,7'
          Dst:             pr_regexp_exec
        - Src:             'mod_core.c:3670,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:3672,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:3674,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:3675,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:3676,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3680,16'
          Dst:             get_param_ptr
        - Src:             'mod_core.c:3683,7'
          Dst:             pr_regexp_exec
        - Src:             'mod_core.c:3684,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:3686,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:3688,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:3689,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:3690,12'
          Dst:             mod_create_ret
    - functionName:    core_pre_any
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3697
      functionLinenumberEnd: 3773
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         40
      ICount:          216
      EdgeCount:       55
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - core_exceeded_cmd_rate
        - mod_create_ret
        - pr_cmd_cmp
        - pr_cmd_set_errno
        - pr_event_generate
        - pr_log_debug
        - pr_log_pri
        - pr_response_add_err
        - pr_signals_block
        - pr_signals_unblock
        - pr_table_get
        - pr_trace_msg
        - select
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:3702,15'
          Dst:             core_exceeded_cmd_rate
        - Src:             'mod_core.c:3706,5'
          Dst:             pr_event_generate
        - Src:             'mod_core.c:3708,5'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:3713,5'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:3719,5'
          Dst:             pr_signals_block
        - Src:             'mod_core.c:3720,12'
          Dst:             select
        - Src:             'mod_core.c:3721,5'
          Dst:             pr_signals_unblock
        - Src:             'mod_core.c:3736,15'
          Dst:             pr_table_get
        - Src:             'mod_core.c:3738,9'
          Dst:             pr_cmd_cmp
        - Src:             'mod_core.c:3739,9'
          Dst:             pr_cmd_cmp
        - Src:             'mod_core.c:3740,9'
          Dst:             pr_cmd_cmp
        - Src:             'mod_core.c:3741,9'
          Dst:             pr_cmd_cmp
        - Src:             'mod_core.c:3742,9'
          Dst:             pr_cmd_cmp
        - Src:             'mod_core.c:3749,13'
          Dst:             pr_cmd_cmp
        - Src:             'mod_core.c:3750,13'
          Dst:             pr_cmd_cmp
        - Src:             'mod_core.c:3751,13'
          Dst:             pr_cmd_cmp
        - Src:             'mod_core.c:3752,13'
          Dst:             pr_cmd_cmp
        - Src:             'mod_core.c:3753,13'
          Dst:             pr_cmd_cmp
        - Src:             'mod_core.c:3754,13'
          Dst:             pr_cmd_cmp
        - Src:             'mod_core.c:3760,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:3763,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:3765,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:3766,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:3767,16'
          Dst:             mod_create_ret
    - functionName:    core_help
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4897
      functionLinenumberEnd: 4942
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          149
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - dir_check
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_help_add_response
        - pr_log_debug
        - pr_module_call
        - pr_response_add_err
        - site_dispatch
        - strcasecmp
        - strerror
        - toupper
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:4898,8'
          Dst:             dir_check
        - Src:             'mod_core.c:4901,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4908,7'
          Dst:             strerror
        - Src:             'mod_core.c:4907,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4910,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4911,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4912,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4916,5'
          Dst:             pr_help_add_response
        - Src:             'mod_core.c:4922,13'
          Dst:             toupper
        - Src:             'mod_core.c:4925,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:4926,14'
          Dst:             pr_module_call
        - Src:             'mod_core.c:4926,14'
          Dst:             site_dispatch
        - Src:             'mod_core.c:4929,9'
          Dst:             pr_help_add_response
        - Src:             'mod_core.c:4930,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4933,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4936,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4937,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4938,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4941,10'
          Dst:             mod_create_ret
    - functionName:    core_port
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4053
      functionLinenumberEnd: 4312
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         112
      ICount:          754
      EdgeCount:       152
      CyclomaticComplexity: 42
      functionsReached:
        - __errno_location
        - __isoc99_sscanf
        - dir_check
        - find_config
        - get_param_ptr
        - htons
        - mod_create_ret
        - pr_class_find
        - pr_class_satisfied
        - pr_cmd_set_errno
        - pr_inet_close
        - pr_log_debug
        - pr_log_pri
        - pr_netaddr_cmp
        - pr_netaddr_dup
        - pr_netaddr_get_addr2
        - pr_netaddr_get_family
        - pr_netaddr_get_ipstr
        - pr_netaddr_is_rfc1918
        - pr_netaddr_is_v4mappedv6
        - pr_netaddr_set_family
        - pr_netaddr_set_port
        - pr_netaddr_use_ipv6
        - pr_response_add
        - pr_response_add_err
        - pr_session_get_protocol
        - pr_snprintf
        - strcmp
        - strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mod_core.c:4218,5'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_core.c:4068,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4070,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4071,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4072,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4075,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4075,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4080,8'
          Dst:             dir_check
        - Src:             'mod_core.c:4083,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4085,7'
          Dst:             strerror
        - Src:             'mod_core.c:4084,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4087,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4088,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4089,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4100,17'
          Dst:             get_param_ptr
        - Src:             'mod_core.c:4104,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4106,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4108,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4109,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4110,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4115,7'
          Dst:             __isoc99_sscanf
        - Src:             'mod_core.c:4117,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4118,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4120,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4121,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4122,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4127,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4128,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4130,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4131,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4132,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4137,7'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'mod_core.c:4138,9'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:4139,7'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:4142,7'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:4147,3'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:4150,15'
          Dst:             pr_netaddr_get_addr2
        - Src:             'mod_core.c:4154,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:4154,7'
          Dst:             strerror
        - Src:             'mod_core.c:4153,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4155,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4157,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4158,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4159,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4168,11'
          Dst:             pr_session_get_protocol
        - Src:             'mod_core.c:4169,7'
          Dst:             strcmp
        - Src:             'mod_core.c:4170,9'
          Dst:             find_config
        - Src:             'mod_core.c:4176,11'
          Dst:             find_config
        - Src:             'mod_core.c:4186,9'
          Dst:             find_config
        - Src:             'mod_core.c:4194,7'
          Dst:             pr_netaddr_is_rfc1918
        - Src:             'mod_core.c:4195,7'
          Dst:             pr_netaddr_is_rfc1918
        - Src:             'mod_core.c:4196,7'
          Dst:             pr_netaddr_is_rfc1918
        - Src:             'mod_core.c:4199,21'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:4200,17'
          Dst:             pr_netaddr_dup
        - Src:             'mod_core.c:4203,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:4201,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4206,45'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:4206,3'
          Dst:             pr_netaddr_set_family
        - Src:             'mod_core.c:4207,43'
          Dst:             htons
        - Src:             'mod_core.c:4207,3'
          Dst:             pr_netaddr_set_port
        - Src:             'mod_core.c:4213,7'
          Dst:             find_config
        - Src:             'mod_core.c:4231,15'
          Dst:             pr_class_find
        - Src:             'mod_core.c:4233,15'
          Dst:             pr_class_satisfied
        - Src:             'mod_core.c:4238,43'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:4237,13'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4242,11'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4253,9'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'mod_core.c:4257,11'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:4258,11'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'mod_core.c:4259,9'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:4261,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4263,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4264,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:4265,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4270,9'
          Dst:             pr_netaddr_cmp
        - Src:             'mod_core.c:4271,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:4273,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4275,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4276,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:4277,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4288,5'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:4291,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4293,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4294,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4295,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4304,5'
          Dst:             pr_inet_close
        - Src:             'mod_core.c:4309,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:4311,10'
          Dst:             mod_create_ret
    - functionName:    core_pasv
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3850
      functionLinenumberEnd: 4051
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         69
      ICount:          533
      EdgeCount:       92
      CyclomaticComplexity: 25
      functionsReached:
        - __errno_location
        - dir_check
        - find_config
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_inet_close
        - pr_inet_create_conn2
        - pr_inet_create_conn_portrange
        - pr_inet_generate_socket_event
        - pr_inet_listen
        - pr_inet_set_block
        - pr_inet_set_proto_opts
        - pr_log_debug
        - pr_log_pri
        - pr_netaddr_get_family
        - pr_netaddr_get_ipstr
        - pr_netaddr_use_ipv6
        - pr_netaddr_v6tov4
        - pr_netio_open
        - pr_response_add
        - pr_response_add_err
        - pr_session_get_protocol
        - strcmp
        - strerror
        - strrchr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:3859,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:3861,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:3862,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:3863,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3866,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:3866,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3871,8'
          Dst:             dir_check
        - Src:             'mod_core.c:3874,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:3876,7'
          Dst:             strerror
        - Src:             'mod_core.c:3875,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:3878,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:3879,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:3880,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3885,5'
          Dst:             pr_inet_close
        - Src:             'mod_core.c:3889,7'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:3889,55'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:3892,9'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'mod_core.c:3902,11'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:3906,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:3903,9'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:3907,9'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:3919,17'
          Dst:             pr_netaddr_v6tov4
        - Src:             'mod_core.c:3922,7'
          Dst:             find_config
        - Src:             'mod_core.c:3927,17'
          Dst:             pr_inet_create_conn_portrange
        - Src:             'mod_core.c:3934,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:3943,17'
          Dst:             pr_inet_create_conn2
        - Src:             'mod_core.c:3948,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:3950,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:3953,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:3954,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:3955,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3961,7'
          Dst:             find_config
        - Src:             'mod_core.c:3972,3'
          Dst:             pr_inet_set_proto_opts
        - Src:             'mod_core.c:3974,3'
          Dst:             pr_inet_generate_socket_event
        - Src:             'mod_core.c:3977,3'
          Dst:             pr_inet_set_block
        - Src:             'mod_core.c:3978,7'
          Dst:             pr_inet_listen
        - Src:             'mod_core.c:3979,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:3982,7'
          Dst:             strerror
        - Src:             'mod_core.c:3981,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:3984,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:3985,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:3986,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3989,23'
          Dst:             pr_netio_open
        - Src:             'mod_core.c:3996,22'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:4003,11'
          Dst:             pr_session_get_protocol
        - Src:             'mod_core.c:4004,7'
          Dst:             strcmp
        - Src:             'mod_core.c:4005,9'
          Dst:             find_config
        - Src:             'mod_core.c:4008,26'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:4011,11'
          Dst:             find_config
        - Src:             'mod_core.c:4015,30'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:4021,9'
          Dst:             find_config
        - Src:             'mod_core.c:4024,28'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:4030,9'
          Dst:             strrchr
        - Src:             'mod_core.c:4041,3'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4047,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:4050,10'
          Dst:             mod_create_ret
    - functionName:    core_eprt
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4314
      functionLinenumberEnd: 4664
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         127
      ICount:          869
      EdgeCount:       163
      CyclomaticComplexity: 38
      functionsReached:
        - __ctype_b_loc
        - __errno_location
        - atoi
        - dir_check
        - find_config
        - get_param_ptr
        - htons
        - inet_pton
        - mod_create_ret
        - pr_class_find
        - pr_class_satisfied
        - pr_cmd_set_errno
        - pr_inet_close
        - pr_log_debug
        - pr_log_pri
        - pr_netaddr_clear
        - pr_netaddr_cmp
        - pr_netaddr_get_family
        - pr_netaddr_get_inaddr
        - pr_netaddr_get_ipstr
        - pr_netaddr_get_port
        - pr_netaddr_get_sockaddr
        - pr_netaddr_is_rfc1918
        - pr_netaddr_set_family
        - pr_netaddr_set_port
        - pr_netaddr_set_sockaddr
        - pr_netaddr_use_ipv6
        - pr_response_add
        - pr_response_add_err
        - pr_session_get_protocol
        - pstrdup
        - strchr
        - strcmp
        - strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mod_core.c:4384,3'
          Branch Sides:    []
        - Branch String:   'mod_core.c:4453,3'
          Branch Sides:    []
        - Branch String:   'mod_core.c:4576,5'
          Branch Sides:    []
        - Branch String:   'mod_core.c:4639,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_core.c:4320,32'
          Dst:             pstrdup
        - Src:             'mod_core.c:4326,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4328,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4329,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4330,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4333,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4333,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4338,8'
          Dst:             dir_check
        - Src:             'mod_core.c:4341,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4343,7'
          Dst:             strerror
        - Src:             'mod_core.c:4342,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4345,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4346,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4347,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4351,3'
          Dst:             pr_netaddr_clear
        - Src:             'mod_core.c:4361,17'
          Dst:             get_param_ptr
        - Src:             'mod_core.c:4365,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4367,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4369,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4370,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4371,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4382,12'
          Dst:             atoi
        - Src:             'mod_core.c:4390,11'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'mod_core.c:4396,11'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'mod_core.c:4397,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4401,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4408,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4409,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:4410,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4414,10'
          Dst:             __ctype_b_loc
        - Src:             'mod_core.c:4425,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4427,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4428,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4429,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4432,9'
          Dst:             strchr
        - Src:             'mod_core.c:4434,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4436,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4438,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4439,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4440,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4457,7'
          Dst:             pr_netaddr_set_family
        - Src:             'mod_core.c:4458,12'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'mod_core.c:4463,41'
          Dst:             pr_netaddr_get_inaddr
        - Src:             'mod_core.c:4463,11'
          Dst:             inet_pton
        - Src:             'mod_core.c:4465,28'
          Dst:             __errno_location
        - Src:             'mod_core.c:4465,19'
          Dst:             strerror
        - Src:             'mod_core.c:4464,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4466,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4468,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4469,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:4470,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4478,7'
          Dst:             pr_netaddr_set_family
        - Src:             'mod_core.c:4479,12'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'mod_core.c:4484,42'
          Dst:             pr_netaddr_get_inaddr
        - Src:             'mod_core.c:4484,11'
          Dst:             inet_pton
        - Src:             'mod_core.c:4486,28'
          Dst:             __errno_location
        - Src:             'mod_core.c:4486,19'
          Dst:             strerror
        - Src:             'mod_core.c:4485,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4487,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4489,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4490,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:4491,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4500,10'
          Dst:             atoi
        - Src:             'mod_core.c:4502,10'
          Dst:             __ctype_b_loc
        - Src:             'mod_core.c:4510,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4512,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4514,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4515,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4516,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4525,11'
          Dst:             pr_session_get_protocol
        - Src:             'mod_core.c:4526,7'
          Dst:             strcmp
        - Src:             'mod_core.c:4527,9'
          Dst:             find_config
        - Src:             'mod_core.c:4533,11'
          Dst:             find_config
        - Src:             'mod_core.c:4543,9'
          Dst:             find_config
        - Src:             'mod_core.c:4551,7'
          Dst:             pr_netaddr_is_rfc1918
        - Src:             'mod_core.c:4552,7'
          Dst:             pr_netaddr_is_rfc1918
        - Src:             'mod_core.c:4553,7'
          Dst:             pr_netaddr_is_rfc1918
        - Src:             'mod_core.c:4556,21'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:4558,5'
          Dst:             pr_netaddr_clear
        - Src:             'mod_core.c:4559,32'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:4559,5'
          Dst:             pr_netaddr_set_family
        - Src:             'mod_core.c:4561,7'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'mod_core.c:4560,5'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'mod_core.c:4564,52'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:4563,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4571,7'
          Dst:             find_config
        - Src:             'mod_core.c:4589,15'
          Dst:             pr_class_find
        - Src:             'mod_core.c:4591,15'
          Dst:             pr_class_satisfied
        - Src:             'mod_core.c:4596,43'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:4595,13'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4600,11'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4608,9'
          Dst:             pr_netaddr_cmp
        - Src:             'mod_core.c:4609,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:4611,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4613,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4614,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:4615,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4626,5'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:4629,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4631,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4632,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4633,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4637,28'
          Dst:             htons
        - Src:             'mod_core.c:4637,3'
          Dst:             pr_netaddr_set_port
        - Src:             'mod_core.c:4641,7'
          Dst:             pr_netaddr_set_family
        - Src:             'mod_core.c:4645,7'
          Dst:             pr_netaddr_set_family
        - Src:             'mod_core.c:4649,47'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'mod_core.c:4649,3'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'mod_core.c:4650,43'
          Dst:             pr_netaddr_get_port
        - Src:             'mod_core.c:4650,3'
          Dst:             pr_netaddr_set_port
        - Src:             'mod_core.c:4656,5'
          Dst:             pr_inet_close
        - Src:             'mod_core.c:4661,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:4663,10'
          Dst:             mod_create_ret
    - functionName:    core_epsv
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4666
      functionLinenumberEnd: 4895
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         63
      ICount:          498
      EdgeCount:       80
      CyclomaticComplexity: 19
      functionsReached:
        - __errno_location
        - dir_check
        - find_config
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_inet_close
        - pr_inet_create_conn2
        - pr_inet_create_conn_portrange
        - pr_inet_generate_socket_event
        - pr_inet_listen
        - pr_inet_set_block
        - pr_inet_set_proto_opts
        - pr_log_debug
        - pr_log_pri
        - pr_netaddr_get_family
        - pr_netaddr_use_ipv6
        - pr_netaddr_v6tov4
        - pr_netio_open
        - pr_response_add
        - pr_response_add_err
        - pstrdup
        - strcasecmp
        - strerror
        - strtol
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mod_core.c:4721,5'
          Branch Sides:    []
        - Branch String:   'mod_core.c:4740,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_core.c:4674,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4674,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4679,8'
          Dst:             dir_check
        - Src:             'mod_core.c:4682,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4684,7'
          Dst:             strerror
        - Src:             'mod_core.c:4683,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4686,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4687,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4688,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4692,11'
          Dst:             pstrdup
        - Src:             'mod_core.c:4695,14'
          Dst:             strcasecmp
        - Src:             'mod_core.c:4697,5'
          Dst:             pr_response_add
        - Src:             'mod_core.c:4699,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4700,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4701,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4709,14'
          Dst:             strtol
        - Src:             'mod_core.c:4712,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4715,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4716,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:4717,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4721,13'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:4728,13'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'mod_core.c:4746,11'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'mod_core.c:4753,11'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'mod_core.c:4754,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4758,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4765,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4766,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:4767,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4772,5'
          Dst:             pr_inet_close
        - Src:             'mod_core.c:4776,7'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:4776,55'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:4783,17'
          Dst:             pr_netaddr_v6tov4
        - Src:             'mod_core.c:4786,7'
          Dst:             find_config
        - Src:             'mod_core.c:4802,15'
          Dst:             pr_inet_create_conn_portrange
        - Src:             'mod_core.c:4809,5'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:4813,17'
          Dst:             pr_inet_create_conn2
        - Src:             'mod_core.c:4818,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:4820,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4823,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4824,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4825,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4832,7'
          Dst:             find_config
        - Src:             'mod_core.c:4843,3'
          Dst:             pr_inet_set_proto_opts
        - Src:             'mod_core.c:4845,3'
          Dst:             pr_inet_generate_socket_event
        - Src:             'mod_core.c:4848,3'
          Dst:             pr_inet_set_block
        - Src:             'mod_core.c:4849,7'
          Dst:             pr_inet_listen
        - Src:             'mod_core.c:4850,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:4853,7'
          Dst:             strerror
        - Src:             'mod_core.c:4852,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4855,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4856,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4857,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4860,23'
          Dst:             pr_netio_open
        - Src:             'mod_core.c:4889,3'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4891,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:4894,10'
          Dst:             mod_create_ret
    - functionName:    core_syst
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5499
      functionLinenumberEnd: 5501
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mod_create_ret
        - pr_response_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:5500,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:5501,10'
          Dst:             mod_create_ret
    - functionName:    core_pwd
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3828
      functionLinenumberEnd: 3848
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          85
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - dir_check
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_fs_encode_path
        - pr_log_debug
        - pr_response_add
        - pr_response_add_err
        - quote_dir
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:3829,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:3829,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3831,8'
          Dst:             dir_check
        - Src:             'mod_core.c:3834,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:3837,7'
          Dst:             strerror
        - Src:             'mod_core.c:3836,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:3839,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:3840,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:3841,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3845,30'
          Dst:             pr_fs_encode_path
        - Src:             'mod_core.c:3845,5'
          Dst:             quote_dir
        - Src:             'mod_core.c:3844,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:3847,10'
          Dst:             mod_create_ret
    - functionName:    core_cwd
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5971
      functionLinenumberEnd: 5991
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          76
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - core_chdir
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_fs_decode_path2
        - pr_log_debug
        - pr_response_add_err
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:5973,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5973,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5975,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_core.c:5978,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:5981,7'
          Dst:             strerror
        - Src:             'mod_core.c:5980,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5982,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5985,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5986,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5987,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5990,10'
          Dst:             core_chdir
    - functionName:    core_mkd
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5867
      functionLinenumberEnd: 5969
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          338
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - dir_canonical_path
        - dir_check_canon
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_filter_allow_path
        - pr_fs_decode_path2
        - pr_fsio_smkdir
        - pr_gid2str
        - pr_log_debug
        - pr_log_pri
        - pr_response_add
        - pr_response_add_err
        - pr_trace_msg
        - pr_uid2str
        - quote_dir
        - strchr
        - strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mod_core.c:5902,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_core.c:5871,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5871,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5876,7'
          Dst:             strchr
        - Src:             'mod_core.c:5877,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5879,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5880,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5881,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5884,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_core.c:5887,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:5890,7'
          Dst:             strerror
        - Src:             'mod_core.c:5889,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5891,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5894,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5895,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5896,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5901,9'
          Dst:             pr_filter_allow_path
        - Src:             'mod_core.c:5907,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:5909,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5911,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5912,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:5913,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5916,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:5918,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5920,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5921,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:5922,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5925,9'
          Dst:             dir_canonical_path
        - Src:             'mod_core.c:5929,52'
          Dst:             strerror
        - Src:             'mod_core.c:5929,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5931,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5932,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5933,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5936,8'
          Dst:             dir_check_canon
        - Src:             'mod_core.c:5939,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5941,52'
          Dst:             strerror
        - Src:             'mod_core.c:5941,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5943,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5944,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5945,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5948,9'
          Dst:             pr_fsio_smkdir
        - Src:             'mod_core.c:5950,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:5951,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:5955,7'
          Dst:             pr_uid2str
        - Src:             'mod_core.c:5956,7'
          Dst:             pr_gid2str
        - Src:             'mod_core.c:5956,52'
          Dst:             strerror
        - Src:             'mod_core.c:5953,12'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:5958,52'
          Dst:             strerror
        - Src:             'mod_core.c:5958,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5960,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5961,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5962,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5966,5'
          Dst:             quote_dir
        - Src:             'mod_core.c:5965,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:5968,10'
          Dst:             mod_create_ret
    - functionName:    core_rmd
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5762
      functionLinenumberEnd: 5865
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          334
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - dir_canonical_path
        - dir_check_canon
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_error_destroy
        - pr_error_set_where
        - pr_error_set_why
        - pr_error_strerror
        - pr_filter_allow_path
        - pr_fs_decode_path2
        - pr_fsio_rmdir_with_error
        - pr_gid2str
        - pr_log_debug
        - pr_log_pri
        - pr_response_add
        - pr_response_add_err
        - pr_trace_msg
        - pr_uid2str
        - pstrcat
        - strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mod_core.c:5787,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_core.c:5767,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5767,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5769,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_core.c:5772,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:5775,7'
          Dst:             strerror
        - Src:             'mod_core.c:5774,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5776,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5779,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5780,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5781,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5786,9'
          Dst:             pr_filter_allow_path
        - Src:             'mod_core.c:5792,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:5794,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5796,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5797,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:5798,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5801,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:5803,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5805,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5806,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:5807,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5810,9'
          Dst:             dir_canonical_path
        - Src:             'mod_core.c:5814,52'
          Dst:             strerror
        - Src:             'mod_core.c:5814,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5816,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5817,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5818,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5821,8'
          Dst:             dir_check_canon
        - Src:             'mod_core.c:5824,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5826,52'
          Dst:             strerror
        - Src:             'mod_core.c:5826,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5828,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5829,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5830,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5833,9'
          Dst:             pr_fsio_rmdir_with_error
        - Src:             'mod_core.c:5835,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:5837,5'
          Dst:             pr_error_set_where
        - Src:             'mod_core.c:5838,27'
          Dst:             pstrcat
        - Src:             'mod_core.c:5838,5'
          Dst:             pr_error_set_why
        - Src:             'mod_core.c:5843,7'
          Dst:             pr_uid2str
        - Src:             'mod_core.c:5844,7'
          Dst:             pr_gid2str
        - Src:             'mod_core.c:5844,52'
          Dst:             strerror
        - Src:             'mod_core.c:5841,12'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:5847,34'
          Dst:             pr_error_strerror
        - Src:             'mod_core.c:5847,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5848,7'
          Dst:             pr_error_destroy
        - Src:             'mod_core.c:5853,9'
          Dst:             strerror
        - Src:             'mod_core.c:5852,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5856,52'
          Dst:             strerror
        - Src:             'mod_core.c:5856,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5858,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5859,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5860,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5863,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:5864,10'
          Dst:             mod_create_ret
    - functionName:    core_cdup
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5993
      functionLinenumberEnd: 5996
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - core_chdir
        - mod_create_ret
        - pr_response_add_err
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:5994,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5994,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5995,10'
          Dst:             core_chdir
    - functionName:    core_dele
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6138
      functionLinenumberEnd: 6303
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         41
      ICount:          494
      EdgeCount:       53
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - dir_abs_path
        - dir_canonical_path
        - dir_check
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_error_destroy
        - pr_error_set_where
        - pr_error_set_why
        - pr_error_strerror
        - pr_filter_allow_path
        - pr_fs_clear_cache2
        - pr_fs_decode_path2
        - pr_fsio_lstat_with_error
        - pr_fsio_unlink_with_error
        - pr_gid2str
        - pr_log_debug
        - pr_log_pri
        - pr_response_add
        - pr_response_add_err
        - pr_trace_msg
        - pr_uid2str
        - pstrcat
        - strerror
        - xferlog_write
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mod_core.c:6164,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_core.c:6144,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6144,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6146,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_core.c:6149,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6152,7'
          Dst:             strerror
        - Src:             'mod_core.c:6151,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6153,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6156,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6157,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6158,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6163,9'
          Dst:             pr_filter_allow_path
        - Src:             'mod_core.c:6169,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:6171,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6173,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6174,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:6175,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6178,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:6180,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6182,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6183,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:6184,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6188,10'
          Dst:             dir_canonical_path
        - Src:             'mod_core.c:6192,52'
          Dst:             strerror
        - Src:             'mod_core.c:6192,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6194,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6195,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6196,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6199,8'
          Dst:             dir_check
        - Src:             'mod_core.c:6200,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6202,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6203,52'
          Dst:             strerror
        - Src:             'mod_core.c:6203,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6205,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6206,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6207,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6215,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_core.c:6216,9'
          Dst:             pr_fsio_lstat_with_error
        - Src:             'mod_core.c:6218,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6220,5'
          Dst:             pr_error_set_where
        - Src:             'mod_core.c:6221,27'
          Dst:             pstrcat
        - Src:             'mod_core.c:6221,5'
          Dst:             pr_error_set_why
        - Src:             'mod_core.c:6224,34'
          Dst:             pr_error_strerror
        - Src:             'mod_core.c:6224,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6225,7'
          Dst:             pr_error_destroy
        - Src:             'mod_core.c:6229,62'
          Dst:             strerror
        - Src:             'mod_core.c:6229,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6232,52'
          Dst:             strerror
        - Src:             'mod_core.c:6232,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6234,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6235,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6236,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6248,7'
          Dst:             pr_uid2str
        - Src:             'mod_core.c:6249,7'
          Dst:             pr_gid2str
        - Src:             'mod_core.c:6249,53'
          Dst:             strerror
        - Src:             'mod_core.c:6246,12'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:6251,59'
          Dst:             strerror
        - Src:             'mod_core.c:6251,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6252,52'
          Dst:             strerror
        - Src:             'mod_core.c:6252,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6254,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6255,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6256,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6260,9'
          Dst:             pr_fsio_unlink_with_error
        - Src:             'mod_core.c:6262,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6264,5'
          Dst:             pr_error_set_where
        - Src:             'mod_core.c:6265,27'
          Dst:             pstrcat
        - Src:             'mod_core.c:6265,5'
          Dst:             pr_error_set_why
        - Src:             'mod_core.c:6269,7'
          Dst:             pr_uid2str
        - Src:             'mod_core.c:6270,7'
          Dst:             pr_gid2str
        - Src:             'mod_core.c:6270,53'
          Dst:             strerror
        - Src:             'mod_core.c:6267,12'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:6273,34'
          Dst:             pr_error_strerror
        - Src:             'mod_core.c:6273,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6274,7'
          Dst:             pr_error_destroy
        - Src:             'mod_core.c:6278,61'
          Dst:             strerror
        - Src:             'mod_core.c:6278,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6281,52'
          Dst:             strerror
        - Src:             'mod_core.c:6281,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6283,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6284,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6285,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6288,14'
          Dst:             dir_abs_path
        - Src:             'mod_core.c:6291,5'
          Dst:             xferlog_write
        - Src:             'mod_core.c:6296,5'
          Dst:             xferlog_write
        - Src:             'mod_core.c:6301,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:6302,10'
          Dst:             mod_create_ret
    - functionName:    core_mdtm
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5999
      functionLinenumberEnd: 6060
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          205
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - dir_check
        - dir_realpath
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_fs_clear_cache2
        - pr_fs_decode_path2
        - pr_fsio_stat
        - pr_gmtime
        - pr_log_debug
        - pr_response_add
        - pr_response_add_err
        - pr_snprintf
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:6005,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6005,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6007,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_core.c:6010,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6013,7'
          Dst:             strerror
        - Src:             'mod_core.c:6012,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6014,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6017,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6018,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6019,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6024,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_core.c:6025,10'
          Dst:             dir_realpath
        - Src:             'mod_core.c:6027,8'
          Dst:             dir_check
        - Src:             'mod_core.c:6028,7'
          Dst:             pr_fsio_stat
        - Src:             'mod_core.c:6029,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6031,52'
          Dst:             strerror
        - Src:             'mod_core.c:6031,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6033,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6034,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6035,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6039,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6041,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6042,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6043,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6048,8'
          Dst:             pr_gmtime
        - Src:             'mod_core.c:6050,5'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:6055,5'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:6058,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:6059,10'
          Dst:             mod_create_ret
    - functionName:    core_rnfr
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6515
      functionLinenumberEnd: 6600
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         32
      ICount:          278
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - dir_abs_path
        - dir_canonical_path
        - dir_check
        - exists2
        - make_sub_pool
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_data_clear_xfer_pool
        - pr_filter_allow_path
        - pr_fs_decode_path2
        - pr_fsio_realpath
        - pr_log_debug
        - pr_log_pri
        - pr_pool_tag
        - pr_response_add
        - pr_response_add_err
        - pr_table_add
        - pstrdup
        - strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mod_core.c:6540,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_core.c:6520,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6520,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6522,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_core.c:6525,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6528,7'
          Dst:             strerror
        - Src:             'mod_core.c:6527,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6529,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6532,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6533,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6534,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6539,9'
          Dst:             pr_filter_allow_path
        - Src:             'mod_core.c:6545,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:6547,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6549,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6550,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:6551,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6554,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:6556,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6558,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6559,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:6560,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6563,14'
          Dst:             dir_abs_path
        - Src:             'mod_core.c:6566,10'
          Dst:             dir_canonical_path
        - Src:             'mod_core.c:6572,8'
          Dst:             dir_check
        - Src:             'mod_core.c:6573,8'
          Dst:             exists2
        - Src:             'mod_core.c:6574,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6576,52'
          Dst:             strerror
        - Src:             'mod_core.c:6576,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6578,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6579,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6580,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6585,3'
          Dst:             pr_data_clear_xfer_pool
        - Src:             'mod_core.c:6586,20'
          Dst:             make_sub_pool
        - Src:             'mod_core.c:6587,3'
          Dst:             pr_pool_tag
        - Src:             'mod_core.c:6589,23'
          Dst:             pstrdup
        - Src:             'mod_core.c:6592,14'
          Dst:             pr_fsio_realpath
        - Src:             'mod_core.c:6595,5'
          Dst:             pstrdup
        - Src:             'mod_core.c:6594,3'
          Dst:             pr_table_add
        - Src:             'mod_core.c:6597,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:6599,10'
          Dst:             mod_create_ret
    - functionName:    core_rnto
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6305
      functionLinenumberEnd: 6506
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         67
      ICount:          582
      EdgeCount:       88
      CyclomaticComplexity: 23
      functionsReached:
        - __errno_location
        - dir_canonical_path
        - dir_check_canon
        - get_param_ptr
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_data_clear_xfer_pool
        - pr_error_destroy
        - pr_error_set_where
        - pr_error_set_why
        - pr_error_strerror
        - pr_filter_allow_path
        - pr_fs_clear_cache2
        - pr_fs_copy_file
        - pr_fs_decode_path2
        - pr_fsio_rename_with_error
        - pr_fsio_stat
        - pr_fsio_unlink_with_error
        - pr_gid2str
        - pr_log_debug
        - pr_log_pri
        - pr_response_add
        - pr_response_add_err
        - pr_trace_msg
        - pr_uid2str
        - pstrcat
        - pstrdup
        - strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mod_core.c:6342,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_core.c:6312,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6312,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6315,5'
          Dst:             pr_data_clear_xfer_pool
        - Src:             'mod_core.c:6317,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6319,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6320,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6321,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6324,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_core.c:6327,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6330,7'
          Dst:             strerror
        - Src:             'mod_core.c:6329,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6331,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6334,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6335,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6336,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6341,9'
          Dst:             pr_filter_allow_path
        - Src:             'mod_core.c:6347,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:6349,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6351,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6352,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:6353,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6356,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:6358,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6360,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6361,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:6362,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6365,10'
          Dst:             dir_canonical_path
        - Src:             'mod_core.c:6367,21'
          Dst:             get_param_ptr
        - Src:             'mod_core.c:6372,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_core.c:6374,7'
          Dst:             pr_fsio_stat
        - Src:             'mod_core.c:6375,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6376,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6378,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6379,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6380,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6384,8'
          Dst:             dir_check_canon
        - Src:             'mod_core.c:6385,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6387,55'
          Dst:             strerror
        - Src:             'mod_core.c:6387,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6389,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6390,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6391,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6394,9'
          Dst:             pr_fsio_rename_with_error
        - Src:             'mod_core.c:6396,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6398,5'
          Dst:             pr_error_set_where
        - Src:             'mod_core.c:6399,27'
          Dst:             pstrcat
        - Src:             'mod_core.c:6399,5'
          Dst:             pr_error_set_why
        - Src:             'mod_core.c:6415,9'
          Dst:             pr_uid2str
        - Src:             'mod_core.c:6416,9'
          Dst:             pr_gid2str
        - Src:             'mod_core.c:6417,9'
          Dst:             strerror
        - Src:             'mod_core.c:6417,27'
          Dst:             strerror
        - Src:             'mod_core.c:6412,14'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:6419,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6424,9'
          Dst:             pr_error_destroy
        - Src:             'mod_core.c:6433,57'
          Dst:             strerror
        - Src:             'mod_core.c:6433,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6435,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6436,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:6437,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6443,9'
          Dst:             pr_uid2str
        - Src:             'mod_core.c:6444,9'
          Dst:             pr_gid2str
        - Src:             'mod_core.c:6445,9'
          Dst:             strerror
        - Src:             'mod_core.c:6441,14'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:6448,36'
          Dst:             pr_error_strerror
        - Src:             'mod_core.c:6448,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6449,9'
          Dst:             pr_error_destroy
        - Src:             'mod_core.c:6453,57'
          Dst:             strerror
        - Src:             'mod_core.c:6453,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6455,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6456,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:6457,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6463,9'
          Dst:             pr_fs_copy_file
        - Src:             'mod_core.c:6464,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:6468,9'
          Dst:             pr_uid2str
        - Src:             'mod_core.c:6469,9'
          Dst:             pr_gid2str
        - Src:             'mod_core.c:6470,9'
          Dst:             strerror
        - Src:             'mod_core.c:6466,14'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:6473,9'
          Dst:             strerror
        - Src:             'mod_core.c:6472,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6475,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6476,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:6477,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6481,11'
          Dst:             pr_fsio_unlink_with_error
        - Src:             'mod_core.c:6483,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:6485,7'
          Dst:             pr_error_set_where
        - Src:             'mod_core.c:6486,29'
          Dst:             pstrcat
        - Src:             'mod_core.c:6486,7'
          Dst:             pr_error_set_why
        - Src:             'mod_core.c:6490,36'
          Dst:             pr_error_strerror
        - Src:             'mod_core.c:6490,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6491,9'
          Dst:             pr_error_destroy
        - Src:             'mod_core.c:6496,11'
          Dst:             strerror
        - Src:             'mod_core.c:6495,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6502,23'
          Dst:             pstrdup
        - Src:             'mod_core.c:6504,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:6505,10'
          Dst:             mod_create_ret
    - functionName:    core_rnto_cleanup
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6508
      functionLinenumberEnd: 6512
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_data_clear_xfer_pool
        - pr_table_remove
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:6509,3'
          Dst:             pr_data_clear_xfer_pool
        - Src:             'mod_core.c:6511,3'
          Dst:             pr_table_remove
    - functionName:    core_size
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6062
      functionLinenumberEnd: 6136
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          202
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - dir_check
        - dir_realpath
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_fs_clear_cache2
        - pr_fs_decode_path2
        - pr_fsio_stat
        - pr_log_debug
        - pr_response_add
        - pr_response_add_err
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:6066,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6066,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6083,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6084,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6087,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6088,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6089,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6093,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_core.c:6096,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6099,7'
          Dst:             strerror
        - Src:             'mod_core.c:6098,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6100,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6103,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6104,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6105,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6108,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_core.c:6109,10'
          Dst:             dir_realpath
        - Src:             'mod_core.c:6111,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_core.c:6115,8'
          Dst:             dir_check
        - Src:             'mod_core.c:6116,7'
          Dst:             pr_fsio_stat
        - Src:             'mod_core.c:6117,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6119,52'
          Dst:             strerror
        - Src:             'mod_core.c:6119,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6121,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6122,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6123,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6127,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6129,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6130,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6131,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6134,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:6135,10'
          Dst:             mod_create_ret
    - functionName:    core_quit
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3775
      functionLinenumberEnd: 3813
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          117
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - get_param_ptr
        - mod_create_ret
        - pr_display_fh
        - pr_display_file
        - pr_fsio_close
        - pr_log_debug
        - pr_response_send
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:3779,9'
          Dst:             pr_display_fh
        - Src:             'mod_core.c:3781,43'
          Dst:             __errno_location
        - Src:             'mod_core.c:3781,34'
          Dst:             strerror
        - Src:             'mod_core.c:3780,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:3784,5'
          Dst:             pr_fsio_close
        - Src:             'mod_core.c:3790,15'
          Dst:             get_param_ptr
        - Src:             'mod_core.c:3792,11'
          Dst:             pr_display_file
        - Src:             'mod_core.c:3793,22'
          Dst:             __errno_location
        - Src:             'mod_core.c:3796,20'
          Dst:             strerror
        - Src:             'mod_core.c:3795,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:3800,11'
          Dst:             pr_response_send
        - Src:             'mod_core.c:3805,7'
          Dst:             pr_response_send
        - Src:             'mod_core.c:3813,10'
          Dst:             mod_create_ret
    - functionName:    core_log_quit
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3816
      functionLinenumberEnd: 3825
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mod_create_ret
        - pr_session_disconnect
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:3819,3'
          Dst:             pr_session_disconnect
        - Src:             'mod_core.c:3825,10'
          Dst:             mod_create_ret
    - functionName:    core_noop
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6602
      functionLinenumberEnd: 6617
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - dir_check
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_log_debug
        - pr_response_add
        - pr_response_add_err
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:6603,8'
          Dst:             dir_check
        - Src:             'mod_core.c:6606,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6608,38'
          Dst:             strerror
        - Src:             'mod_core.c:6608,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6610,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6611,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6612,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6615,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:6616,10'
          Dst:             mod_create_ret
    - functionName:    core_feat
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6623
      functionLinenumberEnd: 6667
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          153
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - dir_check
        - feat_cmp
        - make_array
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_feat_get
        - pr_feat_get_next
        - pr_log_debug
        - pr_response_add
        - pr_response_add_err
        - pr_signals_handle
        - pstrdup
        - push_array
        - qsort
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:6628,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6628,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6630,8'
          Dst:             dir_check
        - Src:             'mod_core.c:6633,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6636,7'
          Dst:             strerror
        - Src:             'mod_core.c:6635,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6638,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6639,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6640,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6643,10'
          Dst:             pr_feat_get
        - Src:             'mod_core.c:6645,5'
          Dst:             pr_response_add
        - Src:             'mod_core.c:6646,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6649,11'
          Dst:             make_array
        - Src:             'mod_core.c:6652,5'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:6653,38'
          Dst:             pstrdup
        - Src:             'mod_core.c:6653,17'
          Dst:             push_array
        - Src:             'mod_core.c:6654,12'
          Dst:             pr_feat_get_next
        - Src:             'mod_core.c:6658,3'
          Dst:             qsort
        - Src:             'mod_core.c:6658,3'
          Dst:             feat_cmp
        - Src:             'mod_core.c:6660,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:6662,5'
          Dst:             pr_response_add
        - Src:             'mod_core.c:6664,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:6666,10'
          Dst:             mod_create_ret
    - functionName:    core_opts
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6669
      functionLinenumberEnd: 6724
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          220
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - dir_check
        - mod_create_ret
        - pr_cmd_alloc
        - pr_cmd_dispatch
        - pr_cmd_set_errno
        - pr_log_debug
        - pr_response_add_err
        - pstrcat
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:6675,3'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6675,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6683,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6686,7'
          Dst:             strerror
        - Src:             'mod_core.c:6685,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6688,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6689,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6690,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6693,12'
          Dst:             pr_cmd_alloc
        - Src:             'mod_core.c:6694,21'
          Dst:             pstrcat
        - Src:             'mod_core.c:6697,8'
          Dst:             dir_check
        - Src:             'mod_core.c:6700,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6703,30'
          Dst:             strerror
        - Src:             'mod_core.c:6702,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:6705,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:6706,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:6707,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6713,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:6718,9'
          Dst:             pr_cmd_dispatch
        - Src:             'mod_core.c:6720,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6723,10'
          Dst:             mod_create_ret
    - functionName:    core_host
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4944
      functionLinenumberEnd: 5278
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         67
      ICount:          564
      EdgeCount:       93
      CyclomaticComplexity: 28
      functionsReached:
        - __errno_location
        - dir_check
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_event_generate
        - pr_log_debug
        - pr_namebind_get_server
        - pr_netaddr_get_ipstr
        - pr_netaddr_is_v4
        - pr_netaddr_is_v6
        - pr_netaddr_use_ipv6
        - pr_response_add
        - pr_response_add_err
        - pr_session_send_banner
        - pr_table_add_dup
        - pr_table_get
        - pr_table_remove
        - pr_trace_msg
        - pstrndup
        - strcasecmp
        - strchr
        - strcmp
        - strerror
        - strlen
        - strncmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:4952,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4954,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4955,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4956,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4960,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4965,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4967,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4968,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4969,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4972,8'
          Dst:             dir_check
        - Src:             'mod_core.c:4975,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:4978,7'
          Dst:             strerror
        - Src:             'mod_core.c:4977,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:4980,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:4981,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:4982,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:4997,7'
          Dst:             pr_table_get
        - Src:             'mod_core.c:4998,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5002,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5004,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5005,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5006,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5010,13'
          Dst:             strlen
        - Src:             'mod_core.c:5017,9'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'mod_core.c:5019,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5022,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5023,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:5024,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5027,14'
          Dst:             pstrndup
        - Src:             'mod_core.c:5030,11'
          Dst:             pr_netaddr_is_v6
        - Src:             'mod_core.c:5031,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5035,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5038,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5039,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:5040,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5046,7'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5049,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5050,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:5051,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5055,17'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:5057,7'
          Dst:             pr_netaddr_is_v4
        - Src:             'mod_core.c:5058,9'
          Dst:             pr_netaddr_is_v4
        - Src:             'mod_core.c:5059,11'
          Dst:             strncmp
        - Src:             'mod_core.c:5063,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5065,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5068,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5069,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:5070,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5074,12'
          Dst:             pr_table_remove
        - Src:             'mod_core.c:5075,9'
          Dst:             pr_table_add_dup
        - Src:             'mod_core.c:5077,73'
          Dst:             __errno_location
        - Src:             'mod_core.c:5077,64'
          Dst:             strerror
        - Src:             'mod_core.c:5076,7'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:5083,5'
          Dst:             pr_response_add
        - Src:             'mod_core.c:5084,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5087,7'
          Dst:             pr_netaddr_is_v6
        - Src:             'mod_core.c:5088,9'
          Dst:             pr_netaddr_is_v6
        - Src:             'mod_core.c:5094,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5098,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5101,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5102,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:5103,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5106,11'
          Dst:             strncmp
        - Src:             'mod_core.c:5110,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5112,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5115,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5116,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:5117,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5121,12'
          Dst:             pr_table_remove
        - Src:             'mod_core.c:5122,9'
          Dst:             pr_table_add_dup
        - Src:             'mod_core.c:5124,73'
          Dst:             __errno_location
        - Src:             'mod_core.c:5124,64'
          Dst:             strerror
        - Src:             'mod_core.c:5123,7'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:5130,5'
          Dst:             pr_response_add
        - Src:             'mod_core.c:5131,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5138,7'
          Dst:             strchr
        - Src:             'mod_core.c:5140,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5142,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5143,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5144,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5147,18'
          Dst:             pr_namebind_get_server
        - Src:             'mod_core.c:5150,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5153,5'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5156,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5157,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5158,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5162,7'
          Dst:             strcmp
        - Src:             'mod_core.c:5169,11'
          Dst:             pr_table_get
        - Src:             'mod_core.c:5171,11'
          Dst:             strcasecmp
        - Src:             'mod_core.c:5172,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5174,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5177,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5178,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:5179,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5184,10'
          Dst:             pr_table_remove
        - Src:             'mod_core.c:5185,7'
          Dst:             pr_table_add_dup
        - Src:             'mod_core.c:5187,71'
          Dst:             __errno_location
        - Src:             'mod_core.c:5187,62'
          Dst:             strerror
        - Src:             'mod_core.c:5186,5'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:5192,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5198,5'
          Dst:             pr_event_generate
        - Src:             'mod_core.c:5276,3'
          Dst:             pr_session_send_banner
        - Src:             'mod_core.c:5277,10'
          Dst:             mod_create_ret
    - functionName:    core_post_pass
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6726
      functionLinenumberEnd: 6865
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         54
      ICount:          377
      EdgeCount:       71
      CyclomaticComplexity: 19
      functionsReached:
        - __errno_location
        - core_exit_ev
        - core_idle_timeout_cb
        - find_config
        - mod_create_ret
        - pr_data_get_timeout
        - pr_data_set_timeout
        - pr_event_register
        - pr_fs_statcache_reset
        - pr_fs_statcache_set_policy
        - pr_log_debug
        - pr_log_pri
        - pr_signals_handle
        - pr_timer_add
        - pr_timer_remove
        - pr_trace_msg
        - pr_trace_parse_levels
        - pr_trace_set_levels
        - pr_trace_set_options
        - setsockopt
        - strchr
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:6729,7'
          Dst:             find_config
        - Src:             'mod_core.c:6733,20'
          Dst:             pr_data_get_timeout
        - Src:             'mod_core.c:6737,7'
          Dst:             pr_data_set_timeout
        - Src:             'mod_core.c:6742,7'
          Dst:             pr_timer_remove
        - Src:             'mod_core.c:6745,9'
          Dst:             pr_timer_add
        - Src:             'mod_core.c:6745,9'
          Dst:             core_idle_timeout_cb
        - Src:             'mod_core.c:6753,7'
          Dst:             find_config
        - Src:             'mod_core.c:6761,7'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:6764,13'
          Dst:             strchr
        - Src:             'mod_core.c:6766,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6773,13'
          Dst:             pr_trace_parse_levels
        - Src:             'mod_core.c:6775,15'
          Dst:             pr_trace_set_levels
        - Src:             'mod_core.c:6781,22'
          Dst:             __errno_location
        - Src:             'mod_core.c:6781,13'
          Dst:             strerror
        - Src:             'mod_core.c:6779,11'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6786,53'
          Dst:             __errno_location
        - Src:             'mod_core.c:6786,44'
          Dst:             strerror
        - Src:             'mod_core.c:6785,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6792,7'
          Dst:             find_config
        - Src:             'mod_core.c:6797,9'
          Dst:             pr_trace_set_options
        - Src:             'mod_core.c:6799,39'
          Dst:             __errno_location
        - Src:             'mod_core.c:6799,30'
          Dst:             strerror
        - Src:             'mod_core.c:6798,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:6810,5'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:6812,9'
          Dst:             setsockopt
        - Src:             'mod_core.c:6816,18'
          Dst:             __errno_location
        - Src:             'mod_core.c:6816,9'
          Dst:             strerror
        - Src:             'mod_core.c:6814,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:6819,7'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:6825,7'
          Dst:             find_config
        - Src:             'mod_core.c:6834,3'
          Dst:             pr_fs_statcache_reset
        - Src:             'mod_core.c:6835,7'
          Dst:             find_config
        - Src:             'mod_core.c:6845,7'
          Dst:             pr_fs_statcache_set_policy
        - Src:             'mod_core.c:6848,7'
          Dst:             pr_fs_statcache_set_policy
        - Src:             'mod_core.c:6853,5'
          Dst:             pr_fs_statcache_set_policy
        - Src:             'mod_core.c:6857,3'
          Dst:             pr_event_register
        - Src:             'mod_core.c:6857,3'
          Dst:             core_exit_ev
        - Src:             'mod_core.c:6865,10'
          Dst:             mod_create_ret
    - functionName:    core_post_host
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5280
      functionLinenumberEnd: 5361
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          129
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - core_chroot_ev
        - core_sess_init
        - find_config
        - find_config_next
        - pr_data_set_linger
        - pr_env_unset
        - pr_event_unregister
        - pr_fsio_close
        - pr_fsio_set_options
        - pr_log_debug
        - pr_log_setdebuglevel
        - pr_proctitle_set_static_str
        - pr_regexp_set_engine
        - pr_regexp_set_limits
        - pr_session_disconnect
        - pr_signals_handle
        - pr_timer_remove
        - pr_trace_set_options
        - pr_var_delete
        - reset_server_auth_order
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:5290,12'
          Dst:             pr_fsio_set_options
        - Src:             'mod_core.c:5293,12'
          Dst:             pr_timer_remove
        - Src:             'mod_core.c:5296,5'
          Dst:             pr_data_set_linger
        - Src:             'mod_core.c:5301,9'
          Dst:             find_config
        - Src:             'mod_core.c:5303,7'
          Dst:             pr_log_setdebuglevel
        - Src:             'mod_core.c:5307,5'
          Dst:             pr_regexp_set_engine
        - Src:             'mod_core.c:5308,5'
          Dst:             pr_regexp_set_limits
        - Src:             'mod_core.c:5311,9'
          Dst:             find_config
        - Src:             'mod_core.c:5313,7'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:5315,11'
          Dst:             pr_env_unset
        - Src:             'mod_core.c:5317,41'
          Dst:             __errno_location
        - Src:             'mod_core.c:5317,32'
          Dst:             strerror
        - Src:             'mod_core.c:5316,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5320,11'
          Dst:             find_config_next
        - Src:             'mod_core.c:5324,5'
          Dst:             reset_server_auth_order
        - Src:             'mod_core.c:5330,12'
          Dst:             pr_trace_set_options
        - Src:             'mod_core.c:5334,12'
          Dst:             pr_var_delete
        - Src:             'mod_core.c:5335,12'
          Dst:             pr_var_delete
        - Src:             'mod_core.c:5336,12'
          Dst:             pr_var_delete
        - Src:             'mod_core.c:5337,12'
          Dst:             pr_var_delete
        - Src:             'mod_core.c:5338,12'
          Dst:             pr_var_delete
        - Src:             'mod_core.c:5339,12'
          Dst:             pr_var_delete
        - Src:             'mod_core.c:5340,12'
          Dst:             pr_var_delete
        - Src:             'mod_core.c:5344,7'
          Dst:             pr_fsio_close
        - Src:             'mod_core.c:5349,5'
          Dst:             pr_proctitle_set_static_str
        - Src:             'mod_core.c:5352,5'
          Dst:             pr_event_unregister
        - Src:             'mod_core.c:5352,5'
          Dst:             core_chroot_ev
        - Src:             'mod_core.c:5354,11'
          Dst:             core_sess_init
        - Src:             'mod_core.c:5356,7'
          Dst:             pr_session_disconnect
    - functionName:    core_clnt
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5364
      functionLinenumberEnd: 5368
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mod_create_ret
        - pr_response_add
        - pr_table_add_dup
        - pstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:5366,5'
          Dst:             pstrdup
        - Src:             'mod_core.c:5365,10'
          Dst:             pr_table_add_dup
        - Src:             'mod_core.c:5367,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:5368,10'
          Dst:             mod_create_ret
    - functionName:    core_csid
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5432
      functionLinenumberEnd: 5496
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          159
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - find_config
        - mod_create_ret
        - parse_client_facts
        - pr_response_add
        - pr_snprintf
        - pr_table_add_dup
        - pr_table_count
        - pr_table_get
        - pstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:5442,18'
          Dst:             parse_client_facts
        - Src:             'mod_core.c:5444,7'
          Dst:             pr_table_count
        - Src:             'mod_core.c:5450,11'
          Dst:             pr_table_get
        - Src:             'mod_core.c:5453,9'
          Dst:             pstrdup
        - Src:             'mod_core.c:5452,14'
          Dst:             pr_table_add_dup
        - Src:             'mod_core.c:5457,11'
          Dst:             pr_table_get
        - Src:             'mod_core.c:5460,9'
          Dst:             pstrdup
        - Src:             'mod_core.c:5459,14'
          Dst:             pr_table_add_dup
        - Src:             'mod_core.c:5464,11'
          Dst:             pr_table_get
        - Src:             'mod_core.c:5467,9'
          Dst:             pstrdup
        - Src:             'mod_core.c:5466,14'
          Dst:             pr_table_add_dup
        - Src:             'mod_core.c:5471,7'
          Dst:             find_config
        - Src:             'mod_core.c:5487,12'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:5491,12'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:5495,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:5496,10'
          Dst:             mod_create_ret
    - functionName:    parse_client_facts
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5371
      functionLinenumberEnd: 5429
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          198
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - __ctype_b_loc
        - pr_log_debug
        - pr_signals_handle
        - pr_str_text_to_array
        - pr_table_add_dup
        - pr_table_alloc
        - pstrdup
        - strchr
        - strlen
        - strncasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:5375,11'
          Dst:             pr_str_text_to_array
        - Src:             'mod_core.c:5379,17'
          Dst:             pr_table_alloc
        - Src:             'mod_core.c:5386,18'
          Dst:             strlen
        - Src:             'mod_core.c:5392,13'
          Dst:             strchr
        - Src:             'mod_core.c:5395,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5401,14'
          Dst:             __ctype_b_loc
        - Src:             'mod_core.c:5402,9'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:5406,11'
          Dst:             strncasecmp
        - Src:             'mod_core.c:5407,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5408,44'
          Dst:             pstrdup
        - Src:             'mod_core.c:5408,16'
          Dst:             pr_table_add_dup
        - Src:             'mod_core.c:5412,11'
          Dst:             strncasecmp
        - Src:             'mod_core.c:5413,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5414,44'
          Dst:             pstrdup
        - Src:             'mod_core.c:5414,16'
          Dst:             pr_table_add_dup
        - Src:             'mod_core.c:5418,11'
          Dst:             strncasecmp
        - Src:             'mod_core.c:5419,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5420,44'
          Dst:             pstrdup
        - Src:             'mod_core.c:5420,16'
          Dst:             pr_table_add_dup
        - Src:             'mod_core.c:5425,7'
          Dst:             pr_log_debug
    - functionName:    reset_server_auth_order
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7136
      functionLinenumberEnd: 7167
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         17
      ICount:          95
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - find_config
        - pr_log_debug
        - pr_module_load_authtab
        - pr_stash_remove_symbol
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:7139,7'
          Dst:             find_config
        - Src:             'mod_core.c:7151,7'
          Dst:             pr_stash_remove_symbol
        - Src:             'mod_core.c:7158,11'
          Dst:             pr_module_load_authtab
        - Src:             'mod_core.c:7161,20'
          Dst:             __errno_location
        - Src:             'mod_core.c:7161,11'
          Dst:             strerror
        - Src:             'mod_core.c:7159,9'
          Dst:             pr_log_debug
    - functionName:    core_exit_ev
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6961
      functionLinenumberEnd: 6963
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_fs_statcache_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:6962,3'
          Dst:             pr_fs_statcache_free
    - functionName:    feat_cmp
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6619
      functionLinenumberEnd: 6620
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:6620,10'
          Dst:             strcasecmp
    - functionName:    core_chdir
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5538
      functionLinenumberEnd: 5760
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         137
      ICount:          909
      EdgeCount:       184
      CyclomaticComplexity: 49
      functionsReached:
        - __errno_location
        - dir_canonical_vpath
        - dir_check_full
        - dir_realpath
        - find_config
        - find_config_next
        - get_param_ptr
        - mod_create_ret
        - palloc
        - pcalloc
        - pr_cmd_set_errno
        - pr_config_add_set
        - pr_display_fh
        - pr_display_file
        - pr_fs_getcwd
        - pr_fs_getvwd
        - pr_fsio_chdir
        - pr_fsio_chdir_canon
        - pr_fsio_fstat
        - pr_fsio_stat
        - pr_log_debug
        - pr_response_add
        - pr_response_add_err
        - pr_scoreboard_entry_update
        - pr_snprintf
        - sstrncpy
        - strerror
        - strlen
        - time
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:5547,9'
          Dst:             get_param_ptr
        - Src:             'mod_core.c:5555,11'
          Dst:             dir_realpath
        - Src:             'mod_core.c:5563,24'
          Dst:             dir_check_full
        - Src:             'mod_core.c:5571,9'
          Dst:             pr_fsio_chdir
        - Src:             'mod_core.c:5572,16'
          Dst:             __errno_location
        - Src:             'mod_core.c:5577,21'
          Dst:             find_config
        - Src:             'mod_core.c:5580,38'
          Dst:             strlen
        - Src:             'mod_core.c:5580,64'
          Dst:             strlen
        - Src:             'mod_core.c:5580,16'
          Dst:             palloc
        - Src:             'mod_core.c:5581,27'
          Dst:             strlen
        - Src:             'mod_core.c:5581,53'
          Dst:             strlen
        - Src:             'mod_core.c:5583,45'
          Dst:             strlen
        - Src:             'mod_core.c:5581,9'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:5585,15'
          Dst:             dir_realpath
        - Src:             'mod_core.c:5588,13'
          Dst:             dir_check_full
        - Src:             'mod_core.c:5589,13'
          Dst:             pr_fsio_chdir
        - Src:             'mod_core.c:5579,20'
          Dst:             find_config_next
        - Src:             'mod_core.c:5596,20'
          Dst:             __errno_location
        - Src:             'mod_core.c:5599,56'
          Dst:             strerror
        - Src:             'mod_core.c:5599,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5601,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5602,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:5603,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5611,12'
          Dst:             dir_canonical_vpath
        - Src:             'mod_core.c:5612,11'
          Dst:             dir_realpath
        - Src:             'mod_core.c:5621,24'
          Dst:             dir_check_full
        - Src:             'mod_core.c:5629,9'
          Dst:             pr_fsio_chdir_canon
        - Src:             'mod_core.c:5634,21'
          Dst:             find_config
        - Src:             'mod_core.c:5637,38'
          Dst:             strlen
        - Src:             'mod_core.c:5637,64'
          Dst:             strlen
        - Src:             'mod_core.c:5637,16'
          Dst:             palloc
        - Src:             'mod_core.c:5638,27'
          Dst:             strlen
        - Src:             'mod_core.c:5638,53'
          Dst:             strlen
        - Src:             'mod_core.c:5640,43'
          Dst:             strlen
        - Src:             'mod_core.c:5638,9'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:5642,16'
          Dst:             dir_canonical_vpath
        - Src:             'mod_core.c:5643,15'
          Dst:             dir_realpath
        - Src:             'mod_core.c:5646,13'
          Dst:             dir_check_full
        - Src:             'mod_core.c:5647,13'
          Dst:             pr_fsio_chdir_canon
        - Src:             'mod_core.c:5636,20'
          Dst:             find_config_next
        - Src:             'mod_core.c:5654,20'
          Dst:             __errno_location
        - Src:             'mod_core.c:5657,56'
          Dst:             strerror
        - Src:             'mod_core.c:5657,9'
          Dst:             pr_response_add_err
        - Src:             'mod_core.c:5659,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_core.c:5660,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:5661,16'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:5666,25'
          Dst:             pr_fs_getcwd
        - Src:             'mod_core.c:5666,3'
          Dst:             sstrncpy
        - Src:             'mod_core.c:5667,25'
          Dst:             pr_fs_getvwd
        - Src:             'mod_core.c:5667,3'
          Dst:             sstrncpy
        - Src:             'mod_core.c:5669,3'
          Dst:             pr_scoreboard_entry_update
        - Src:             'mod_core.c:5674,9'
          Dst:             find_config
        - Src:             'mod_core.c:5680,9'
          Dst:             find_config
        - Src:             'mod_core.c:5685,9'
          Dst:             find_config
        - Src:             'mod_core.c:5702,11'
          Dst:             find_config
        - Src:             'mod_core.c:5704,9'
          Dst:             time
        - Src:             'mod_core.c:5705,13'
          Dst:             pr_config_add_set
        - Src:             'mod_core.c:5708,19'
          Dst:             pcalloc
        - Src:             'mod_core.c:5709,22'
          Dst:             palloc
        - Src:             'mod_core.c:5717,36'
          Dst:             time
        - Src:             'mod_core.c:5722,13'
          Dst:             pr_fsio_fstat
        - Src:             'mod_core.c:5725,41'
          Dst:             __errno_location
        - Src:             'mod_core.c:5725,32'
          Dst:             strerror
        - Src:             'mod_core.c:5724,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5729,13'
          Dst:             pr_fsio_stat
        - Src:             'mod_core.c:5732,34'
          Dst:             __errno_location
        - Src:             'mod_core.c:5732,25'
          Dst:             strerror
        - Src:             'mod_core.c:5731,9'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5744,13'
          Dst:             pr_display_fh
        - Src:             'mod_core.c:5746,43'
          Dst:             __errno_location
        - Src:             'mod_core.c:5746,34'
          Dst:             strerror
        - Src:             'mod_core.c:5745,11'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5750,13'
          Dst:             pr_display_file
        - Src:             'mod_core.c:5752,35'
          Dst:             __errno_location
        - Src:             'mod_core.c:5752,26'
          Dst:             strerror
        - Src:             'mod_core.c:5751,11'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5758,3'
          Dst:             pr_response_add
        - Src:             'mod_core.c:5759,10'
          Dst:             mod_create_ret
    - functionName:    core_exceeded_cmd_rate
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          91
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:109,9'
          Dst:             time
    - functionName:    add_anonymous
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2826
      functionLinenumberEnd: 2862
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          243
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_parser_config_ctxt_open
        - pstrcat
        - strchr
        - strcmp
        - strerror
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2830,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2830,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2831,3'
          Dst:             check_context
        - Src:             'mod_core.c:2831,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2831,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2831,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2831,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2836,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2836,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2836,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2840,7'
          Dst:             strchr
        - Src:             'mod_core.c:2841,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2841,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2841,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2845,7'
          Dst:             strcmp
        - Src:             'mod_core.c:2846,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2846,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2849,15'
          Dst:             strlen
        - Src:             'mod_core.c:2850,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:2854,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:2854,5'
          Dst:             strerror
        - Src:             'mod_core.c:2854,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2854,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2854,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2858,7'
          Dst:             pr_parser_config_ctxt_open
        - Src:             'mod_core.c:2861,10'
          Dst:             mod_create_ret
    - functionName:    end_anonymous
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2864
      functionLinenumberEnd: 2880
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          89
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_log_debug
        - pr_parser_config_ctxt_close
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2868,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2868,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2871,3'
          Dst:             check_context
        - Src:             'mod_core.c:2871,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2871,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2871,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2871,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2873,3'
          Dst:             pr_parser_config_ctxt_close
        - Src:             'mod_core.c:2876,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:2879,10'
          Dst:             mod_create_ret
    - functionName:    add_class
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2882
      functionLinenumberEnd: 2897
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          132
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_class_open
        - pr_parser_config_ctxt_open
        - pstrcat
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2885,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2885,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2886,3'
          Dst:             check_context
        - Src:             'mod_core.c:2886,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2886,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2886,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2886,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2888,7'
          Dst:             pr_class_open
        - Src:             'mod_core.c:2889,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:2889,5'
          Dst:             strerror
        - Src:             'mod_core.c:2889,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2889,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2889,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2893,7'
          Dst:             pr_parser_config_ctxt_open
        - Src:             'mod_core.c:2896,10'
          Dst:             mod_create_ret
    - functionName:    end_class
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2899
      functionLinenumberEnd: 2918
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          102
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_class_close
        - pr_log_debug
        - pr_log_pri
        - pr_parser_config_ctxt_close
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2903,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2903,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2906,3'
          Dst:             check_context
        - Src:             'mod_core.c:2906,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2906,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2906,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2906,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2908,3'
          Dst:             pr_parser_config_ctxt_close
        - Src:             'mod_core.c:2910,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:2913,7'
          Dst:             pr_class_close
        - Src:             'mod_core.c:2914,5'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:2917,10'
          Dst:             mod_create_ret
    - functionName:    add_directory
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2428
      functionLinenumberEnd: 2513
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         51
      ICount:          371
      EdgeCount:       69
      CyclomaticComplexity: 20
      functionsReached:
        - check_context
        - find_config
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pdircat
        - pr_fs_valid_path
        - pr_log_debug
        - pr_parser_config_ctxt_open
        - pstrcat
        - pstrdup
        - strcmp
        - strstr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2433,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2433,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2434,3'
          Dst:             check_context
        - Src:             'mod_core.c:2434,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2434,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2434,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2434,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2442,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2442,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2455,9'
          Dst:             strcmp
        - Src:             'mod_core.c:2456,13'
          Dst:             pdircat
        - Src:             'mod_core.c:2461,9'
          Dst:             pr_fs_valid_path
        - Src:             'mod_core.c:2476,8'
          Dst:             check_context
        - Src:             'mod_core.c:2477,7'
          Dst:             find_config
        - Src:             'mod_core.c:2478,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2478,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2478,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2485,7'
          Dst:             strstr
        - Src:             'mod_core.c:2489,7'
          Dst:             pr_parser_config_ctxt_open
        - Src:             'mod_core.c:2491,13'
          Dst:             pcalloc
        - Src:             'mod_core.c:2497,18'
          Dst:             pstrdup
        - Src:             'mod_core.c:2504,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:2508,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:2512,10'
          Dst:             mod_create_ret
    - functionName:    end_directory
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2808
      functionLinenumberEnd: 2824
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          89
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_log_debug
        - pr_parser_config_ctxt_close
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2812,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2812,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2815,3'
          Dst:             check_context
        - Src:             'mod_core.c:2815,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2815,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2815,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2815,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2817,3'
          Dst:             pr_parser_config_ctxt_close
        - Src:             'mod_core.c:2820,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:2823,10'
          Dst:             mod_create_ret
    - functionName:    add_global
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2920
      functionLinenumberEnd: 2933
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          84
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_parser_config_ctxt_open
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2924,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2924,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2927,3'
          Dst:             check_context
        - Src:             'mod_core.c:2927,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2927,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2927,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2927,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2929,7'
          Dst:             pr_parser_config_ctxt_open
        - Src:             'mod_core.c:2932,10'
          Dst:             mod_create_ret
    - functionName:    end_global
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2935
      functionLinenumberEnd: 2951
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          89
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_log_debug
        - pr_parser_config_ctxt_close
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2939,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2939,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2942,3'
          Dst:             check_context
        - Src:             'mod_core.c:2942,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2942,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2942,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2942,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2944,3'
          Dst:             pr_parser_config_ctxt_close
        - Src:             'mod_core.c:2947,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:2950,10'
          Dst:             mod_create_ret
    - functionName:    start_ifdefine
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         37
      ICount:          249
      EdgeCount:       49
      CyclomaticComplexity: 14
      functionsReached:
        - mod_create_ret
        - pr_define_exists
        - pr_log_debug
        - pr_parser_get_lineno
        - pr_parser_read_line
        - pr_signals_handle
        - pstrcat
        - strcasecmp
        - strncasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:201,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:201,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:209,13'
          Dst:             pr_define_exists
        - Src:             'mod_core.c:218,7'
          Dst:             pr_parser_get_lineno
        - Src:             'mod_core.c:216,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:219,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:224,5'
          Dst:             pr_parser_get_lineno
        - Src:             'mod_core.c:222,3'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:232,47'
          Dst:             pr_parser_read_line
        - Src:             'mod_core.c:234,5'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:236,9'
          Dst:             strncasecmp
        - Src:             'mod_core.c:239,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:247,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:247,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:250,10'
          Dst:             mod_create_ret
    - functionName:    end_ifdefine
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mod_create_ret
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:258,10'
          Dst:             mod_create_ret
    - functionName:    start_ifmodule
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         47
      ICount:          302
      EdgeCount:       62
      CyclomaticComplexity: 17
      functionsReached:
        - __ctype_b_loc
        - mod_create_ret
        - pr_log_debug
        - pr_module_exists
        - pr_parser_get_lineno
        - pr_parser_read_line
        - pr_signals_handle
        - pstrcat
        - strcasecmp
        - strncasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:266,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:266,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:274,18'
          Dst:             pr_module_exists
        - Src:             'mod_core.c:283,7'
          Dst:             pr_parser_get_lineno
        - Src:             'mod_core.c:281,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:284,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:289,5'
          Dst:             pr_parser_get_lineno
        - Src:             'mod_core.c:287,3'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:297,47'
          Dst:             pr_parser_read_line
        - Src:             'mod_core.c:301,5'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:304,39'
          Dst:             __ctype_b_loc
        - Src:             'mod_core.c:307,9'
          Dst:             strncasecmp
        - Src:             'mod_core.c:310,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:317,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:317,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:320,10'
          Dst:             mod_create_ret
    - functionName:    end_ifmodule
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:329,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:329,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:329,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:333,10'
          Dst:             mod_create_ret
    - functionName:    add_limit
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2953
      functionLinenumberEnd: 3063
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         88
      ICount:          549
      EdgeCount:       119
      CyclomaticComplexity: 33
      functionsReached:
        - check_context
        - get_context_name
        - make_array
        - mod_create_ret
        - pr_parser_config_ctxt_open
        - pr_signals_handle
        - pr_str_get_token
        - pstrcat
        - pstrdup
        - push_array
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2963,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2963,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2966,3'
          Dst:             check_context
        - Src:             'mod_core.c:2966,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2966,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2966,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2966,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2968,7'
          Dst:             pr_parser_config_ctxt_open
        - Src:             'mod_core.c:2973,10'
          Dst:             make_array
        - Src:             'mod_core.c:2978,11'
          Dst:             pstrdup
        - Src:             'mod_core.c:2979,19'
          Dst:             pr_str_get_token
        - Src:             'mod_core.c:2980,7'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:2983,41'
          Dst:             pstrdup
        - Src:             'mod_core.c:2983,21'
          Dst:             push_array
        - Src:             'mod_core.c:3001,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3004,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3007,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3010,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3013,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3016,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3019,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3022,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3028,37'
          Dst:             pstrdup
        - Src:             'mod_core.c:3028,17'
          Dst:             push_array
        - Src:             'mod_core.c:3032,37'
          Dst:             pstrdup
        - Src:             'mod_core.c:3032,17'
          Dst:             push_array
        - Src:             'mod_core.c:3036,37'
          Dst:             pstrdup
        - Src:             'mod_core.c:3036,17'
          Dst:             push_array
        - Src:             'mod_core.c:3040,37'
          Dst:             pstrdup
        - Src:             'mod_core.c:3040,17'
          Dst:             push_array
        - Src:             'mod_core.c:3044,37'
          Dst:             pstrdup
        - Src:             'mod_core.c:3044,17'
          Dst:             push_array
        - Src:             'mod_core.c:3048,37'
          Dst:             pstrdup
        - Src:             'mod_core.c:3048,17'
          Dst:             push_array
        - Src:             'mod_core.c:3052,37'
          Dst:             pstrdup
        - Src:             'mod_core.c:3052,17'
          Dst:             push_array
        - Src:             'mod_core.c:3056,37'
          Dst:             pstrdup
        - Src:             'mod_core.c:3056,17'
          Dst:             push_array
        - Src:             'mod_core.c:3062,10'
          Dst:             mod_create_ret
    - functionName:    end_limit
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3363
      functionLinenumberEnd: 3379
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          89
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_log_debug
        - pr_parser_config_ctxt_close
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:3367,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3367,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3370,3'
          Dst:             check_context
        - Src:             'mod_core.c:3370,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3370,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3370,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3370,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3372,3'
          Dst:             pr_parser_config_ctxt_close
        - Src:             'mod_core.c:3375,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:3378,10'
          Dst:             mod_create_ret
    - functionName:    add_virtualhost
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3451
      functionLinenumberEnd: 3560
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         49
      ICount:          381
      EdgeCount:       66
      CyclomaticComplexity: 19
      functionsReached:
        - __errno_location
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_netaddr_get_addr2
        - pr_netaddr_get_ipstr
        - pr_netaddr_is_v4
        - pr_netaddr_is_v6
        - pr_parser_server_ctxt_open
        - pstrcat
        - strcmp
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:3459,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3459,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3461,3'
          Dst:             check_context
        - Src:             'mod_core.c:3461,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3461,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3461,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3461,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3464,7'
          Dst:             pr_parser_server_ctxt_open
        - Src:             'mod_core.c:3466,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3466,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3475,10'
          Dst:             pr_netaddr_get_addr2
        - Src:             'mod_core.c:3477,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:3477,5'
          Dst:             strerror
        - Src:             'mod_core.c:3477,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3477,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3477,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3484,7'
          Dst:             pr_netaddr_is_v4
        - Src:             'mod_core.c:3485,7'
          Dst:             pr_netaddr_is_v6
        - Src:             'mod_core.c:3486,5'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:3489,16'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:3499,15'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:3502,11'
          Dst:             strcmp
        - Src:             'mod_core.c:3506,7'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:3521,14'
          Dst:             pr_netaddr_get_addr2
        - Src:             'mod_core.c:3523,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:3523,9'
          Dst:             strerror
        - Src:             'mod_core.c:3523,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:3523,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:3523,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3530,11'
          Dst:             pr_netaddr_is_v4
        - Src:             'mod_core.c:3531,11'
          Dst:             pr_netaddr_is_v6
        - Src:             'mod_core.c:3532,9'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:3535,20'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:3536,7'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:3546,19'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:3549,15'
          Dst:             strcmp
        - Src:             'mod_core.c:3553,11'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:3559,10'
          Dst:             mod_create_ret
    - functionName:    end_virtualhost
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3562
      functionLinenumberEnd: 3652
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         54
      ICount:          363
      EdgeCount:       72
      CyclomaticComplexity: 20
      functionsReached:
        - check_context
        - destroy_pool
        - find_config
        - get_context_name
        - mod_create_ret
        - pr_log_pri
        - pr_netaddr_cmp
        - pr_netaddr_get_addr2
        - pr_netaddr_get_ipstr
        - pr_netaddr_get_localaddr_str
        - pr_parser_server_ctxt_close
        - pstrcat
        - xaset_remove
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:3569,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3569,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3572,3'
          Dst:             check_context
        - Src:             'mod_core.c:3572,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3572,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3572,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3572,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3578,15'
          Dst:             pr_netaddr_get_localaddr_str
        - Src:             'mod_core.c:3584,10'
          Dst:             pr_netaddr_get_addr2
        - Src:             'mod_core.c:3589,5'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:3610,13'
          Dst:             pr_netaddr_get_localaddr_str
        - Src:             'mod_core.c:3612,23'
          Dst:             pr_netaddr_get_addr2
        - Src:             'mod_core.c:3617,11'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:3620,20'
          Dst:             pr_netaddr_cmp
        - Src:             'mod_core.c:3628,15'
          Dst:             find_config
        - Src:             'mod_core.c:3633,15'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:3630,13'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:3636,17'
          Dst:             xaset_remove
        - Src:             'mod_core.c:3637,15'
          Dst:             destroy_pool
        - Src:             'mod_core.c:3647,7'
          Dst:             pr_parser_server_ctxt_close
        - Src:             'mod_core.c:3648,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3648,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3651,10'
          Dst:             mod_create_ret
    - functionName:    set_allowdeny
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3217
      functionLinenumberEnd: 3305
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         51
      ICount:          398
      EdgeCount:       68
      CyclomaticComplexity: 19
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - get_context_name
        - make_array
        - mod_create_ret
        - pcalloc
        - pr_netacl_create
        - pr_netacl_get_str
        - pr_str_get_token
        - pr_trace_msg
        - pstrcat
        - pstrdup
        - push_array
        - strcasecmp
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:3224,3'
          Dst:             check_context
        - Src:             'mod_core.c:3224,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3224,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3224,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3224,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3227,10'
          Dst:             make_array
        - Src:             'mod_core.c:3231,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:3238,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3244,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3245,10'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3246,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:3246,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3249,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3250,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3252,9'
          Dst:             pr_netacl_create
        - Src:             'mod_core.c:3251,26'
          Dst:             push_array
        - Src:             'mod_core.c:3262,15'
          Dst:             pstrdup
        - Src:             'mod_core.c:3265,19'
          Dst:             pr_str_get_token
        - Src:             'mod_core.c:3269,13'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3270,13'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3276,15'
          Dst:             pr_netacl_create
        - Src:             'mod_core.c:3278,11'
          Dst:             __errno_location
        - Src:             'mod_core.c:3278,11'
          Dst:             strerror
        - Src:             'mod_core.c:3278,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:3278,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:3278,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3283,11'
          Dst:             pr_netacl_get_str
        - Src:             'mod_core.c:3282,9'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:3285,28'
          Dst:             push_array
        - Src:             'mod_core.c:3291,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3291,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3291,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3295,13'
          Dst:             pcalloc
        - Src:             'mod_core.c:3304,10'
          Dst:             mod_create_ret
    - functionName:    set_allowall
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3323
      functionLinenumberEnd: 3337
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          95
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:3327,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3327,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3330,3'
          Dst:             check_context
        - Src:             'mod_core.c:3330,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3330,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3330,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3330,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3332,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:3333,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:3336,10'
          Dst:             mod_create_ret
    - functionName:    set_allowdenyusergroupclass
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3103
      functionLinenumberEnd: 3215
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         39
      ICount:          459
      EdgeCount:       53
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_expr_create
        - pr_regexp_alloc
        - pr_regexp_compile_posix
        - pr_regexp_error
        - pr_regexp_free
        - pr_signals_handle
        - pstrcat
        - pstrdup
        - strcasecmp
        - strcmp
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:3110,3'
          Dst:             check_context
        - Src:             'mod_core.c:3110,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3110,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3110,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3110,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3113,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3113,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3119,7'
          Dst:             strcmp
        - Src:             'mod_core.c:3120,7'
          Dst:             strcmp
        - Src:             'mod_core.c:3121,7'
          Dst:             strcmp
        - Src:             'mod_core.c:3122,7'
          Dst:             strcmp
        - Src:             'mod_core.c:3134,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3139,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3144,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3150,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:3150,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3153,13'
          Dst:             pr_regexp_alloc
        - Src:             'mod_core.c:3155,13'
          Dst:             pr_regexp_compile_posix
        - Src:             'mod_core.c:3159,9'
          Dst:             pr_regexp_error
        - Src:             'mod_core.c:3160,9'
          Dst:             pr_regexp_free
        - Src:             'mod_core.c:3162,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:3162,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:3162,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3166,11'
          Dst:             add_config_param
        - Src:             'mod_core.c:3167,20'
          Dst:             pcalloc
        - Src:             'mod_core.c:3172,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3188,9'
          Dst:             pr_expr_create
        - Src:             'mod_core.c:3190,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:3190,5'
          Dst:             strerror
        - Src:             'mod_core.c:3190,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3190,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3190,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3194,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:3197,13'
          Dst:             pcalloc
        - Src:             'mod_core.c:3199,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:3205,5'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:3207,15'
          Dst:             pstrdup
        - Src:             'mod_core.c:3214,10'
          Dst:             mod_create_ret
    - functionName:    set_allowdenyfilter
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2241
      functionLinenumberEnd: 2301
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          254
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_filter_parse_flags
        - pr_log_debug
        - pr_regexp_alloc
        - pr_regexp_compile
        - pr_regexp_error
        - pr_regexp_free
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2249,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2249,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2252,3'
          Dst:             check_context
        - Src:             'mod_core.c:2252,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2252,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2252,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2252,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2263,13'
          Dst:             pr_filter_parse_flags
        - Src:             'mod_core.c:2265,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2265,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2265,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2270,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2270,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2270,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2277,3'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:2279,9'
          Dst:             pr_regexp_alloc
        - Src:             'mod_core.c:2281,9'
          Dst:             pr_regexp_compile
        - Src:             'mod_core.c:2285,5'
          Dst:             pr_regexp_error
        - Src:             'mod_core.c:2286,5'
          Dst:             pr_regexp_free
        - Src:             'mod_core.c:2288,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2288,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2288,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2292,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2294,10'
          Dst:             mod_create_ret
    - functionName:    set_allowforeignaddress
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2351
      functionLinenumberEnd: 2372
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          148
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - pstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2356,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2356,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2357,3'
          Dst:             check_context
        - Src:             'mod_core.c:2357,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2357,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2357,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2357,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2359,24'
          Dst:             get_boolean
        - Src:             'mod_core.c:2365,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2366,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:2368,16'
          Dst:             pstrdup
        - Src:             'mod_core.c:2371,10'
          Dst:             mod_create_ret
    - functionName:    set_allowoverride
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2756
      functionLinenumberEnd: 2806
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         39
      ICount:          296
      EdgeCount:       52
      CyclomaticComplexity: 15
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2769,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2769,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2769,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2773,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2773,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2774,3'
          Dst:             check_context
        - Src:             'mod_core.c:2774,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2774,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2774,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2774,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2776,20'
          Dst:             get_boolean
        - Src:             'mod_core.c:2778,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2778,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2798,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2799,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:2801,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:2805,10'
          Dst:             mod_create_ret
    - functionName:    set_authorder
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3339
      functionLinenumberEnd: 3361
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          170
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - add_config_param
        - check_context
        - find_config
        - get_context_name
        - make_array
        - mod_create_ret
        - pstrcat
        - pstrdup
        - push_array
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:3344,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3344,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3345,3'
          Dst:             check_context
        - Src:             'mod_core.c:3345,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3345,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3345,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3345,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3348,7'
          Dst:             find_config
        - Src:             'mod_core.c:3349,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3349,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3352,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:3353,17'
          Dst:             make_array
        - Src:             'mod_core.c:3356,44'
          Dst:             pstrdup
        - Src:             'mod_core.c:3356,17'
          Dst:             push_array
        - Src:             'mod_core.c:3360,10'
          Dst:             mod_create_ret
    - functionName:    set_cdpath
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2416
      functionLinenumberEnd: 2426
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          105
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2419,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2419,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2420,3'
          Dst:             check_context
        - Src:             'mod_core.c:2420,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2420,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2420,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2420,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2422,7'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:2425,10'
          Dst:             mod_create_ret
    - functionName:    set_commandbuffersize
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2374
      functionLinenumberEnd: 2414
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          228
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_snprintf
        - pr_str_get_nbytes
        - pstrcat
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2381,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2381,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2384,3'
          Dst:             check_context
        - Src:             'mod_core.c:2384,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2384,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2384,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2384,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2390,7'
          Dst:             pr_str_get_nbytes
        - Src:             'mod_core.c:2391,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:2391,5'
          Dst:             strerror
        - Src:             'mod_core.c:2391,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2391,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2391,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2398,5'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:2402,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2402,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2402,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2409,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2410,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:2413,10'
          Dst:             mod_create_ret
    - functionName:    set_debuglevel
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 467
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          185
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - strtol
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:449,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:449,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:450,3'
          Dst:             check_context
        - Src:             'mod_core.c:450,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:450,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:450,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:450,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:453,16'
          Dst:             strtol
        - Src:             'mod_core.c:456,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:456,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:460,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:460,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:462,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:463,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:466,10'
          Dst:             mod_create_ret
    - functionName:    set_defaultaddress
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 593
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         53
      ICount:          435
      EdgeCount:       71
      CyclomaticComplexity: 20
      functionsReached:
        - __errno_location
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_log_debug
        - pr_netaddr_get_addr2
        - pr_netaddr_get_family
        - pr_netaddr_get_ipstr
        - pr_netaddr_is_v4
        - pr_netaddr_is_v6
        - pr_netaddr_use_ipv6
        - pr_snprintf
        - pstrcat
        - strcmp
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:476,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:476,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:479,3'
          Dst:             check_context
        - Src:             'mod_core.c:479,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:479,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:479,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:479,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:482,15'
          Dst:             pr_netaddr_get_addr2
        - Src:             'mod_core.c:484,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:484,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:484,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:491,7'
          Dst:             pr_netaddr_is_v4
        - Src:             'mod_core.c:492,7'
          Dst:             pr_netaddr_is_v6
        - Src:             'mod_core.c:493,5'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:496,45'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:507,15'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:510,11'
          Dst:             strcmp
        - Src:             'mod_core.c:515,11'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'mod_core.c:518,17'
          Dst:             pcalloc
        - Src:             'mod_core.c:519,13'
          Dst:             pr_netaddr_get_family
        - Src:             'mod_core.c:523,11'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:529,7'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:539,32'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:546,14'
          Dst:             pr_netaddr_get_addr2
        - Src:             'mod_core.c:549,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:549,9'
          Dst:             strerror
        - Src:             'mod_core.c:549,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:549,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:549,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:553,20'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:554,7'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:559,11'
          Dst:             pr_netaddr_is_v4
        - Src:             'mod_core.c:560,11'
          Dst:             pr_netaddr_is_v6
        - Src:             'mod_core.c:561,9'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:564,19'
          Dst:             pstrcat
        - Src:             'mod_core.c:574,19'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_core.c:577,15'
          Dst:             strcmp
        - Src:             'mod_core.c:581,11'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:586,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:589,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:592,10'
          Dst:             mod_create_ret
    - functionName:    set_defaultserver
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 948
      functionLinenumberEnd: 977
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          194
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - add_config_param
        - check_context
        - find_config
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:953,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:953,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:954,3'
          Dst:             check_context
        - Src:             'mod_core.c:954,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:954,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:954,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:954,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:956,20'
          Dst:             get_boolean
        - Src:             'mod_core.c:958,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:958,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:962,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:967,9'
          Dst:             find_config
        - Src:             'mod_core.c:968,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:968,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:972,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:973,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:976,10'
          Dst:             mod_create_ret
    - functionName:    set_deferwelcome
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6871
      functionLinenumberEnd: 6888
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          137
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:6875,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:6875,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6876,3'
          Dst:             check_context
        - Src:             'mod_core.c:6876,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:6876,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:6876,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:6876,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6878,19'
          Dst:             get_boolean
        - Src:             'mod_core.c:6880,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:6880,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:6883,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:6884,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:6887,10'
          Dst:             mod_create_ret
    - functionName:    set_define
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mod_create_ret
        - pr_define_add
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:348,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:348,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:354,3'
          Dst:             pr_define_add
        - Src:             'mod_core.c:355,10'
          Dst:             mod_create_ret
    - functionName:    set_denyall
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3307
      functionLinenumberEnd: 3321
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          95
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:3311,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3311,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3314,3'
          Dst:             check_context
        - Src:             'mod_core.c:3314,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3314,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3314,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3314,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3316,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:3317,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:3320,10'
          Dst:             mod_create_ret
    - functionName:    set_displaychdir
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3401
      functionLinenumberEnd: 3429
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          165
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - pstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:3407,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3407,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3410,3'
          Dst:             check_context
        - Src:             'mod_core.c:3410,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3410,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3410,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3410,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3413,20'
          Dst:             get_boolean
        - Src:             'mod_core.c:3415,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:3415,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3422,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:3423,16'
          Dst:             pstrdup
        - Src:             'mod_core.c:3424,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:3428,10'
          Dst:             mod_create_ret
    - functionName:    set_displayconnect
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3431
      functionLinenumberEnd: 3437
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          97
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:3432,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3432,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3433,3'
          Dst:             check_context
        - Src:             'mod_core.c:3433,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3433,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3433,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3433,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3435,3'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:3436,10'
          Dst:             mod_create_ret
    - functionName:    set_displayquit
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3439
      functionLinenumberEnd: 3449
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          105
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:3442,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3442,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3443,3'
          Dst:             check_context
        - Src:             'mod_core.c:3443,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3443,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3443,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3443,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3445,7'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:3448,10'
          Dst:             mod_create_ret
    - functionName:    add_from
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1475
      functionLinenumberEnd: 1547
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         45
      ICount:          333
      EdgeCount:       60
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_class_add_acl
        - pr_netacl_create
        - pr_netacl_get_str
        - pr_signals_handle
        - pr_str_get_token
        - pr_trace_msg
        - pstrcat
        - pstrdup
        - strcasecmp
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:1479,3'
          Dst:             check_context
        - Src:             'mod_core.c:1479,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1479,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1479,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1479,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1489,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1490,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1491,26'
          Dst:             pr_netacl_create
        - Src:             'mod_core.c:1493,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:1493,9'
          Dst:             strerror
        - Src:             'mod_core.c:1493,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1493,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1493,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1498,9'
          Dst:             pr_netacl_get_str
        - Src:             'mod_core.c:1497,7'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:1500,11'
          Dst:             pr_class_add_acl
        - Src:             'mod_core.c:1501,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:1501,9'
          Dst:             strerror
        - Src:             'mod_core.c:1501,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1501,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1501,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1515,11'
          Dst:             pstrdup
        - Src:             'mod_core.c:1517,19'
          Dst:             pr_str_get_token
        - Src:             'mod_core.c:1521,9'
          Dst:             pr_signals_handle
        - Src:             'mod_core.c:1523,13'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1524,13'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1529,15'
          Dst:             pr_netacl_create
        - Src:             'mod_core.c:1531,11'
          Dst:             __errno_location
        - Src:             'mod_core.c:1531,11'
          Dst:             strerror
        - Src:             'mod_core.c:1531,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1531,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1531,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1536,11'
          Dst:             pr_netacl_get_str
        - Src:             'mod_core.c:1535,9'
          Dst:             pr_trace_msg
        - Src:             'mod_core.c:1538,13'
          Dst:             pr_class_add_acl
        - Src:             'mod_core.c:1539,11'
          Dst:             __errno_location
        - Src:             'mod_core.c:1539,11'
          Dst:             strerror
        - Src:             'mod_core.c:1539,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1539,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1539,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1546,10'
          Dst:             mod_create_ret
    - functionName:    set_fscachepolicy
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1550
      functionLinenumberEnd: 1616
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          357
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - add_config_param
        - add_config_param_str
        - atoi
        - get_boolean
        - mod_create_ret
        - palloc
        - pstrcat
        - strncasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:1556,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1556,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1562,14'
          Dst:             get_boolean
        - Src:             'mod_core.c:1564,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1564,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1567,9'
          Dst:             add_config_param
        - Src:             'mod_core.c:1568,18'
          Dst:             palloc
        - Src:             'mod_core.c:1570,18'
          Dst:             palloc
        - Src:             'mod_core.c:1572,18'
          Dst:             palloc
        - Src:             'mod_core.c:1575,12'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1578,7'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:1579,16'
          Dst:             palloc
        - Src:             'mod_core.c:1581,16'
          Dst:             palloc
        - Src:             'mod_core.c:1583,16'
          Dst:             palloc
        - Src:             'mod_core.c:1587,9'
          Dst:             strncasecmp
        - Src:             'mod_core.c:1591,14'
          Dst:             atoi
        - Src:             'mod_core.c:1593,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1593,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1598,16'
          Dst:             strncasecmp
        - Src:             'mod_core.c:1602,17'
          Dst:             atoi
        - Src:             'mod_core.c:1604,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1604,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1610,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1610,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1610,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1615,10'
          Dst:             mod_create_ret
    - functionName:    set_fsoptions
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1619
      functionLinenumberEnd: 1647
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          158
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:1626,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1626,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1629,3'
          Dst:             check_context
        - Src:             'mod_core.c:1629,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1629,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1629,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1629,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1631,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:1634,9'
          Dst:             strcmp
        - Src:             'mod_core.c:1638,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1638,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1638,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1643,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:1646,10'
          Dst:             mod_create_ret
    - functionName:    set_group
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1649
      functionLinenumberEnd: 1671
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          190
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - add_config_param
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_auth_getgrnam
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:1652,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1652,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1653,3'
          Dst:             check_context
        - Src:             'mod_core.c:1653,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1653,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1653,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1653,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1656,11'
          Dst:             pr_auth_getgrnam
        - Src:             'mod_core.c:1658,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1658,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1658,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1664,21'
          Dst:             add_config_param
        - Src:             'mod_core.c:1665,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:1669,3'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:1670,10'
          Dst:             mod_create_ret
    - functionName:    add_groupowner
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2732
      functionLinenumberEnd: 2742
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          105
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2735,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2735,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2736,3'
          Dst:             check_context
        - Src:             'mod_core.c:2736,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2736,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2736,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2736,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2738,7'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:2741,10'
          Dst:             mod_create_ret
    - functionName:    set_hidefiles
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2515
      functionLinenumberEnd: 2664
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         60
      ICount:          587
      EdgeCount:       81
      CyclomaticComplexity: 23
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_expr_create
        - pr_regexp_alloc
        - pr_regexp_compile
        - pr_regexp_error
        - pr_regexp_free
        - pstrcat
        - pstrdup
        - strcasecmp
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2530,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2530,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2533,3'
          Dst:             check_context
        - Src:             'mod_core.c:2533,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2533,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2533,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2533,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2555,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:2563,11'
          Dst:             pr_regexp_alloc
        - Src:             'mod_core.c:2565,11'
          Dst:             pr_regexp_compile
        - Src:             'mod_core.c:2569,7'
          Dst:             pr_regexp_error
        - Src:             'mod_core.c:2570,7'
          Dst:             pr_regexp_free
        - Src:             'mod_core.c:2572,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2572,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2572,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2582,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:2583,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:2584,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:2585,14'
          Dst:             pstrcat
        - Src:             'mod_core.c:2585,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2591,9'
          Dst:             add_config_param
        - Src:             'mod_core.c:2592,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:2594,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:2596,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:2608,11'
          Dst:             pr_expr_create
        - Src:             'mod_core.c:2610,7'
          Dst:             __errno_location
        - Src:             'mod_core.c:2610,7'
          Dst:             strerror
        - Src:             'mod_core.c:2610,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2610,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2610,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2614,9'
          Dst:             add_config_param
        - Src:             'mod_core.c:2621,15'
          Dst:             pcalloc
        - Src:             'mod_core.c:2629,13'
          Dst:             pcalloc
        - Src:             'mod_core.c:2633,13'
          Dst:             pcalloc
        - Src:             'mod_core.c:2637,13'
          Dst:             pcalloc
        - Src:             'mod_core.c:2641,15'
          Dst:             pstrdup
        - Src:             'mod_core.c:2646,19'
          Dst:             pstrdup
        - Src:             'mod_core.c:2657,10'
          Dst:             mod_create_ret
    - functionName:    set_hidegroup
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2709
      functionLinenumberEnd: 2730
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          151
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - pstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2714,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2714,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2715,3'
          Dst:             check_context
        - Src:             'mod_core.c:2715,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2715,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2715,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2715,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2723,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2724,16'
          Dst:             pstrdup
        - Src:             'mod_core.c:2725,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:2729,10'
          Dst:             mod_create_ret
    - functionName:    set_hidenoaccess
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2666
      functionLinenumberEnd: 2684
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          142
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2670,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2670,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2671,3'
          Dst:             check_context
        - Src:             'mod_core.c:2671,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2671,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2671,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2671,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2673,20'
          Dst:             get_boolean
        - Src:             'mod_core.c:2675,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2675,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2678,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2679,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:2683,10'
          Dst:             mod_create_ret
    - functionName:    set_hideuser
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2686
      functionLinenumberEnd: 2707
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          151
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - pstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2691,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2691,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2692,3'
          Dst:             check_context
        - Src:             'mod_core.c:2692,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2692,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2692,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2692,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2700,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2701,16'
          Dst:             pstrdup
        - Src:             'mod_core.c:2702,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:2706,10'
          Dst:             mod_create_ret
    - functionName:    set_ignorehidden
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3381
      functionLinenumberEnd: 3398
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          137
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:3385,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3385,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3386,3'
          Dst:             check_context
        - Src:             'mod_core.c:3386,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3386,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3386,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3386,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3388,19'
          Dst:             get_boolean
        - Src:             'mod_core.c:3390,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3390,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3393,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:3394,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:3397,10'
          Dst:             mod_create_ret
    - functionName:    set_include
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 411
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          242
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - check_context
        - get_context_name
        - mod_create_ret
        - parse_config_path
        - pr_fs_valid_path
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
        - pstrcat
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:362,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:362,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:381,3'
          Dst:             check_context
        - Src:             'mod_core.c:381,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:381,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:381,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:381,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:385,3'
          Dst:             pr_privs_root
        - Src:             'mod_core.c:386,9'
          Dst:             pr_fs_valid_path
        - Src:             'mod_core.c:387,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_core.c:390,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:390,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:390,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:394,3'
          Dst:             pr_privs_root
        - Src:             'mod_core.c:395,9'
          Dst:             parse_config_path
        - Src:             'mod_core.c:396,12'
          Dst:             __errno_location
        - Src:             'mod_core.c:397,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_core.c:402,32'
          Dst:             strerror
        - Src:             'mod_core.c:401,7'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:405,7'
          Dst:             strerror
        - Src:             'mod_core.c:405,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:405,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:405,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:410,10'
          Dst:             mod_create_ret
    - functionName:    set_includeoptions
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 442
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          177
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_parser_set_include_opts
        - pstrcat
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:419,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:419,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:422,3'
          Dst:             check_context
        - Src:             'mod_core.c:422,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:422,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:422,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:422,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:425,9'
          Dst:             strcmp
        - Src:             'mod_core.c:428,16'
          Dst:             strcmp
        - Src:             'mod_core.c:431,16'
          Dst:             strcmp
        - Src:             'mod_core.c:435,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:435,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:435,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:440,10'
          Dst:             pr_parser_set_include_opts
        - Src:             'mod_core.c:441,10'
          Dst:             mod_create_ret
    - functionName:    set_masqueradeaddress
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 979
      functionLinenumberEnd: 1015
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          188
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_netaddr_get_addr2
        - pstrcat
        - pstrdup
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:986,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:986,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:987,3'
          Dst:             check_context
        - Src:             'mod_core.c:987,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:987,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:987,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:987,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:993,13'
          Dst:             strlen
        - Src:             'mod_core.c:996,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:996,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:999,15'
          Dst:             pr_netaddr_get_addr2
        - Src:             'mod_core.c:1005,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:1006,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1006,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1006,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1011,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:1012,16'
          Dst:             pstrdup
        - Src:             'mod_core.c:1014,10'
          Dst:             mod_create_ret
    - functionName:    set_maxcommandrate
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1041
      functionLinenumberEnd: 1081
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          233
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - add_config_param
        - atoi
        - check_context
        - get_context_name
        - mod_create_ret
        - palloc
        - pstrcat
        - strtol
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:1049,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1049,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1052,3'
          Dst:             check_context
        - Src:             'mod_core.c:1052,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1052,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1052,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1052,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1054,13'
          Dst:             strtol
        - Src:             'mod_core.c:1057,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1057,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1061,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1061,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1066,24'
          Dst:             atoi
        - Src:             'mod_core.c:1069,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1069,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1069,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1074,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:1075,16'
          Dst:             palloc
        - Src:             'mod_core.c:1077,16'
          Dst:             palloc
        - Src:             'mod_core.c:1080,10'
          Dst:             mod_create_ret
    - functionName:    set_maxconnrate
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1085
      functionLinenumberEnd: 1118
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          193
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - atoi
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
        - strtol
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:1091,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1091,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1093,3'
          Dst:             check_context
        - Src:             'mod_core.c:1093,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1093,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1093,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1093,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1095,14'
          Dst:             strtol
        - Src:             'mod_core.c:1098,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1098,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1102,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1102,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1109,28'
          Dst:             atoi
        - Src:             'mod_core.c:1112,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1112,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1112,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1117,10'
          Dst:             mod_create_ret
    - functionName:    set_maxinstances
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1017
      functionLinenumberEnd: 1038
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          154
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
        - strcasecmp
        - strtol
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:1021,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1021,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1022,3'
          Dst:             check_context
        - Src:             'mod_core.c:1022,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1022,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1022,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1022,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1024,7'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1028,21'
          Dst:             strtol
        - Src:             'mod_core.c:1032,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1032,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1037,10'
          Dst:             mod_create_ret
    - functionName:    set_multilinerfc2228
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1334
      functionLinenumberEnd: 1338
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mod_create_ret
        - pr_log_pri
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:1335,3'
          Dst:             pr_log_pri
        - Src:             'mod_core.c:1338,10'
          Dst:             mod_create_ret
    - functionName:    set_order
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3065
      functionLinenumberEnd: 3101
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          189
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:3072,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3072,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3074,3'
          Dst:             check_context
        - Src:             'mod_core.c:3074,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:3074,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3074,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:3074,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3081,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:3085,7'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3088,14'
          Dst:             strcasecmp
        - Src:             'mod_core.c:3092,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3092,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:3092,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:3096,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:3097,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:3100,10'
          Dst:             mod_create_ret
    - functionName:    set_passiveports
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2303
      functionLinenumberEnd: 2340
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          251
      EdgeCount:       38
      CyclomaticComplexity: 12
      functionsReached:
        - add_config_param
        - atoi
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2307,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2307,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2308,3'
          Dst:             check_context
        - Src:             'mod_core.c:2308,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2308,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2308,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2308,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2310,19'
          Dst:             atoi
        - Src:             'mod_core.c:2311,19'
          Dst:             atoi
        - Src:             'mod_core.c:2316,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2316,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2321,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2321,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2326,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2326,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2330,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2330,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2333,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2334,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:2336,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:2339,10'
          Dst:             mod_create_ret
    - functionName:    set_pathallowfilter
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2342
      functionLinenumberEnd: 2343
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - set_regex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2343,10'
          Dst:             set_regex
    - functionName:    set_pathdenyfilter
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2346
      functionLinenumberEnd: 2347
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - set_regex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2347,10'
          Dst:             set_regex
    - functionName:    set_pidfile
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 866
      functionLinenumberEnd: 876
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          123
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_pidfile_set
        - pstrcat
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:867,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:867,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:868,3'
          Dst:             check_context
        - Src:             'mod_core.c:868,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:868,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:868,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:868,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:870,7'
          Dst:             pr_pidfile_set
        - Src:             'mod_core.c:871,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:871,5'
          Dst:             strerror
        - Src:             'mod_core.c:871,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:871,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:871,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:875,10'
          Dst:             mod_create_ret
    - functionName:    set_port
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 835
      functionLinenumberEnd: 864
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          227
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - add_config_param
        - atoi
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:839,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:839,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:840,3'
          Dst:             check_context
        - Src:             'mod_core.c:840,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:840,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:840,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:840,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:842,10'
          Dst:             atoi
        - Src:             'mod_core.c:845,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:845,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:848,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:849,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:863,10'
          Dst:             mod_create_ret
    - functionName:    set_processtitles
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1970
      functionLinenumberEnd: 1981
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          136
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:1971,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1971,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1972,3'
          Dst:             check_context
        - Src:             'mod_core.c:1972,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1972,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1972,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1972,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1974,7'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1975,7'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1976,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1976,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1979,3'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:1980,10'
          Dst:             mod_create_ret
    - functionName:    set_protocols
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1984
      functionLinenumberEnd: 2006
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          128
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - make_array
        - mod_create_ret
        - pstrcat
        - pstrdup
        - push_array
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:1989,3'
          Dst:             check_context
        - Src:             'mod_core.c:1989,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1989,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1989,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1989,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1992,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1992,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1995,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:1997,10'
          Dst:             make_array
        - Src:             'mod_core.c:1999,37'
          Dst:             pstrdup
        - Src:             'mod_core.c:1999,17'
          Dst:             push_array
        - Src:             'mod_core.c:2005,10'
          Dst:             mod_create_ret
    - functionName:    set_regexoptions
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2010
      functionLinenumberEnd: 2087
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         43
      ICount:          428
      EdgeCount:       58
      CyclomaticComplexity: 17
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - palloc
        - pstrcat
        - pstrdup
        - strcasecmp
        - strcmp
        - strtoul
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2018,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2018,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2024,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2024,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2027,3'
          Dst:             check_context
        - Src:             'mod_core.c:2027,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2027,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2027,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2027,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2034,9'
          Dst:             strcmp
        - Src:             'mod_core.c:2037,11'
          Dst:             strcasecmp
        - Src:             'mod_core.c:2038,11'
          Dst:             strcasecmp
        - Src:             'mod_core.c:2039,11'
          Dst:             strcasecmp
        - Src:             'mod_core.c:2040,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:2040,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:2040,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2047,16'
          Dst:             strcmp
        - Src:             'mod_core.c:2050,21'
          Dst:             strtoul
        - Src:             'mod_core.c:2052,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:2052,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:2052,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2059,16'
          Dst:             strcmp
        - Src:             'mod_core.c:2062,31'
          Dst:             strtoul
        - Src:             'mod_core.c:2064,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:2064,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:2064,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2072,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2072,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2072,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2077,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2078,16'
          Dst:             palloc
        - Src:             'mod_core.c:2080,16'
          Dst:             palloc
        - Src:             'mod_core.c:2083,18'
          Dst:             pstrdup
        - Src:             'mod_core.c:2086,10'
          Dst:             mod_create_ret
    - functionName:    set_satisfy
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 719
      functionLinenumberEnd: 742
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          170
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_class_set_satisfy
        - pstrcat
        - strcasecmp
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:722,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:722,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:723,3'
          Dst:             check_context
        - Src:             'mod_core.c:723,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:723,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:723,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:723,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:725,7'
          Dst:             strcasecmp
        - Src:             'mod_core.c:728,14'
          Dst:             strcasecmp
        - Src:             'mod_core.c:732,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:732,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:732,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:736,7'
          Dst:             pr_class_set_satisfy
        - Src:             'mod_core.c:737,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:737,5'
          Dst:             strerror
        - Src:             'mod_core.c:737,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:737,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:737,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:741,10'
          Dst:             mod_create_ret
    - functionName:    set_scoreboardfile
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 745
      functionLinenumberEnd: 755
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          123
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_set_scoreboard
        - pstrcat
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:746,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:746,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:747,3'
          Dst:             check_context
        - Src:             'mod_core.c:747,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:747,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:747,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:747,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:749,7'
          Dst:             pr_set_scoreboard
        - Src:             'mod_core.c:750,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:750,5'
          Dst:             strerror
        - Src:             'mod_core.c:750,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:750,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:750,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:754,10'
          Dst:             mod_create_ret
    - functionName:    set_scoreboardmutex
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 758
      functionLinenumberEnd: 768
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          123
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_set_scoreboard_mutex
        - pstrcat
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:759,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:759,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:760,3'
          Dst:             check_context
        - Src:             'mod_core.c:760,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:760,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:760,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:760,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:762,7'
          Dst:             pr_set_scoreboard_mutex
        - Src:             'mod_core.c:763,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:763,5'
          Dst:             strerror
        - Src:             'mod_core.c:763,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:763,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:763,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:767,10'
          Dst:             mod_create_ret
    - functionName:    set_scoreboardoptions
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 771
      functionLinenumberEnd: 798
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          160
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:777,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:777,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:780,3'
          Dst:             check_context
        - Src:             'mod_core.c:780,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:780,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:780,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:780,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:782,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:785,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:789,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:789,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:789,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:794,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:797,10'
          Dst:             mod_create_ret
    - functionName:    set_scoreboardscrub
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 801
      functionLinenumberEnd: 833
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          203
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - add_config_param
        - atoi
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:805,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:805,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:806,3'
          Dst:             check_context
        - Src:             'mod_core.c:806,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:806,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:806,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:806,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:808,14'
          Dst:             get_boolean
        - Src:             'mod_core.c:813,13'
          Dst:             atoi
        - Src:             'mod_core.c:815,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:815,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:820,9'
          Dst:             add_config_param
        - Src:             'mod_core.c:821,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:823,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:827,9'
          Dst:             add_config_param
        - Src:             'mod_core.c:828,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:832,10'
          Dst:             mod_create_ret
    - functionName:    set_serveradmin
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 664
      functionLinenumberEnd: 672
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          103
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
        - pstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:667,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:667,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:668,3'
          Dst:             check_context
        - Src:             'mod_core.c:668,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:668,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:668,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:668,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:670,20'
          Dst:             pstrdup
        - Src:             'mod_core.c:671,10'
          Dst:             mod_create_ret
    - functionName:    set_serveralias
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 899
      functionLinenumberEnd: 913
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          102
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:903,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:903,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:906,3'
          Dst:             check_context
        - Src:             'mod_core.c:906,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:906,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:906,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:906,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:909,5'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:912,10'
          Dst:             mod_create_ret
    - functionName:    set_serverident
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 916
      functionLinenumberEnd: 946
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          191
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - pstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:922,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:922,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:925,3'
          Dst:             check_context
        - Src:             'mod_core.c:925,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:925,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:925,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:925,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:927,14'
          Dst:             get_boolean
        - Src:             'mod_core.c:929,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:929,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:934,9'
          Dst:             add_config_param
        - Src:             'mod_core.c:935,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:937,18'
          Dst:             pstrdup
        - Src:             'mod_core.c:940,9'
          Dst:             add_config_param
        - Src:             'mod_core.c:941,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:945,10'
          Dst:             mod_create_ret
    - functionName:    set_servername
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 595
      functionLinenumberEnd: 603
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          103
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
        - pstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:598,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:598,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:599,3'
          Dst:             check_context
        - Src:             'mod_core.c:599,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:599,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:599,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:599,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:601,19'
          Dst:             pstrdup
        - Src:             'mod_core.c:602,10'
          Dst:             mod_create_ret
    - functionName:    set_servertype
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 620
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          128
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:606,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:606,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:607,3'
          Dst:             check_context
        - Src:             'mod_core.c:607,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:607,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:607,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:607,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:609,7'
          Dst:             strcasecmp
        - Src:             'mod_core.c:612,14'
          Dst:             strcasecmp
        - Src:             'mod_core.c:616,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:616,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:619,10'
          Dst:             mod_create_ret
    - functionName:    set_setenv
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 622
      functionLinenumberEnd: 650
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          211
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - add_config_param_str
        - check_context
        - core_handle_locale_env
        - get_context_name
        - mod_create_ret
        - pr_env_set
        - pr_log_debug
        - pstrcat
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:625,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:625,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:626,3'
          Dst:             check_context
        - Src:             'mod_core.c:626,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:626,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:626,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:626,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:628,3'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:640,9'
          Dst:             pr_env_set
        - Src:             'mod_core.c:642,64'
          Dst:             __errno_location
        - Src:             'mod_core.c:642,55'
          Dst:             strerror
        - Src:             'mod_core.c:641,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:645,7'
          Dst:             core_handle_locale_env
        - Src:             'mod_core.c:649,10'
          Dst:             mod_create_ret
    - functionName:    set_socketbindtight
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1159
      functionLinenumberEnd: 1171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          113
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:1161,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1161,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1162,3'
          Dst:             check_context
        - Src:             'mod_core.c:1162,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1162,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1162,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1162,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1164,16'
          Dst:             get_boolean
        - Src:             'mod_core.c:1166,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1166,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1170,10'
          Dst:             mod_create_ret
    - functionName:    set_socketoptions
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1176
      functionLinenumberEnd: 1332
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         48
      ICount:          610
      EdgeCount:       66
      CyclomaticComplexity: 20
      functionsReached:
        - atoi
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pr_snprintf
        - pstrcat
        - strcasecmp
        - strchr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:1181,4'
          Dst:             pstrcat
        - Src:             'mod_core.c:1181,4'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1184,3'
          Dst:             check_context
        - Src:             'mod_core.c:1184,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1184,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1184,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1184,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1189,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1190,15'
          Dst:             atoi
        - Src:             'mod_core.c:1197,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1197,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1202,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1203,15'
          Dst:             atoi
        - Src:             'mod_core.c:1206,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1206,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1212,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1213,15'
          Dst:             atoi
        - Src:             'mod_core.c:1216,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1216,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1226,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1229,11'
          Dst:             get_boolean
        - Src:             'mod_core.c:1238,15'
          Dst:             strchr
        - Src:             'mod_core.c:1240,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1240,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1240,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1245,16'
          Dst:             atoi
        - Src:             'mod_core.c:1248,16'
          Dst:             strchr
        - Src:             'mod_core.c:1251,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1251,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1251,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1256,17'
          Dst:             atoi
        - Src:             'mod_core.c:1259,17'
          Dst:             atoi
        - Src:             'mod_core.c:1265,11'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:1267,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1267,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1267,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1276,11'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:1278,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1278,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1278,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1287,11'
          Dst:             pr_snprintf
        - Src:             'mod_core.c:1289,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1289,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:1289,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1312,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1315,11'
          Dst:             get_boolean
        - Src:             'mod_core.c:1317,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1317,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1326,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1326,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1326,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1331,10'
          Dst:             mod_create_ret
    - functionName:    set_syslogfacility
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2089
      functionLinenumberEnd: 2157
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          208
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - check_context
        - get_context_name
        - log_closesyslog
        - log_opensyslog
        - log_setfacility
        - mod_create_ret
        - pr_signals_block
        - pr_signals_unblock
        - pstrcat
        - strcasecmp
        - strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mod_core.c:2129,7'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_core.c:2120,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2120,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2121,3'
          Dst:             check_context
        - Src:             'mod_core.c:2121,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2121,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2121,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2121,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2124,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:2125,7'
          Dst:             log_closesyslog
        - Src:             'mod_core.c:2126,7'
          Dst:             log_setfacility
        - Src:             'mod_core.c:2128,7'
          Dst:             pr_signals_block
        - Src:             'mod_core.c:2129,15'
          Dst:             log_opensyslog
        - Src:             'mod_core.c:2131,11'
          Dst:             pr_signals_unblock
        - Src:             'mod_core.c:2132,11'
          Dst:             __errno_location
        - Src:             'mod_core.c:2132,11'
          Dst:             strerror
        - Src:             'mod_core.c:2132,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:2132,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:2132,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2137,11'
          Dst:             pr_signals_unblock
        - Src:             'mod_core.c:2138,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:2138,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2143,11'
          Dst:             pr_signals_unblock
        - Src:             'mod_core.c:2144,11'
          Dst:             pstrcat
        - Src:             'mod_core.c:2144,11'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2150,7'
          Dst:             pr_signals_unblock
        - Src:             'mod_core.c:2152,14'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2156,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2156,3'
          Dst:             mod_create_ret
    - functionName:    set_sysloglevel
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 878
      functionLinenumberEnd: 896
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          140
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_log_str2sysloglevel
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:882,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:882,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:883,3'
          Dst:             check_context
        - Src:             'mod_core.c:883,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:883,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:883,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:883,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:885,11'
          Dst:             pr_log_str2sysloglevel
        - Src:             'mod_core.c:887,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:887,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:891,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:892,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:895,10'
          Dst:             mod_create_ret
    - functionName:    set_timeoutidle
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1120
      functionLinenumberEnd: 1138
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          155
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_str_get_duration
        - pstrcat
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:1124,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1124,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1125,3'
          Dst:             check_context
        - Src:             'mod_core.c:1125,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1125,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1125,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1125,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1127,7'
          Dst:             pr_str_get_duration
        - Src:             'mod_core.c:1128,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:1128,5'
          Dst:             strerror
        - Src:             'mod_core.c:1128,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1128,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1128,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1132,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:1133,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:1137,10'
          Dst:             mod_create_ret
    - functionName:    set_timeoutlinger
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1140
      functionLinenumberEnd: 1157
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          150
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_str_get_duration
        - pstrcat
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:1144,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1144,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1145,3'
          Dst:             check_context
        - Src:             'mod_core.c:1145,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1145,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1145,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1145,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1147,7'
          Dst:             pr_str_get_duration
        - Src:             'mod_core.c:1148,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:1148,5'
          Dst:             strerror
        - Src:             'mod_core.c:1148,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1148,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1148,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1152,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:1153,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:1156,10'
          Dst:             mod_create_ret
    - functionName:    set_timesgmt
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2159
      functionLinenumberEnd: 2177
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          142
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2163,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2163,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2164,3'
          Dst:             check_context
        - Src:             'mod_core.c:2164,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2164,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2164,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2164,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2166,15'
          Dst:             get_boolean
        - Src:             'mod_core.c:2168,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2168,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2171,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2172,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:2176,10'
          Dst:             mod_create_ret
    - functionName:    set_trace
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1674
      functionLinenumberEnd: 1769
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         47
      ICount:          458
      EdgeCount:       63
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_trace_parse_levels
        - pr_trace_set_levels
        - pstrcat
        - pstrdup
        - strcasecmp
        - strchr
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:1681,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1681,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1683,3'
          Dst:             check_context
        - Src:             'mod_core.c:1683,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1683,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1683,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1683,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1692,7'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1695,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1695,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1716,13'
          Dst:             strchr
        - Src:             'mod_core.c:1718,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1718,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1718,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1725,13'
          Dst:             pr_trace_parse_levels
        - Src:             'mod_core.c:1727,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:1727,9'
          Dst:             strerror
        - Src:             'mod_core.c:1727,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1727,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1727,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1731,11'
          Dst:             pr_trace_set_levels
        - Src:             'mod_core.c:1732,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:1732,9'
          Dst:             strerror
        - Src:             'mod_core.c:1732,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1732,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1732,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1747,9'
          Dst:             add_config_param
        - Src:             'mod_core.c:1749,15'
          Dst:             pcalloc
        - Src:             'mod_core.c:1754,13'
          Dst:             strchr
        - Src:             'mod_core.c:1756,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1756,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1756,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1760,22'
          Dst:             pstrdup
        - Src:             'mod_core.c:1764,10'
          Dst:             mod_create_ret
    - functionName:    set_tracelog
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1772
      functionLinenumberEnd: 1800
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          164
      EdgeCount:       19
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_fs_valid_path
        - pr_trace_set_file
        - pstrcat
        - pstrdup
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:1775,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1775,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1778,3'
          Dst:             check_context
        - Src:             'mod_core.c:1778,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1778,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1778,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1778,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1780,7'
          Dst:             pr_fs_valid_path
        - Src:             'mod_core.c:1781,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1781,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1784,15'
          Dst:             pstrdup
        - Src:             'mod_core.c:1785,7'
          Dst:             pr_trace_set_file
        - Src:             'mod_core.c:1786,9'
          Dst:             __errno_location
        - Src:             'mod_core.c:1787,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1787,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1787,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1791,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:1791,5'
          Dst:             strerror
        - Src:             'mod_core.c:1791,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1791,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1791,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1795,10'
          Dst:             mod_create_ret
    - functionName:    set_traceoptions
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1803
      functionLinenumberEnd: 1893
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         53
      ICount:          368
      EdgeCount:       63
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - palloc
        - pr_log_debug
        - pr_trace_set_options
        - pstrcat
        - strcasecmp
        - strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mod_core.c:1831,7'
          Branch Sides:    []
        - Branch String:   'mod_core.c:1842,7'
          Branch Sides:    []
        - Branch String:   'mod_core.c:1853,7'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_core.c:1811,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1811,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1814,3'
          Dst:             check_context
        - Src:             'mod_core.c:1814,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1814,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1814,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1814,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1824,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1824,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1824,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1830,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1841,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1852,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1864,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1864,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1864,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1869,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:1870,16'
          Dst:             palloc
        - Src:             'mod_core.c:1881,9'
          Dst:             pr_trace_set_options
        - Src:             'mod_core.c:1883,53'
          Dst:             __errno_location
        - Src:             'mod_core.c:1883,44'
          Dst:             strerror
        - Src:             'mod_core.c:1882,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:1887,10'
          Dst:             mod_create_ret
    - functionName:    add_transferlog
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 652
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          105
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:655,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:655,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:656,3'
          Dst:             check_context
        - Src:             'mod_core.c:656,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:656,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:656,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:656,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:658,7'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:661,10'
          Dst:             mod_create_ret
    - functionName:    set_umask
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1895
      functionLinenumberEnd: 1937
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          247
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - strtol
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:1900,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1900,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1901,3'
          Dst:             check_context
        - Src:             'mod_core.c:1901,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1901,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1901,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1901,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1904,24'
          Dst:             strtol
        - Src:             'mod_core.c:1907,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1907,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1907,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1911,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:1912,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:1923,26'
          Dst:             strtol
        - Src:             'mod_core.c:1926,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1926,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1926,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1930,9'
          Dst:             add_config_param
        - Src:             'mod_core.c:1931,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:1936,10'
          Dst:             mod_create_ret
    - functionName:    set_unsetenv
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1939
      functionLinenumberEnd: 1967
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          201
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - add_config_param_str
        - check_context
        - core_handle_locale_env
        - get_context_name
        - mod_create_ret
        - pr_env_unset
        - pr_log_debug
        - pstrcat
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:1942,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1942,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1943,3'
          Dst:             check_context
        - Src:             'mod_core.c:1943,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1943,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1943,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1943,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1945,3'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:1957,9'
          Dst:             pr_env_unset
        - Src:             'mod_core.c:1959,64'
          Dst:             __errno_location
        - Src:             'mod_core.c:1959,55'
          Dst:             strerror
        - Src:             'mod_core.c:1958,7'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:1962,7'
          Dst:             core_handle_locale_env
        - Src:             'mod_core.c:1966,10'
          Dst:             mod_create_ret
    - functionName:    set_useipv6
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 675
      functionLinenumberEnd: 700
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          123
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pr_log_debug
        - pr_netaddr_disable_ipv6
        - pr_netaddr_enable_ipv6
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:679,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:679,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:680,3'
          Dst:             check_context
        - Src:             'mod_core.c:680,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:680,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:680,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:680,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:682,14'
          Dst:             get_boolean
        - Src:             'mod_core.c:684,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:684,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:688,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:689,5'
          Dst:             pr_netaddr_disable_ipv6
        - Src:             'mod_core.c:692,5'
          Dst:             pr_netaddr_enable_ipv6
        - Src:             'mod_core.c:695,10'
          Dst:             mod_create_ret
    - functionName:    set_usereversedns
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 702
      functionLinenumberEnd: 717
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          115
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pr_netaddr_set_reverse_dns
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:705,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:705,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:706,3'
          Dst:             check_context
        - Src:             'mod_core.c:706,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:706,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:706,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:706,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:708,21'
          Dst:             get_boolean
        - Src:             'mod_core.c:710,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:710,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:714,3'
          Dst:             pr_netaddr_set_reverse_dns
        - Src:             'mod_core.c:716,10'
          Dst:             mod_create_ret
    - functionName:    set_user
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1447
      functionLinenumberEnd: 1473
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          190
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - add_config_param
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_auth_getpwnam
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:1450,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1450,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1451,3'
          Dst:             check_context
        - Src:             'mod_core.c:1451,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1451,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1451,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1451,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1458,10'
          Dst:             pr_auth_getpwnam
        - Src:             'mod_core.c:1460,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1460,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1460,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1466,21'
          Dst:             add_config_param
        - Src:             'mod_core.c:1467,18'
          Dst:             pcalloc
        - Src:             'mod_core.c:1471,3'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:1472,10'
          Dst:             mod_create_ret
    - functionName:    add_userowner
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2744
      functionLinenumberEnd: 2754
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          105
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - add_config_param_str
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2747,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2747,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2748,3'
          Dst:             check_context
        - Src:             'mod_core.c:2748,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2748,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2748,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2748,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2750,7'
          Dst:             add_config_param_str
        - Src:             'mod_core.c:2753,10'
          Dst:             mod_create_ret
    - functionName:    set_tcpbacklog
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1341
      functionLinenumberEnd: 1355
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          116
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - atoi
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:1344,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1344,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1345,3'
          Dst:             check_context
        - Src:             'mod_core.c:1345,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1345,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1345,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1345,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1347,13'
          Dst:             atoi
        - Src:             'mod_core.c:1350,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1350,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1354,10'
          Dst:             mod_create_ret
    - functionName:    set_tcpnodelay
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1357
      functionLinenumberEnd: 1445
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         56
      ICount:          507
      EdgeCount:       76
      CyclomaticComplexity: 22
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:1361,3'
          Dst:             check_context
        - Src:             'mod_core.c:1361,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:1361,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1361,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:1361,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1364,24'
          Dst:             get_boolean
        - Src:             'mod_core.c:1366,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1366,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1375,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1376,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1377,26'
          Dst:             get_boolean
        - Src:             'mod_core.c:1379,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1379,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1384,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1385,26'
          Dst:             get_boolean
        - Src:             'mod_core.c:1387,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1387,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1393,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1393,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1393,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1398,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1399,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1400,26'
          Dst:             get_boolean
        - Src:             'mod_core.c:1402,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1402,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1405,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1406,26'
          Dst:             get_boolean
        - Src:             'mod_core.c:1408,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1408,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1412,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1412,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1412,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1416,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1417,9'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1418,26'
          Dst:             get_boolean
        - Src:             'mod_core.c:1420,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1420,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1423,16'
          Dst:             strcasecmp
        - Src:             'mod_core.c:1424,26'
          Dst:             get_boolean
        - Src:             'mod_core.c:1426,9'
          Dst:             pstrcat
        - Src:             'mod_core.c:1426,9'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1430,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1430,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:1430,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1435,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:1435,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:1438,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:1439,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:1441,16'
          Dst:             pcalloc
        - Src:             'mod_core.c:1444,10'
          Dst:             mod_create_ret
    - functionName:    set_regex
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2179
      functionLinenumberEnd: 2239
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          255
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_filter_parse_flags
        - pr_log_debug
        - pr_regexp_alloc
        - pr_regexp_compile
        - pr_regexp_error
        - pr_regexp_free
        - pstrcat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:2187,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2187,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2190,3'
          Dst:             check_context
        - Src:             'mod_core.c:2190,3'
          Dst:             get_context_name
        - Src:             'mod_core.c:2190,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2190,3'
          Dst:             pstrcat
        - Src:             'mod_core.c:2190,3'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2201,13'
          Dst:             pr_filter_parse_flags
        - Src:             'mod_core.c:2203,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2203,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2203,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2208,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2208,7'
          Dst:             pstrcat
        - Src:             'mod_core.c:2208,7'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2215,3'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:2217,9'
          Dst:             pr_regexp_alloc
        - Src:             'mod_core.c:2219,9'
          Dst:             pr_regexp_compile
        - Src:             'mod_core.c:2223,5'
          Dst:             pr_regexp_error
        - Src:             'mod_core.c:2224,5'
          Dst:             pr_regexp_free
        - Src:             'mod_core.c:2226,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2226,5'
          Dst:             pstrcat
        - Src:             'mod_core.c:2226,5'
          Dst:             mod_create_ret
        - Src:             'mod_core.c:2230,7'
          Dst:             add_config_param
        - Src:             'mod_core.c:2232,10'
          Dst:             mod_create_ret
    - functionName:    core_chmod
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5521
      functionLinenumberEnd: 5536
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - dir_check
        - pr_cmd_set_name
        - pr_fsio_chmod
        - pr_log_debug
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:5525,3'
          Dst:             pr_cmd_set_name
        - Src:             'mod_core.c:5526,8'
          Dst:             dir_check
        - Src:             'mod_core.c:5527,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5528,5'
          Dst:             pr_cmd_set_name
        - Src:             'mod_core.c:5530,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5533,3'
          Dst:             pr_cmd_set_name
        - Src:             'mod_core.c:5535,10'
          Dst:             pr_fsio_chmod
    - functionName:    core_chgrp
      functionSourceFile: '/src/proftpd/modules/mod_core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5504
      functionLinenumberEnd: 5519
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          62
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - dir_check
        - pr_cmd_set_name
        - pr_fsio_lchown
        - pr_log_debug
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_core.c:5508,3'
          Dst:             pr_cmd_set_name
        - Src:             'mod_core.c:5509,8'
          Dst:             dir_check
        - Src:             'mod_core.c:5510,5'
          Dst:             pr_log_debug
        - Src:             'mod_core.c:5511,5'
          Dst:             pr_cmd_set_name
        - Src:             'mod_core.c:5513,5'
          Dst:             __errno_location
        - Src:             'mod_core.c:5516,3'
          Dst:             pr_cmd_set_name
        - Src:             'mod_core.c:5518,10'
          Dst:             pr_fsio_lchown
    - functionName:    auth_unix_sess_reinit_ev
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1628
      functionLinenumberEnd: 1644
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - auth_unix_exit_ev
        - auth_unix_sess_init
        - auth_unix_sess_reinit_ev
        - pr_event_unregister
        - pr_session_disconnect
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:1633,3'
          Dst:             pr_event_unregister
        - Src:             'mod_auth_unix.c:1633,3'
          Dst:             auth_unix_exit_ev
        - Src:             'mod_auth_unix.c:1634,3'
          Dst:             pr_event_unregister
        - Src:             'mod_auth_unix.c:1634,3'
          Dst:             auth_unix_sess_reinit_ev
        - Src:             'mod_auth_unix.c:1639,9'
          Dst:             auth_unix_sess_init
        - Src:             'mod_auth_unix.c:1641,5'
          Dst:             pr_session_disconnect
    - functionName:    auth_unix_exit_ev
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1623
      functionLinenumberEnd: 1626
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_auth_endgrent
        - pr_auth_endpwent
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:1624,3'
          Dst:             pr_auth_endpwent
        - Src:             'mod_auth_unix.c:1625,3'
          Dst:             pr_auth_endgrent
    - functionName:    auth_unix_sess_init
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1658
      functionLinenumberEnd: 1675
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - auth_unix_exit_ev
        - auth_unix_sess_reinit_ev
        - find_config
        - pr_event_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:1661,3'
          Dst:             pr_event_register
        - Src:             'mod_auth_unix.c:1661,3'
          Dst:             auth_unix_exit_ev
        - Src:             'mod_auth_unix.c:1662,3'
          Dst:             pr_event_register
        - Src:             'mod_auth_unix.c:1662,3'
          Dst:             auth_unix_sess_reinit_ev
        - Src:             'mod_auth_unix.c:1665,7'
          Dst:             find_config
        - Src:             'mod_auth_unix.c:1670,7'
          Dst:             find_config
    - functionName:    auth_unix_init
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1649
      functionLinenumberEnd: 1655
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pw_setpwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - p_setpwent
        - setpwent
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:276,5'
          Dst:             p_setpwent
        - Src:             'mod_auth_unix.c:279,5'
          Dst:             setpwent
    - functionName:    pw_endpwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - endpwent
        - p_endpwent
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:287,5'
          Dst:             p_endpwent
        - Src:             'mod_auth_unix.c:290,5'
          Dst:             endpwent
    - functionName:    pw_setgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - p_setgrent
        - setgrent
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:298,5'
          Dst:             p_setgrent
        - Src:             'mod_auth_unix.c:301,5'
          Dst:             setgrent
    - functionName:    pw_endgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 315
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - endgrent
        - p_endgrent
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:309,5'
          Dst:             p_endgrent
        - Src:             'mod_auth_unix.c:312,5'
          Dst:             endgrent
    - functionName:    pw_getpwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - getpwent
        - mod_create_data
        - p_getpwent
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:335,10'
          Dst:             p_getpwent
        - Src:             'mod_auth_unix.c:338,10'
          Dst:             getpwent
        - Src:             'mod_auth_unix.c:341,15'
          Dst:             mod_create_data
    - functionName:    pw_getgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 328
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - getgrent
        - mod_create_data
        - p_getgrent
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:322,10'
          Dst:             p_getgrent
        - Src:             'mod_auth_unix.c:325,10'
          Dst:             getgrent
        - Src:             'mod_auth_unix.c:328,15'
          Dst:             mod_create_data
    - functionName:    pw_getpwnam
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          193
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - add_config_param_set
        - getpwnam
        - mod_create_data
        - p_getpwnam
        - pr_log_debug
        - pr_signals_handle
        - pstrdup
        - remove_config
        - strchr
        - strncmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:365,10'
          Dst:             p_getpwnam
        - Src:             'mod_auth_unix.c:368,10'
          Dst:             getpwnam
        - Src:             'mod_auth_unix.c:387,16'
          Dst:             pstrdup
        - Src:             'mod_auth_unix.c:393,11'
          Dst:             strchr
        - Src:             'mod_auth_unix.c:395,7'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_unix.c:419,11'
          Dst:             strncmp
        - Src:             'mod_auth_unix.c:424,25'
          Dst:             pstrdup
        - Src:             'mod_auth_unix.c:431,16'
          Dst:             remove_config
        - Src:             'mod_auth_unix.c:432,13'
          Dst:             add_config_param_set
        - Src:             'mod_auth_unix.c:433,22'
          Dst:             pstrdup
        - Src:             'mod_auth_unix.c:435,16'
          Dst:             remove_config
        - Src:             'mod_auth_unix.c:436,13'
          Dst:             add_config_param_set
        - Src:             'mod_auth_unix.c:437,22'
          Dst:             pstrdup
        - Src:             'mod_auth_unix.c:439,9'
          Dst:             pr_log_debug
        - Src:             'mod_auth_unix.c:446,22'
          Dst:             pstrdup
        - Src:             'mod_auth_unix.c:451,13'
          Dst:             strchr
        - Src:             'mod_auth_unix.c:455,15'
          Dst:             mod_create_data
    - functionName:    pw_getpwuid
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 344
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - getpwuid
        - mod_create_data
        - p_getpwuid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:350,10'
          Dst:             p_getpwuid
        - Src:             'mod_auth_unix.c:353,10'
          Dst:             getpwuid
        - Src:             'mod_auth_unix.c:356,15'
          Dst:             mod_create_data
    - functionName:    pw_getgrnam
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 470
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - getgrnam
        - mod_create_data
        - p_getgrnam
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:464,10'
          Dst:             p_getgrnam
        - Src:             'mod_auth_unix.c:467,10'
          Dst:             getgrnam
        - Src:             'mod_auth_unix.c:470,15'
          Dst:             mod_create_data
    - functionName:    pw_getgrgid
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 473
      functionLinenumberEnd: 485
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - getgrgid
        - mod_create_data
        - p_getgrgid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:479,10'
          Dst:             p_getgrgid
        - Src:             'mod_auth_unix.c:482,10'
          Dst:             getgrgid
        - Src:             'mod_auth_unix.c:485,15'
          Dst:             mod_create_data
    - functionName:    pw_auth
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 715
      functionLinenumberEnd: 765
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          172
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - get_pwd_info
        - mod_create_error
        - mod_create_ret
        - pr_auth_check
        - pr_memscrub
        - pr_strtime
        - pr_trace_msg
        - strlen
        - time
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:725,21'
          Dst:             get_pwd_info
        - Src:             'mod_auth_unix.c:731,9'
          Dst:             pr_auth_check
        - Src:             'mod_auth_unix.c:733,24'
          Dst:             strlen
        - Src:             'mod_auth_unix.c:734,3'
          Dst:             pr_memscrub
        - Src:             'mod_auth_unix.c:737,12'
          Dst:             mod_create_error
        - Src:             'mod_auth_unix.c:740,3'
          Dst:             time
        - Src:             'mod_auth_unix.c:749,54'
          Dst:             pr_strtime
        - Src:             'mod_auth_unix.c:751,9'
          Dst:             pr_strtime
        - Src:             'mod_auth_unix.c:746,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_unix.c:752,14'
          Dst:             mod_create_error
        - Src:             'mod_auth_unix.c:759,57'
          Dst:             pr_strtime
        - Src:             'mod_auth_unix.c:758,5'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_unix.c:760,12'
          Dst:             mod_create_error
        - Src:             'mod_auth_unix.c:764,10'
          Dst:             mod_create_ret
    - functionName:    pw_authz
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 767
      functionLinenumberEnd: 868
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          133
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - get_pwd_info
        - mod_create_error
        - mod_create_ret
        - pr_log_auth
        - pr_memscrub
        - pr_trace_msg
        - strlen
        - time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:775,21'
          Dst:             get_pwd_info
        - Src:             'mod_auth_unix.c:778,5'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_unix.c:783,24'
          Dst:             strlen
        - Src:             'mod_auth_unix.c:784,3'
          Dst:             pr_memscrub
        - Src:             'mod_auth_unix.c:786,3'
          Dst:             time
        - Src:             'mod_auth_unix.c:792,7'
          Dst:             pr_log_auth
        - Src:             'mod_auth_unix.c:794,14'
          Dst:             mod_create_error
        - Src:             'mod_auth_unix.c:800,5'
          Dst:             pr_log_auth
        - Src:             'mod_auth_unix.c:802,12'
          Dst:             mod_create_error
        - Src:             'mod_auth_unix.c:867,10'
          Dst:             mod_create_ret
    - functionName:    pw_check
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 875
      functionLinenumberEnd: 1088
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          141
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - crypt
        - mod_create_error
        - mod_create_ret
        - pr_cmd_alloc
        - pr_log_pri
        - pw_authz
        - strcmp
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:1051,12'
          Dst:             pr_cmd_alloc
        - Src:             'mod_auth_unix.c:1054,8'
          Dst:             pw_authz
        - Src:             'mod_auth_unix.c:1059,12'
          Dst:             mod_create_error
        - Src:             'mod_auth_unix.c:1066,27'
          Dst:             crypt
        - Src:             'mod_auth_unix.c:1068,63'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1068,54'
          Dst:             strerror
        - Src:             'mod_auth_unix.c:1068,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_unix.c:1072,7'
          Dst:             strcmp
        - Src:             'mod_auth_unix.c:1087,10'
          Dst:             mod_create_ret
    - functionName:    pw_uid2name
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1090
      functionLinenumberEnd: 1108
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - getpwuid
        - mod_create_data
        - p_getpwuid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:1097,10'
          Dst:             p_getpwuid
        - Src:             'mod_auth_unix.c:1100,10'
          Dst:             getpwuid
        - Src:             'mod_auth_unix.c:1104,12'
          Dst:             mod_create_data
    - functionName:    pw_gid2name
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1110
      functionLinenumberEnd: 1127
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - getgrgid
        - mod_create_data
        - p_getgrgid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:1116,10'
          Dst:             p_getgrgid
        - Src:             'mod_auth_unix.c:1119,10'
          Dst:             getgrgid
        - Src:             'mod_auth_unix.c:1123,12'
          Dst:             mod_create_data
    - functionName:    pw_name2uid
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1129
      functionLinenumberEnd: 1142
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - getpwnam
        - mod_create_data
        - p_getpwnam
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:1136,10'
          Dst:             p_getpwnam
        - Src:             'mod_auth_unix.c:1139,10'
          Dst:             getpwnam
        - Src:             'mod_auth_unix.c:1142,15'
          Dst:             mod_create_data
    - functionName:    pw_name2gid
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1145
      functionLinenumberEnd: 1158
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - getgrnam
        - mod_create_data
        - p_getgrnam
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:1152,10'
          Dst:             p_getgrnam
        - Src:             'mod_auth_unix.c:1155,10'
          Dst:             getgrnam
        - Src:             'mod_auth_unix.c:1158,15'
          Dst:             mod_create_data
    - functionName:    pw_getgroups
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1465
      functionLinenumberEnd: 1554
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         53
      ICount:          339
      EdgeCount:       72
      CyclomaticComplexity: 21
      functionsReached:
        - __errno_location
        - get_groups_by_getgrent
        - get_groups_by_getgrouplist
        - get_groups_by_getgrset
        - get_groups_by_initgroups
        - mod_create_data
        - pstrdup
        - push_array
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:1510,17'
          Dst:             push_array
        - Src:             'mod_auth_unix.c:1515,39'
          Dst:             pstrdup
        - Src:             'mod_auth_unix.c:1515,17'
          Dst:             push_array
        - Src:             'mod_auth_unix.c:1522,9'
          Dst:             get_groups_by_initgroups
        - Src:             'mod_auth_unix.c:1524,7'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1525,11'
          Dst:             get_groups_by_getgrouplist
        - Src:             'mod_auth_unix.c:1530,7'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1531,11'
          Dst:             get_groups_by_getgrset
        - Src:             'mod_auth_unix.c:1535,7'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1536,11'
          Dst:             get_groups_by_getgrent
        - Src:             'mod_auth_unix.c:1545,12'
          Dst:             mod_create_data
        - Src:             'mod_auth_unix.c:1550,12'
          Dst:             mod_create_data
    - functionName:    p_getpwnam
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - p_getpwent
        - p_setpwent
        - pr_signals_handle
        - strlen
        - strncmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:212,3'
          Dst:             p_setpwent
        - Src:             'mod_auth_unix.c:213,14'
          Dst:             strlen
        - Src:             'mod_auth_unix.c:215,16'
          Dst:             p_getpwent
        - Src:             'mod_auth_unix.c:216,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_unix.c:218,9'
          Dst:             strncmp
    - functionName:    p_getgrgid
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - p_getgrent
        - p_setgrent
        - pr_signals_handle
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:262,3'
          Dst:             p_setgrent
        - Src:             'mod_auth_unix.c:263,16'
          Dst:             p_getgrent
        - Src:             'mod_auth_unix.c:264,5'
          Dst:             pr_signals_handle
    - functionName:    p_getgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          40
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fgetgrent
        - p_setgrent
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:198,5'
          Dst:             p_setgrent
        - Src:             'mod_auth_unix.c:205,10'
          Dst:             fgetgrent
    - functionName:    p_setgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          40
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - fopen
        - pr_log_pri
        - rewind
        - strerror
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:162,5'
          Dst:             rewind
        - Src:             'mod_auth_unix.c:165,12'
          Dst:             fopen
        - Src:             'mod_auth_unix.c:168,25'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:168,16'
          Dst:             strerror
        - Src:             'mod_auth_unix.c:167,7'
          Dst:             pr_log_pri
    - functionName:    getgrgid
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getgrent
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    setgrent
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_groups_by_initgroups
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1365
      functionLinenumberEnd: 1459
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          212
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - geteuid
        - getgroups
        - initgroups
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
        - pr_trace_msg
        - pstrdup
        - push_array
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:1399,7'
          Dst:             geteuid
        - Src:             'mod_auth_unix.c:1404,5'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1408,3'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_unix.c:1411,3'
          Dst:             pr_privs_root
        - Src:             'mod_auth_unix.c:1412,9'
          Dst:             initgroups
        - Src:             'mod_auth_unix.c:1413,12'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1414,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth_unix.c:1417,59'
          Dst:             strerror
        - Src:             'mod_auth_unix.c:1417,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_unix.c:1419,5'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1423,13'
          Dst:             getgroups
        - Src:             'mod_auth_unix.c:1425,14'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1427,58'
          Dst:             strerror
        - Src:             'mod_auth_unix.c:1427,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_unix.c:1429,5'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1440,21'
          Dst:             push_array
        - Src:             'mod_auth_unix.c:1445,43'
          Dst:             pstrdup
        - Src:             'mod_auth_unix.c:1445,21'
          Dst:             push_array
    - functionName:    get_groups_by_getgrouplist
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1246
      functionLinenumberEnd: 1322
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          180
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - getgrouplist
        - pr_log_pri
        - pr_trace_msg
        - pstrdup
        - push_array
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:1275,5'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1279,3'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_unix.c:1286,9'
          Dst:             getgrouplist
        - Src:             'mod_auth_unix.c:1289,18'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1291,61'
          Dst:             strerror
        - Src:             'mod_auth_unix.c:1291,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_unix.c:1293,5'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:1304,21'
          Dst:             push_array
        - Src:             'mod_auth_unix.c:1309,43'
          Dst:             pstrdup
        - Src:             'mod_auth_unix.c:1309,21'
          Dst:             push_array
    - functionName:    get_groups_by_getgrset
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1163
      functionLinenumberEnd: 1241
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:1237,3'
          Dst:             __errno_location
    - functionName:    get_groups_by_getgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1326
      functionLinenumberEnd: 1360
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          147
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - pr_signals_handle
        - pstrdup
        - push_array
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:1333,14'
          Dst:             strlen
        - Src:             'mod_auth_unix.c:1338,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_unix.c:1344,11'
          Dst:             strncmp
        - Src:             'mod_auth_unix.c:1348,23'
          Dst:             push_array
        - Src:             'mod_auth_unix.c:1353,45'
          Dst:             pstrdup
        - Src:             'mod_auth_unix.c:1353,23'
          Dst:             push_array
    - functionName:    getgrouplist
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    initgroups
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getgroups
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rewind
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_setpwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          40
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - fopen
        - pr_log_pri
        - rewind
        - strerror
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:142,5'
          Dst:             rewind
        - Src:             'mod_auth_unix.c:145,12'
          Dst:             fopen
        - Src:             'mod_auth_unix.c:148,26'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:148,17'
          Dst:             strerror
        - Src:             'mod_auth_unix.c:147,7'
          Dst:             pr_log_pri
    - functionName:    p_getpwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          40
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fgetpwent
        - p_setpwent
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:186,5'
          Dst:             p_setpwent
        - Src:             'mod_auth_unix.c:193,10'
          Dst:             fgetpwent
    - functionName:    p_getgrnam
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - p_getgrent
        - p_setgrent
        - pr_signals_handle
        - strlen
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:245,3'
          Dst:             p_setgrent
        - Src:             'mod_auth_unix.c:246,14'
          Dst:             strlen
        - Src:             'mod_auth_unix.c:248,16'
          Dst:             p_getgrent
        - Src:             'mod_auth_unix.c:249,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_unix.c:251,9'
          Dst:             strncmp
    - functionName:    getgrnam
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_getpwuid
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - p_getpwent
        - p_setpwent
        - pr_signals_handle
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:229,3'
          Dst:             p_setpwent
        - Src:             'mod_auth_unix.c:230,16'
          Dst:             p_getpwent
        - Src:             'mod_auth_unix.c:231,5'
          Dst:             pr_signals_handle
    - functionName:    getpwuid
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    crypt
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_pwd_info
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 490
      functionLinenumberEnd: 592
      functionDepth:   0
      returnType:      'N/A'
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          252
      EdgeCount:       55
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - endspent
        - getspnam
        - pr_log_debug
        - pr_privs_relinquish
        - pr_privs_root
        - pr_trace_msg
        - pstrdup
        - setspent
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:494,3'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_unix.c:497,3'
          Dst:             pr_privs_root
        - Src:             'mod_auth_unix.c:499,3'
          Dst:             setspent
        - Src:             'mod_auth_unix.c:502,8'
          Dst:             getspnam
        - Src:             'mod_auth_unix.c:504,11'
          Dst:             pstrdup
        - Src:             'mod_auth_unix.c:538,19'
          Dst:             __errno_location
        - Src:             'mod_auth_unix.c:538,10'
          Dst:             strerror
        - Src:             'mod_auth_unix.c:537,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_unix.c:588,3'
          Dst:             endspent
        - Src:             'mod_auth_unix.c:589,3'
          Dst:             pr_privs_relinquish
    - functionName:    setspent
      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:    getspnam
      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:    endspent
      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:    getpwent
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p_endgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          25
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fclose
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:179,5'
          Dst:             fclose
    - functionName:    p_endpwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          25
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fclose
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:155,5'
          Dst:             fclose
    - functionName:    setpwent
      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:    set_authunixoptions
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1560
      functionLinenumberEnd: 1599
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          236
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:1566,5'
          Dst:             pstrcat
        - Src:             'mod_auth_unix.c:1566,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth_unix.c:1569,3'
          Dst:             check_context
        - Src:             'mod_auth_unix.c:1569,3'
          Dst:             get_context_name
        - Src:             'mod_auth_unix.c:1569,3'
          Dst:             pstrcat
        - Src:             'mod_auth_unix.c:1569,3'
          Dst:             pstrcat
        - Src:             'mod_auth_unix.c:1569,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth_unix.c:1571,7'
          Dst:             add_config_param
        - Src:             'mod_auth_unix.c:1574,9'
          Dst:             strcasecmp
        - Src:             'mod_auth_unix.c:1577,16'
          Dst:             strcasecmp
        - Src:             'mod_auth_unix.c:1580,16'
          Dst:             strcasecmp
        - Src:             'mod_auth_unix.c:1583,16'
          Dst:             strcasecmp
        - Src:             'mod_auth_unix.c:1586,16'
          Dst:             strcasecmp
        - Src:             'mod_auth_unix.c:1590,7'
          Dst:             pstrcat
        - Src:             'mod_auth_unix.c:1590,7'
          Dst:             pstrcat
        - Src:             'mod_auth_unix.c:1590,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth_unix.c:1595,16'
          Dst:             pcalloc
        - Src:             'mod_auth_unix.c:1598,10'
          Dst:             mod_create_ret
    - functionName:    set_persistentpasswd
      functionSourceFile: '/src/proftpd/modules/mod_auth_unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1601
      functionLinenumberEnd: 1618
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          135
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - palloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_unix.c:1605,3'
          Dst:             pstrcat
        - Src:             'mod_auth_unix.c:1605,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth_unix.c:1606,3'
          Dst:             check_context
        - Src:             'mod_auth_unix.c:1606,3'
          Dst:             get_context_name
        - Src:             'mod_auth_unix.c:1606,3'
          Dst:             pstrcat
        - Src:             'mod_auth_unix.c:1606,3'
          Dst:             pstrcat
        - Src:             'mod_auth_unix.c:1606,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth_unix.c:1608,17'
          Dst:             get_boolean
        - Src:             'mod_auth_unix.c:1610,5'
          Dst:             pstrcat
        - Src:             'mod_auth_unix.c:1610,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth_unix.c:1613,7'
          Dst:             add_config_param
        - Src:             'mod_auth_unix.c:1614,16'
          Dst:             palloc
        - Src:             'mod_auth_unix.c:1617,10'
          Dst:             mod_create_ret
    - functionName:    authfile_sess_reinit_ev
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1957
      functionLinenumberEnd: 1973
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - authfile_sess_init
        - authfile_sess_reinit_ev
        - pr_event_unregister
        - pr_session_disconnect
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1962,3'
          Dst:             pr_event_unregister
        - Src:             'mod_auth_file.c:1962,3'
          Dst:             authfile_sess_reinit_ev
        - Src:             'mod_auth_file.c:1968,9'
          Dst:             authfile_sess_init
        - Src:             'mod_auth_file.c:1970,5'
          Dst:             pr_session_disconnect
    - functionName:    authfile_sess_init
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2008
      functionLinenumberEnd: 2024
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - authfile_sess_reinit_ev
        - find_config
        - pr_event_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:2011,3'
          Dst:             pr_event_register
        - Src:             'mod_auth_file.c:2011,3'
          Dst:             authfile_sess_reinit_ev
        - Src:             'mod_auth_file.c:2014,7'
          Dst:             find_config
        - Src:             'mod_auth_file.c:2019,7'
          Dst:             find_config
    - functionName:    authfile_init
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1978
      functionLinenumberEnd: 2005
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - crypt
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1997,10'
          Dst:             crypt
        - Src:             'mod_auth_file.c:1999,9'
          Dst:             strcmp
    - functionName:    authfile_endpwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1155
      functionLinenumberEnd: 1157
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - af_endpwent
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1156,3'
          Dst:             af_endpwent
    - functionName:    authfile_getpwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1160
      functionLinenumberEnd: 1166
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - af_getpwent
        - mod_create_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1164,9'
          Dst:             af_getpwent
        - Src:             'mod_auth_file.c:1166,16'
          Dst:             mod_create_data
    - functionName:    authfile_getpwnam
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1169
      functionLinenumberEnd: 1192
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          91
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - af_getpwent
        - af_setpwent
        - mod_create_data
        - pr_signals_handle
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1174,7'
          Dst:             af_setpwent
        - Src:             'mod_auth_file.c:1179,9'
          Dst:             af_getpwent
        - Src:             'mod_auth_file.c:1181,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:1183,9'
          Dst:             strcmp
        - Src:             'mod_auth_file.c:1188,11'
          Dst:             af_getpwent
        - Src:             'mod_auth_file.c:1191,16'
          Dst:             mod_create_data
    - functionName:    authfile_getpwuid
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1194
      functionLinenumberEnd: 1205
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - af_getpwuid
        - af_setpwent
        - mod_create_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1198,7'
          Dst:             af_setpwent
        - Src:             'mod_auth_file.c:1202,9'
          Dst:             af_getpwuid
        - Src:             'mod_auth_file.c:1204,16'
          Dst:             mod_create_data
    - functionName:    authfile_name2uid
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1207
      functionLinenumberEnd: 1217
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - af_getpwnam
        - af_setpwent
        - mod_create_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1210,7'
          Dst:             af_setpwent
        - Src:             'mod_auth_file.c:1214,9'
          Dst:             af_getpwnam
        - Src:             'mod_auth_file.c:1216,16'
          Dst:             mod_create_data
    - functionName:    authfile_setpwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1219
      functionLinenumberEnd: 1225
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - af_setpwent
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1220,7'
          Dst:             af_setpwent
    - functionName:    authfile_uid2name
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1227
      functionLinenumberEnd: 1237
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - af_getpwuid
        - af_setpwent
        - mod_create_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1230,7'
          Dst:             af_setpwent
        - Src:             'mod_auth_file.c:1234,9'
          Dst:             af_getpwuid
        - Src:             'mod_auth_file.c:1236,16'
          Dst:             mod_create_data
    - functionName:    authfile_endgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1239
      functionLinenumberEnd: 1241
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - af_endgrent
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1240,3'
          Dst:             af_endgrent
    - functionName:    authfile_getgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1244
      functionLinenumberEnd: 1250
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - af_getgrent
        - mod_create_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1248,9'
          Dst:             af_getgrent
        - Src:             'mod_auth_file.c:1250,16'
          Dst:             mod_create_data
    - functionName:    authfile_getgrgid
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1253
      functionLinenumberEnd: 1264
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - af_getgrgid
        - af_setgrent
        - mod_create_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1257,7'
          Dst:             af_setgrent
        - Src:             'mod_auth_file.c:1261,9'
          Dst:             af_getgrgid
        - Src:             'mod_auth_file.c:1263,16'
          Dst:             mod_create_data
    - functionName:    authfile_getgrnam
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1266
      functionLinenumberEnd: 1290
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          91
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - af_getgrent
        - af_setgrent
        - mod_create_data
        - pr_signals_handle
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1271,7'
          Dst:             af_setgrent
        - Src:             'mod_auth_file.c:1277,9'
          Dst:             af_getgrent
        - Src:             'mod_auth_file.c:1279,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:1281,9'
          Dst:             strcmp
        - Src:             'mod_auth_file.c:1286,11'
          Dst:             af_getgrent
        - Src:             'mod_auth_file.c:1289,16'
          Dst:             mod_create_data
    - functionName:    authfile_getgroups
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1292
      functionLinenumberEnd: 1382
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         56
      ICount:          334
      EdgeCount:       75
      CyclomaticComplexity: 21
      functionsReached:
        - af_getgrent
        - af_getgrgid
        - af_getpwnam
        - af_setgrent
        - af_setpwent
        - mod_create_data
        - pr_signals_handle
        - pstrdup
        - push_array
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1303,7'
          Dst:             af_setpwent
        - Src:             'mod_auth_file.c:1307,7'
          Dst:             af_setgrent
        - Src:             'mod_auth_file.c:1321,9'
          Dst:             af_getpwnam
        - Src:             'mod_auth_file.c:1328,17'
          Dst:             push_array
        - Src:             'mod_auth_file.c:1332,11'
          Dst:             af_getgrgid
        - Src:             'mod_auth_file.c:1335,41'
          Dst:             pstrdup
        - Src:             'mod_auth_file.c:1335,19'
          Dst:             push_array
        - Src:             'mod_auth_file.c:1339,10'
          Dst:             af_setgrent
        - Src:             'mod_auth_file.c:1344,9'
          Dst:             af_getgrent
        - Src:             'mod_auth_file.c:1349,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:1355,11'
          Dst:             strcmp
        - Src:             'mod_auth_file.c:1359,23'
          Dst:             push_array
        - Src:             'mod_auth_file.c:1363,45'
          Dst:             pstrdup
        - Src:             'mod_auth_file.c:1363,23'
          Dst:             push_array
        - Src:             'mod_auth_file.c:1368,11'
          Dst:             af_getgrent
        - Src:             'mod_auth_file.c:1373,12'
          Dst:             mod_create_data
        - Src:             'mod_auth_file.c:1378,12'
          Dst:             mod_create_data
    - functionName:    authfile_gid2name
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1384
      functionLinenumberEnd: 1394
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - af_getgrgid
        - af_setgrent
        - mod_create_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1387,7'
          Dst:             af_setgrent
        - Src:             'mod_auth_file.c:1391,9'
          Dst:             af_getgrgid
        - Src:             'mod_auth_file.c:1393,16'
          Dst:             mod_create_data
    - functionName:    authfile_name2gid
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1396
      functionLinenumberEnd: 1406
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - af_getgrnam
        - af_setgrent
        - mod_create_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1399,7'
          Dst:             af_setgrent
        - Src:             'mod_auth_file.c:1403,9'
          Dst:             af_getgrnam
        - Src:             'mod_auth_file.c:1405,16'
          Dst:             mod_create_data
    - functionName:    authfile_setgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1408
      functionLinenumberEnd: 1414
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - af_setgrent
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1409,7'
          Dst:             af_setgrent
    - functionName:    authfile_auth
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1416
      functionLinenumberEnd: 1451
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          87
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - af_getpwpass
        - af_setpwent
        - mod_create_error
        - mod_create_ret
        - pr_auth_check
        - pstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1420,7'
          Dst:             af_setpwent
        - Src:             'mod_auth_file.c:1425,9'
          Dst:             af_getpwpass
        - Src:             'mod_auth_file.c:1443,19'
          Dst:             pstrdup
        - Src:             'mod_auth_file.c:1445,7'
          Dst:             pr_auth_check
        - Src:             'mod_auth_file.c:1446,12'
          Dst:             mod_create_error
        - Src:             'mod_auth_file.c:1450,10'
          Dst:             mod_create_ret
    - functionName:    authfile_chkpass
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1542
      functionLinenumberEnd: 1601
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          159
      EdgeCount:       37
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - check_unsupported_algo
        - crypt
        - mod_create_ret
        - pr_log_debug
        - strcmp
        - strerror
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1550,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:1556,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:1570,18'
          Dst:             crypt
        - Src:             'mod_auth_file.c:1571,12'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1573,23'
          Dst:             strlen
        - Src:             'mod_auth_file.c:1584,57'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1583,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:1589,7'
          Dst:             check_unsupported_algo
        - Src:             'mod_auth_file.c:1595,7'
          Dst:             strcmp
        - Src:             'mod_auth_file.c:1597,12'
          Dst:             mod_create_ret
    - functionName:    check_unsupported_algo
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1464
      functionLinenumberEnd: 1540
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          161
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - fclose
        - feof
        - ferror
        - fopen
        - fread
        - pr_log_debug
        - pr_log_pri
        - pr_trace_msg
        - strcmp
        - strerror
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1470,8'
          Dst:             fopen
        - Src:             'mod_auth_file.c:1473,68'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1473,59'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1472,5'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:1479,9'
          Dst:             fread
        - Src:             'mod_auth_file.c:1481,9'
          Dst:             feof
        - Src:             'mod_auth_file.c:1483,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:1486,16'
          Dst:             ferror
        - Src:             'mod_auth_file.c:1488,69'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1488,60'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1487,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:1491,5'
          Dst:             fclose
        - Src:             'mod_auth_file.c:1495,3'
          Dst:             fclose
        - Src:             'mod_auth_file.c:1502,7'
          Dst:             strcmp
        - Src:             'mod_auth_file.c:1509,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1512,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1517,16'
          Dst:             strncmp
        - Src:             'mod_auth_file.c:1519,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1522,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1527,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:1536,5'
          Dst:             pr_log_debug
    - functionName:    fread
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    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:    ferror
      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:    af_setpwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 993
      functionLinenumberEnd: 1061
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          200
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - fcntl
        - getegid
        - geteuid
        - pr_fsio_fstat
        - pr_fsio_lseek
        - pr_fsio_open
        - pr_fsio_stat
        - pr_gid2str
        - pr_log_debug
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
        - pr_trace_msg
        - pr_uid2str
        - strerror
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1003,14'
          Dst:             pr_fsio_lseek
        - Src:             'mod_auth_file.c:1016,5'
          Dst:             pr_privs_root
        - Src:             'mod_auth_file.c:1017,32'
          Dst:             pr_fsio_open
        - Src:             'mod_auth_file.c:1018,14'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1019,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth_file.c:1022,11'
          Dst:             pr_fsio_stat
        - Src:             'mod_auth_file.c:1026,34'
          Dst:             pr_uid2str
        - Src:             'mod_auth_file.c:1027,11'
          Dst:             pr_gid2str
        - Src:             'mod_auth_file.c:1028,25'
          Dst:             geteuid
        - Src:             'mod_auth_file.c:1028,11'
          Dst:             pr_uid2str
        - Src:             'mod_auth_file.c:1028,51'
          Dst:             getegid
        - Src:             'mod_auth_file.c:1028,37'
          Dst:             pr_gid2str
        - Src:             'mod_auth_file.c:1029,11'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1023,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1034,34'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1032,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1037,7'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1042,9'
          Dst:             pr_fsio_fstat
        - Src:             'mod_auth_file.c:1046,9'
          Dst:             fcntl
        - Src:             'mod_auth_file.c:1050,18'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1050,9'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1047,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1053,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:1058,3'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:1059,3'
          Dst:             __errno_location
    - functionName:    af_getpwpass
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 965
      functionLinenumberEnd: 967
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - af_getpwnam
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:966,24'
          Dst:             af_getpwnam
    - functionName:    af_getpwnam
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 942
      functionLinenumberEnd: 963
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - af_getpwent
        - af_setpwent
        - pr_signals_handle
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:946,7'
          Dst:             af_setpwent
        - Src:             'mod_auth_file.c:950,9'
          Dst:             af_getpwent
        - Src:             'mod_auth_file.c:952,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:954,9'
          Dst:             strcmp
        - Src:             'mod_auth_file.c:959,11'
          Dst:             af_getpwent
    - functionName:    af_getpwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 880
      functionLinenumberEnd: 940
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          155
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - af_allow_pwent
        - af_parse_passwd
        - pr_fsio_gets
        - pr_signals_handle
        - strlen
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:885,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:892,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:897,12'
          Dst:             pr_fsio_gets
        - Src:             'mod_auth_file.c:898,7'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:909,11'
          Dst:             strlen
        - Src:             'mod_auth_file.c:910,13'
          Dst:             af_parse_passwd
        - Src:             'mod_auth_file.c:930,9'
          Dst:             af_allow_pwent
    - functionName:    af_parse_passwd
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          312
      EdgeCount:       53
      CyclomaticComplexity: 15
      functionsReached:
        - pr_log_pri
        - pr_trace_msg
        - sstrncpy
        - strtol
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:271,3'
          Dst:             sstrncpy
        - Src:             'mod_auth_file.c:289,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:301,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:306,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:314,17'
          Dst:             strtol
        - Src:             'mod_auth_file.c:317,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:322,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:331,17'
          Dst:             strtol
        - Src:             'mod_auth_file.c:334,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:339,7'
          Dst:             pr_log_pri
    - functionName:    af_allow_pwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 803
      functionLinenumberEnd: 868
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          261
      EdgeCount:       55
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - pr_log_debug
        - pr_regexp_exec
        - pr_uid2str
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:805,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:815,9'
          Dst:             pr_uid2str
        - Src:             'mod_auth_file.c:816,9'
          Dst:             pr_uid2str
        - Src:             'mod_auth_file.c:813,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:817,7'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:824,9'
          Dst:             pr_uid2str
        - Src:             'mod_auth_file.c:825,9'
          Dst:             pr_uid2str
        - Src:             'mod_auth_file.c:822,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:826,7'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:836,11'
          Dst:             pr_regexp_exec
        - Src:             'mod_auth_file.c:841,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:844,7'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:853,11'
          Dst:             pr_regexp_exec
        - Src:             'mod_auth_file.c:858,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:861,7'
          Dst:             __errno_location
    - functionName:    af_setgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 727
      functionLinenumberEnd: 801
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          215
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - fcntl
        - getegid
        - geteuid
        - pr_fsio_fstat
        - pr_fsio_lseek
        - pr_fsio_open
        - pr_fsio_stat
        - pr_gid2str
        - pr_log_debug
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
        - pr_trace_msg
        - pr_uid2str
        - strerror
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:737,14'
          Dst:             pr_fsio_lseek
        - Src:             'mod_auth_file.c:756,5'
          Dst:             pr_privs_root
        - Src:             'mod_auth_file.c:757,33'
          Dst:             pr_fsio_open
        - Src:             'mod_auth_file.c:758,14'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:759,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth_file.c:762,11'
          Dst:             pr_fsio_stat
        - Src:             'mod_auth_file.c:766,35'
          Dst:             pr_uid2str
        - Src:             'mod_auth_file.c:767,11'
          Dst:             pr_gid2str
        - Src:             'mod_auth_file.c:768,25'
          Dst:             geteuid
        - Src:             'mod_auth_file.c:768,11'
          Dst:             pr_uid2str
        - Src:             'mod_auth_file.c:768,51'
          Dst:             getegid
        - Src:             'mod_auth_file.c:768,37'
          Dst:             pr_gid2str
        - Src:             'mod_auth_file.c:769,11'
          Dst:             strerror
        - Src:             'mod_auth_file.c:763,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:774,35'
          Dst:             strerror
        - Src:             'mod_auth_file.c:772,9'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:777,7'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:782,9'
          Dst:             pr_fsio_fstat
        - Src:             'mod_auth_file.c:786,9'
          Dst:             fcntl
        - Src:             'mod_auth_file.c:790,18'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:790,9'
          Dst:             strerror
        - Src:             'mod_auth_file.c:787,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:793,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:798,3'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:799,3'
          Dst:             __errno_location
    - functionName:    af_getgrnam
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 681
      functionLinenumberEnd: 702
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - af_getgrent
        - af_setgrent
        - pr_signals_handle
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:685,7'
          Dst:             af_setgrent
        - Src:             'mod_auth_file.c:689,9'
          Dst:             af_getgrent
        - Src:             'mod_auth_file.c:691,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:693,9'
          Dst:             strcmp
        - Src:             'mod_auth_file.c:698,11'
          Dst:             af_getgrent
    - functionName:    af_getgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 600
      functionLinenumberEnd: 679
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          200
      EdgeCount:       48
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - _exit
        - af_allow_grent
        - af_getgrentline
        - af_parse_grp
        - pr_log_pri
        - pr_signals_handle
        - pr_trace_msg
        - strchr
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:605,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:622,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:626,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:627,7'
          Dst:             _exit
        - Src:             'mod_auth_file.c:629,5'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:635,12'
          Dst:             af_getgrentline
        - Src:             'mod_auth_file.c:638,7'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:646,12'
          Dst:             strchr
        - Src:             'mod_auth_file.c:651,13'
          Dst:             af_parse_grp
        - Src:             'mod_auth_file.c:670,9'
          Dst:             af_allow_grent
    - functionName:    af_getgrentline
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 364
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          143
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - pr_fsio_gets
        - pr_signals_handle
        - pr_trace_msg
        - realloc
        - strchr
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:377,9'
          Dst:             pr_fsio_gets
        - Src:             'mod_auth_file.c:379,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:382,9'
          Dst:             strchr
        - Src:             'mod_auth_file.c:385,25'
          Dst:             strlen
        - Src:             'mod_auth_file.c:383,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:399,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:402,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:407,17'
          Dst:             realloc
        - Src:             'mod_auth_file.c:420,11'
          Dst:             pr_fsio_gets
    - functionName:    af_parse_grp
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          246
      EdgeCount:       53
      CyclomaticComplexity: 15
      functionsReached:
        - af_getgrmems
        - pr_log_pri
        - pr_trace_msg
        - realloc
        - sstrncpy
        - strchr
        - strlen
        - strrchr
        - strtol
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:455,7'
          Dst:             strlen
        - Src:             'mod_auth_file.c:464,5'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:468,15'
          Dst:             realloc
        - Src:             'mod_auth_file.c:481,3'
          Dst:             sstrncpy
        - Src:             'mod_auth_file.c:483,8'
          Dst:             strrchr
        - Src:             'mod_auth_file.c:491,10'
          Dst:             strchr
        - Src:             'mod_auth_file.c:498,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:508,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:513,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:521,18'
          Dst:             strtol
        - Src:             'mod_auth_file.c:524,7'
          Dst:             pr_trace_msg
        - Src:             'mod_auth_file.c:529,7'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:535,18'
          Dst:             af_getgrmems
    - functionName:    af_allow_grent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 540
      functionLinenumberEnd: 588
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          182
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - pr_gid2str
        - pr_log_debug
        - pr_regexp_exec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:542,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:552,9'
          Dst:             pr_gid2str
        - Src:             'mod_auth_file.c:553,9'
          Dst:             pr_gid2str
        - Src:             'mod_auth_file.c:550,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:554,7'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:561,9'
          Dst:             pr_gid2str
        - Src:             'mod_auth_file.c:562,9'
          Dst:             pr_gid2str
        - Src:             'mod_auth_file.c:559,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:563,7'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:573,11'
          Dst:             pr_regexp_exec
        - Src:             'mod_auth_file.c:578,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:581,7'
          Dst:             __errno_location
    - functionName:    af_getgrmems
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 430
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          104
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - pr_signals_handle
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:434,5'
          Dst:             pr_signals_handle
    - functionName:    af_getgrgid
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 704
      functionLinenumberEnd: 725
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - af_getgrent
        - af_setgrent
        - pr_signals_handle
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:708,7'
          Dst:             af_setgrent
        - Src:             'mod_auth_file.c:712,9'
          Dst:             af_getgrent
        - Src:             'mod_auth_file.c:714,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:721,11'
          Dst:             af_getgrent
    - functionName:    af_endgrent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 590
      functionLinenumberEnd: 597
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          41
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - pr_fsio_close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:593,5'
          Dst:             pr_fsio_close
    - functionName:    af_getpwuid
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 970
      functionLinenumberEnd: 991
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - af_getpwent
        - af_setpwent
        - pr_signals_handle
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:974,7'
          Dst:             af_setpwent
        - Src:             'mod_auth_file.c:978,9'
          Dst:             af_getpwent
        - Src:             'mod_auth_file.c:980,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:987,11'
          Dst:             af_getpwent
    - functionName:    af_endpwent
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 870
      functionLinenumberEnd: 877
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          41
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - pr_fsio_close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:873,5'
          Dst:             pr_fsio_close
    - functionName:    set_authfileoptions
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1607
      functionLinenumberEnd: 1646
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          185
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1613,5'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1613,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1616,3'
          Dst:             check_context
        - Src:             'mod_auth_file.c:1616,3'
          Dst:             get_context_name
        - Src:             'mod_auth_file.c:1616,3'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1616,3'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1616,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1618,7'
          Dst:             add_config_param
        - Src:             'mod_auth_file.c:1621,9'
          Dst:             strcmp
        - Src:             'mod_auth_file.c:1629,16'
          Dst:             strcmp
        - Src:             'mod_auth_file.c:1637,7'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1637,7'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1637,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1642,16'
          Dst:             pcalloc
        - Src:             'mod_auth_file.c:1645,10'
          Dst:             mod_create_ret
    - functionName:    set_authgroupfile
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1649
      functionLinenumberEnd: 1785
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         55
      ICount:          597
      EdgeCount:       75
      CyclomaticComplexity: 22
      functionsReached:
        - __errno_location
        - add_config_param
        - af_check_file
        - af_check_group_syntax
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_privs_relinquish
        - pr_privs_root
        - pr_regexp_alloc
        - pr_regexp_compile
        - pr_regexp_error
        - pr_regexp_free
        - pstrcat
        - pstrdup
        - strcasecmp
        - strchr
        - strerror
        - strtol
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1662,5'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1662,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1665,3'
          Dst:             check_context
        - Src:             'mod_auth_file.c:1665,3'
          Dst:             get_context_name
        - Src:             'mod_auth_file.c:1665,3'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1665,3'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1665,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1669,5'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1669,5'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1669,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1683,5'
          Dst:             pr_privs_root
        - Src:             'mod_auth_file.c:1684,11'
          Dst:             af_check_file
        - Src:             'mod_auth_file.c:1685,14'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1686,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth_file.c:1689,7'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1689,7'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1689,7'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1689,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1695,9'
          Dst:             af_check_group_syntax
        - Src:             'mod_auth_file.c:1696,7'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1696,7'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1696,7'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1696,7'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1696,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1701,7'
          Dst:             add_config_param
        - Src:             'mod_auth_file.c:1703,10'
          Dst:             pcalloc
        - Src:             'mod_auth_file.c:1704,19'
          Dst:             pstrdup
        - Src:             'mod_auth_file.c:1712,11'
          Dst:             strcasecmp
        - Src:             'mod_auth_file.c:1720,15'
          Dst:             strchr
        - Src:             'mod_auth_file.c:1722,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1722,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1727,15'
          Dst:             strtol
        - Src:             'mod_auth_file.c:1729,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1729,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1734,15'
          Dst:             strtol
        - Src:             'mod_auth_file.c:1736,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1736,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1740,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1740,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1748,18'
          Dst:             strcasecmp
        - Src:             'mod_auth_file.c:1753,15'
          Dst:             pr_regexp_alloc
        - Src:             'mod_auth_file.c:1761,15'
          Dst:             pr_regexp_compile
        - Src:             'mod_auth_file.c:1765,11'
          Dst:             pr_regexp_error
        - Src:             'mod_auth_file.c:1766,11'
          Dst:             pr_regexp_free
        - Src:             'mod_auth_file.c:1768,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1768,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1768,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1772,32'
          Dst:             pstrdup
        - Src:             'mod_auth_file.c:1778,9'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1778,9'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1778,9'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1784,10'
          Dst:             mod_create_ret
    - functionName:    set_authuserfile
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1788
      functionLinenumberEnd: 1952
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         63
      ICount:          709
      EdgeCount:       86
      CyclomaticComplexity: 25
      functionsReached:
        - __errno_location
        - add_config_param
        - af_check_file
        - af_check_user_syntax
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pr_privs_relinquish
        - pr_privs_root
        - pr_regexp_alloc
        - pr_regexp_compile
        - pr_regexp_error
        - pr_regexp_free
        - pstrcat
        - pstrdup
        - strcasecmp
        - strchr
        - strerror
        - strtol
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1801,5'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1801,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1804,3'
          Dst:             check_context
        - Src:             'mod_auth_file.c:1804,3'
          Dst:             get_context_name
        - Src:             'mod_auth_file.c:1804,3'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1804,3'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1804,3'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1808,5'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1808,5'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1808,5'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1822,5'
          Dst:             pr_privs_root
        - Src:             'mod_auth_file.c:1823,11'
          Dst:             af_check_file
        - Src:             'mod_auth_file.c:1824,14'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1825,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth_file.c:1828,7'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1828,7'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1828,7'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1828,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1834,9'
          Dst:             af_check_user_syntax
        - Src:             'mod_auth_file.c:1835,7'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1835,7'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1835,7'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1835,7'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1835,7'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1839,7'
          Dst:             add_config_param
        - Src:             'mod_auth_file.c:1841,10'
          Dst:             pcalloc
        - Src:             'mod_auth_file.c:1842,19'
          Dst:             pstrdup
        - Src:             'mod_auth_file.c:1850,11'
          Dst:             strcasecmp
        - Src:             'mod_auth_file.c:1858,15'
          Dst:             strchr
        - Src:             'mod_auth_file.c:1860,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1860,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1865,15'
          Dst:             strtol
        - Src:             'mod_auth_file.c:1867,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1867,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1872,15'
          Dst:             strtol
        - Src:             'mod_auth_file.c:1875,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1875,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1879,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1879,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1887,18'
          Dst:             strcasecmp
        - Src:             'mod_auth_file.c:1892,15'
          Dst:             pr_regexp_alloc
        - Src:             'mod_auth_file.c:1900,15'
          Dst:             pr_regexp_compile
        - Src:             'mod_auth_file.c:1904,11'
          Dst:             pr_regexp_error
        - Src:             'mod_auth_file.c:1905,11'
          Dst:             pr_regexp_free
        - Src:             'mod_auth_file.c:1907,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1907,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1907,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1911,32'
          Dst:             pstrdup
        - Src:             'mod_auth_file.c:1915,18'
          Dst:             strcasecmp
        - Src:             'mod_auth_file.c:1920,15'
          Dst:             pr_regexp_alloc
        - Src:             'mod_auth_file.c:1928,15'
          Dst:             pr_regexp_compile
        - Src:             'mod_auth_file.c:1932,11'
          Dst:             pr_regexp_error
        - Src:             'mod_auth_file.c:1933,11'
          Dst:             pr_regexp_free
        - Src:             'mod_auth_file.c:1935,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1935,11'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1935,11'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1939,32'
          Dst:             pstrdup
        - Src:             'mod_auth_file.c:1945,9'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1945,9'
          Dst:             pstrcat
        - Src:             'mod_auth_file.c:1945,9'
          Dst:             mod_create_ret
        - Src:             'mod_auth_file.c:1951,10'
          Dst:             mod_create_ret
    - functionName:    af_check_file
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          253
      EdgeCount:       45
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - af_check_parent_dir
        - dir_abs_path
        - lstat
        - pr_fsio_readlink
        - pr_log_debug
        - pr_log_pri
        - stat
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:152,9'
          Dst:             lstat
        - Src:             'mod_auth_file.c:154,18'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:157,19'
          Dst:             strerror
        - Src:             'mod_auth_file.c:156,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:159,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:169,11'
          Dst:             af_check_parent_dir
        - Src:             'mod_auth_file.c:178,11'
          Dst:             pr_fsio_readlink
        - Src:             'mod_auth_file.c:184,14'
          Dst:             dir_abs_path
        - Src:             'mod_auth_file.c:190,11'
          Dst:             stat
        - Src:             'mod_auth_file.c:192,20'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:195,26'
          Dst:             strerror
        - Src:             'mod_auth_file.c:194,7'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:197,7'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:206,24'
          Dst:             strerror
        - Src:             'mod_auth_file.c:205,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:208,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:219,46'
          Dst:             strerror
        - Src:             'mod_auth_file.c:217,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:221,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:231,46'
          Dst:             strerror
        - Src:             'mod_auth_file.c:229,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:233,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:238,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:245,9'
          Dst:             af_check_parent_dir
    - functionName:    af_check_user_syntax
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1107
      functionLinenumberEnd: 1150
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          116
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - af_getpwent
        - pcalloc
        - pr_fsio_close
        - pr_fsio_open
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
        - pr_signals_handle
        - pstrdup
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1112,18'
          Dst:             pcalloc
        - Src:             'mod_auth_file.c:1113,27'
          Dst:             pstrdup
        - Src:             'mod_auth_file.c:1115,3'
          Dst:             pr_privs_root
        - Src:             'mod_auth_file.c:1116,30'
          Dst:             pr_fsio_open
        - Src:             'mod_auth_file.c:1117,12'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1118,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth_file.c:1123,30'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1121,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1125,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1130,9'
          Dst:             af_getpwent
        - Src:             'mod_auth_file.c:1132,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:1134,11'
          Dst:             af_getpwent
        - Src:             'mod_auth_file.c:1137,3'
          Dst:             pr_fsio_close
        - Src:             'mod_auth_file.c:1143,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1145,5'
          Dst:             __errno_location
    - functionName:    af_check_parent_dir
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          102
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - pr_log_debug
        - pstrndup
        - stat
        - strerror
        - strrchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:110,9'
          Dst:             strrchr
        - Src:             'mod_auth_file.c:112,16'
          Dst:             pstrndup
        - Src:             'mod_auth_file.c:118,9'
          Dst:             stat
        - Src:             'mod_auth_file.c:120,18'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:124,7'
          Dst:             strerror
        - Src:             'mod_auth_file.c:122,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:126,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:135,45'
          Dst:             strerror
        - Src:             'mod_auth_file.c:133,5'
          Dst:             pr_log_debug
        - Src:             'mod_auth_file.c:137,5'
          Dst:             __errno_location
    - functionName:    af_check_group_syntax
      functionSourceFile: '/src/proftpd/modules/mod_auth_file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1063
      functionLinenumberEnd: 1105
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          115
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - af_getgrent
        - pcalloc
        - pr_fsio_close
        - pr_fsio_open
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
        - pr_signals_handle
        - pstrdup
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_auth_file.c:1068,19'
          Dst:             pcalloc
        - Src:             'mod_auth_file.c:1069,28'
          Dst:             pstrdup
        - Src:             'mod_auth_file.c:1071,3'
          Dst:             pr_privs_root
        - Src:             'mod_auth_file.c:1072,31'
          Dst:             pr_fsio_open
        - Src:             'mod_auth_file.c:1073,12'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1074,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_auth_file.c:1079,31'
          Dst:             strerror
        - Src:             'mod_auth_file.c:1077,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1081,5'
          Dst:             __errno_location
        - Src:             'mod_auth_file.c:1085,9'
          Dst:             af_getgrent
        - Src:             'mod_auth_file.c:1087,5'
          Dst:             pr_signals_handle
        - Src:             'mod_auth_file.c:1089,11'
          Dst:             af_getgrent
        - Src:             'mod_auth_file.c:1092,3'
          Dst:             pr_fsio_close
        - Src:             'mod_auth_file.c:1098,5'
          Dst:             pr_log_pri
        - Src:             'mod_auth_file.c:1100,5'
          Dst:             __errno_location
    - functionName:    ctrls_listen
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 597
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          231
      EdgeCount:       26
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - bind
        - chmod
        - close
        - fcntl
        - listen
        - pr_fs_get_usable_fd
        - pr_log_pri
        - pr_signals_block
        - pr_signals_unblock
        - pr_trace_msg
        - socket
        - sstrncpy
        - strerror
        - unlink
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:468,3'
          Dst:             pr_signals_block
        - Src:             'mod_ctrls.c:471,12'
          Dst:             socket
        - Src:             'mod_ctrls.c:473,18'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:475,5'
          Dst:             pr_signals_unblock
        - Src:             'mod_ctrls.c:477,53'
          Dst:             strerror
        - Src:             'mod_ctrls.c:476,5'
          Dst:             pr_log_pri
        - Src:             'mod_ctrls.c:479,5'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:489,11'
          Dst:             pr_fs_get_usable_fd
        - Src:             'mod_ctrls.c:491,20'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:493,7'
          Dst:             pr_signals_unblock
        - Src:             'mod_ctrls.c:495,49'
          Dst:             strerror
        - Src:             'mod_ctrls.c:494,7'
          Dst:             pr_log_pri
        - Src:             'mod_ctrls.c:496,14'
          Dst:             close
        - Src:             'mod_ctrls.c:498,7'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:502,12'
          Dst:             close
        - Src:             'mod_ctrls.c:506,7'
          Dst:             fcntl
        - Src:             'mod_ctrls.c:507,18'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:509,5'
          Dst:             pr_signals_unblock
        - Src:             'mod_ctrls.c:512,7'
          Dst:             strerror
        - Src:             'mod_ctrls.c:510,5'
          Dst:             pr_log_pri
        - Src:             'mod_ctrls.c:514,12'
          Dst:             close
        - Src:             'mod_ctrls.c:515,5'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:522,10'
          Dst:             unlink
        - Src:             'mod_ctrls.c:528,3'
          Dst:             sstrncpy
        - Src:             'mod_ctrls.c:533,3'
          Dst:             pr_trace_msg
        - Src:             'mod_ctrls.c:535,7'
          Dst:             bind
        - Src:             'mod_ctrls.c:536,18'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:538,5'
          Dst:             pr_signals_unblock
        - Src:             'mod_ctrls.c:539,12'
          Dst:             close
        - Src:             'mod_ctrls.c:541,5'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:543,54'
          Dst:             strerror
        - Src:             'mod_ctrls.c:542,5'
          Dst:             pr_log_pri
        - Src:             'mod_ctrls.c:545,7'
          Dst:             strerror
        - Src:             'mod_ctrls.c:544,5'
          Dst:             pr_trace_msg
        - Src:             'mod_ctrls.c:547,5'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:552,7'
          Dst:             listen
        - Src:             'mod_ctrls.c:553,18'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:555,5'
          Dst:             pr_signals_unblock
        - Src:             'mod_ctrls.c:556,12'
          Dst:             close
        - Src:             'mod_ctrls.c:558,5'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:561,7'
          Dst:             strerror
        - Src:             'mod_ctrls.c:559,5'
          Dst:             pr_log_pri
        - Src:             'mod_ctrls.c:563,22'
          Dst:             strerror
        - Src:             'mod_ctrls.c:562,5'
          Dst:             pr_trace_msg
        - Src:             'mod_ctrls.c:565,5'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:579,7'
          Dst:             chmod
        - Src:             'mod_ctrls.c:580,18'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:582,5'
          Dst:             pr_signals_unblock
        - Src:             'mod_ctrls.c:583,12'
          Dst:             close
        - Src:             'mod_ctrls.c:585,5'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:587,52'
          Dst:             strerror
        - Src:             'mod_ctrls.c:586,5'
          Dst:             pr_log_pri
        - Src:             'mod_ctrls.c:589,7'
          Dst:             strerror
        - Src:             'mod_ctrls.c:588,5'
          Dst:             pr_trace_msg
        - Src:             'mod_ctrls.c:591,5'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:595,3'
          Dst:             pr_signals_unblock
    - functionName:    ctrls_closelog
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          24
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_ctrls_set_logfd
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:97,5'
          Dst:             pr_ctrls_set_logfd
    - functionName:    ctrls_postparse_ev
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1239
      functionLinenumberEnd: 1254
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ctrls_listen
        - ctrls_timer_cb
        - pr_privs_relinquish
        - pr_privs_root
        - pr_timer_add
        - pr_timer_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:1246,3'
          Dst:             pr_privs_root
        - Src:             'mod_ctrls.c:1247,18'
          Dst:             ctrls_listen
        - Src:             'mod_ctrls.c:1248,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_ctrls.c:1251,3'
          Dst:             pr_timer_remove
        - Src:             'mod_ctrls.c:1252,3'
          Dst:             pr_timer_add
        - Src:             'mod_ctrls.c:1252,3'
          Dst:             ctrls_timer_cb
    - functionName:    ctrls_timer_cb
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 741
      functionLinenumberEnd: 787
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          86
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - chown
        - close
        - ctrls_recv_cl_reqs
        - ctrls_send_cl_resps
        - pr_alarms_block
        - pr_alarms_unblock
        - pr_ctrls_reset
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
        - pr_run_ctrls
        - strerror
        - unlink
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:746,12'
          Dst:             close
        - Src:             'mod_ctrls.c:751,14'
          Dst:             unlink
        - Src:             'mod_ctrls.c:759,5'
          Dst:             pr_privs_root
        - Src:             'mod_ctrls.c:760,9'
          Dst:             chown
        - Src:             'mod_ctrls.c:763,18'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:763,9'
          Dst:             strerror
        - Src:             'mod_ctrls.c:761,7'
          Dst:             pr_log_pri
        - Src:             'mod_ctrls.c:765,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_ctrls.c:771,3'
          Dst:             pr_alarms_block
        - Src:             'mod_ctrls.c:774,3'
          Dst:             ctrls_recv_cl_reqs
        - Src:             'mod_ctrls.c:777,3'
          Dst:             pr_run_ctrls
        - Src:             'mod_ctrls.c:780,3'
          Dst:             ctrls_send_cl_resps
        - Src:             'mod_ctrls.c:783,3'
          Dst:             pr_ctrls_reset
        - Src:             'mod_ctrls.c:785,3'
          Dst:             pr_alarms_unblock
    - functionName:    ctrls_recv_cl_reqs
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 599
      functionLinenumberEnd: 705
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         38
      ICount:          247
      EdgeCount:       51
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - close
        - ctrls_add_cl
        - ctrls_cls_read
        - ctrls_setblock
        - ctrls_setnonblock
        - pr_ctrls_accept
        - pr_ctrls_check_group_acl
        - pr_ctrls_check_user_acl
        - pr_ctrls_log
        - pr_signals_handle
        - select
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:615,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ctrls.c:625,11'
          Dst:             select
        - Src:             'mod_ctrls.c:626,14'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:630,7'
          Dst:             ctrls_cls_read
        - Src:             'mod_ctrls.c:637,9'
          Dst:             pr_signals_handle
        - Src:             'mod_ctrls.c:642,56'
          Dst:             strerror
        - Src:             'mod_ctrls.c:641,7'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:644,7'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:650,11'
          Dst:             ctrls_setnonblock
        - Src:             'mod_ctrls.c:651,18'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:655,11'
          Dst:             strerror
        - Src:             'mod_ctrls.c:653,9'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:657,9'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:662,15'
          Dst:             pr_ctrls_accept
        - Src:             'mod_ctrls.c:664,16'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:669,55'
          Dst:             strerror
        - Src:             'mod_ctrls.c:668,11'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:676,11'
          Dst:             ctrls_setblock
        - Src:             'mod_ctrls.c:679,20'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:679,11'
          Dst:             strerror
        - Src:             'mod_ctrls.c:677,9'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:683,11'
          Dst:             ctrls_setnonblock
        - Src:             'mod_ctrls.c:686,20'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:686,11'
          Dst:             strerror
        - Src:             'mod_ctrls.c:684,9'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:687,16'
          Dst:             close
        - Src:             'mod_ctrls.c:691,11'
          Dst:             pr_ctrls_check_user_acl
        - Src:             'mod_ctrls.c:692,11'
          Dst:             pr_ctrls_check_group_acl
        - Src:             'mod_ctrls.c:697,7'
          Dst:             ctrls_add_cl
        - Src:             'mod_ctrls.c:702,3'
          Dst:             ctrls_cls_read
    - functionName:    ctrls_send_cl_resps
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 707
      functionLinenumberEnd: 712
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ctrls_cls_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:710,3'
          Dst:             ctrls_cls_write
    - functionName:    ctrls_cls_write
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 454
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         49
      ICount:          391
      EdgeCount:       64
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - ctrls_del_cl
        - pr_ctrls_log
        - pr_ctrls_send_response
        - pr_signals_handle
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:349,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ctrls.c:356,11'
          Dst:             pr_ctrls_send_response
        - Src:             'mod_ctrls.c:360,47'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:360,38'
          Dst:             strerror
        - Src:             'mod_ctrls.c:358,9'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:363,9'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:371,11'
          Dst:             pr_ctrls_send_response
        - Src:             'mod_ctrls.c:375,47'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:375,38'
          Dst:             strerror
        - Src:             'mod_ctrls.c:373,9'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:378,9'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:385,11'
          Dst:             pr_ctrls_send_response
        - Src:             'mod_ctrls.c:389,47'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:389,38'
          Dst:             strerror
        - Src:             'mod_ctrls.c:387,9'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:392,9'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:409,19'
          Dst:             pr_ctrls_send_response
        - Src:             'mod_ctrls.c:415,69'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:415,60'
          Dst:             strerror
        - Src:             'mod_ctrls.c:413,17'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:424,17'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:429,19'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:437,15'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:446,5'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:450,5'
          Dst:             ctrls_del_cl
    - functionName:    ctrls_del_cl
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - close
        - destroy_pool
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:236,10'
          Dst:             close
        - Src:             'mod_ctrls.c:239,3'
          Dst:             destroy_pool
    - functionName:    ctrls_cls_read
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         29
      ICount:          185
      EdgeCount:       35
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pr_ctrls_log
        - pr_ctrls_recv_request
        - pr_signals_handle
        - pstrcat
        - strerror
      functionUses:    2
      BranchProfiles:
        - Branch String:   'mod_ctrls.c:262,7'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_ctrls.c:256,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ctrls.c:258,11'
          Dst:             pr_ctrls_recv_request
        - Src:             'mod_ctrls.c:259,14'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:272,11'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:291,69'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:291,60'
          Dst:             strerror
        - Src:             'mod_ctrls.c:290,11'
          Dst:             pr_ctrls_log
        - Src:             'mod_ctrls.c:321,21'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:324,9'
          Dst:             pr_ctrls_log
    - functionName:    ctrls_setnonblock
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 728
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - fcntl
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:733,3'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:735,11'
          Dst:             fcntl
        - Src:             'mod_ctrls.c:736,9'
          Dst:             fcntl
    - functionName:    ctrls_setblock
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 715
      functionLinenumberEnd: 725
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - fcntl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:720,3'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:722,11'
          Dst:             fcntl
        - Src:             'mod_ctrls.c:723,9'
          Dst:             fcntl
    - functionName:    ctrls_add_cl
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - int
        - int
        - int
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          73
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ctrls_new_cl
        - pr_auth_gid2name
        - pr_auth_uid2name
        - pr_ctrls_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:205,8'
          Dst:             ctrls_new_cl
        - Src:             'mod_ctrls.c:209,17'
          Dst:             pr_auth_uid2name
        - Src:             'mod_ctrls.c:211,18'
          Dst:             pr_auth_gid2name
        - Src:             'mod_ctrls.c:215,3'
          Dst:             pr_ctrls_log
    - functionName:    ctrls_new_cl
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          122
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - make_array
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:150,15'
          Dst:             make_sub_pool
        - Src:             'mod_ctrls.c:151,5'
          Dst:             pr_pool_tag
        - Src:             'mod_ctrls.c:153,33'
          Dst:             pcalloc
        - Src:             'mod_ctrls.c:162,25'
          Dst:             make_array
        - Src:             'mod_ctrls.c:173,15'
          Dst:             make_sub_pool
        - Src:             'mod_ctrls.c:174,5'
          Dst:             pr_pool_tag
        - Src:             'mod_ctrls.c:176,28'
          Dst:             pcalloc
        - Src:             'mod_ctrls.c:185,20'
          Dst:             make_array
    - functionName:    ctrls_init
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1313
      functionLinenumberEnd: 1343
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          93
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - ctrls_postparse_ev
        - ctrls_restart_ev
        - ctrls_shutdown_ev
        - make_sub_pool
        - pcalloc
        - pr_ctrls_init_acl
        - pr_ctrls_register
        - pr_event_register
        - pr_log_pri
        - pr_pool_tag
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:1317,16'
          Dst:             make_sub_pool
        - Src:             'mod_ctrls.c:1318,3'
          Dst:             pr_pool_tag
        - Src:             'mod_ctrls.c:1324,31'
          Dst:             pcalloc
        - Src:             'mod_ctrls.c:1325,5'
          Dst:             pr_ctrls_init_acl
        - Src:             'mod_ctrls.c:1327,9'
          Dst:             pr_ctrls_register
        - Src:             'mod_ctrls.c:1331,46'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:1331,37'
          Dst:             strerror
        - Src:             'mod_ctrls.c:1329,7'
          Dst:             pr_log_pri
        - Src:             'mod_ctrls.c:1339,3'
          Dst:             pr_event_register
        - Src:             'mod_ctrls.c:1339,3'
          Dst:             ctrls_restart_ev
        - Src:             'mod_ctrls.c:1340,3'
          Dst:             pr_event_register
        - Src:             'mod_ctrls.c:1340,3'
          Dst:             ctrls_shutdown_ev
        - Src:             'mod_ctrls.c:1341,3'
          Dst:             pr_event_register
        - Src:             'mod_ctrls.c:1341,3'
          Dst:             ctrls_postparse_ev
    - functionName:    ctrls_sess_init
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1346
      functionLinenumberEnd: 1358
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - close
        - ctrls_restart_ev
        - pr_event_unregister
        - pr_timer_remove
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:1350,3'
          Dst:             pr_timer_remove
        - Src:             'mod_ctrls.c:1352,3'
          Dst:             pr_event_unregister
        - Src:             'mod_ctrls.c:1352,3'
          Dst:             ctrls_restart_ev
        - Src:             'mod_ctrls.c:1355,3'
          Dst:             close
    - functionName:    ctrls_restart_ev
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1256
      functionLinenumberEnd: 1307
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          131
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - close
        - ctrls_closelog
        - destroy_pool
        - make_sub_pool
        - pcalloc
        - pr_alarms_block
        - pr_alarms_unblock
        - pr_ctrls_init_acl
        - pr_pool_tag
        - pr_timer_remove
        - pr_trace_msg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:1260,3'
          Dst:             pr_alarms_block
        - Src:             'mod_ctrls.c:1268,16'
          Dst:             close
        - Src:             'mod_ctrls.c:1278,3'
          Dst:             pr_trace_msg
        - Src:             'mod_ctrls.c:1280,10'
          Dst:             close
        - Src:             'mod_ctrls.c:1283,3'
          Dst:             ctrls_closelog
        - Src:             'mod_ctrls.c:1287,5'
          Dst:             destroy_pool
        - Src:             'mod_ctrls.c:1294,16'
          Dst:             make_sub_pool
        - Src:             'mod_ctrls.c:1295,3'
          Dst:             pr_pool_tag
        - Src:             'mod_ctrls.c:1301,31'
          Dst:             pcalloc
        - Src:             'mod_ctrls.c:1302,5'
          Dst:             pr_ctrls_init_acl
        - Src:             'mod_ctrls.c:1305,3'
          Dst:             pr_timer_remove
        - Src:             'mod_ctrls.c:1306,3'
          Dst:             pr_alarms_unblock
    - functionName:    ctrls_handle_help
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 797
      functionLinenumberEnd: 818
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          62
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_ctrls_add_response
        - pr_get_registered_actions
        - qsort
        - respcmp
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:804,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:808,7'
          Dst:             pr_get_registered_actions
        - Src:             'mod_ctrls.c:809,71'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:809,62'
          Dst:             strerror
        - Src:             'mod_ctrls.c:809,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:814,3'
          Dst:             qsort
        - Src:             'mod_ctrls.c:814,3'
          Dst:             respcmp
    - functionName:    ctrls_handle_insctrl
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 821
      functionLinenumberEnd: 866
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          122
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pr_ctrls_add_response
        - pr_ctrls_check_acl
        - pr_module_get
        - pr_set_registered_actions
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:830,7'
          Dst:             pr_ctrls_check_acl
        - Src:             'mod_ctrls.c:833,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:839,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:847,9'
          Dst:             pr_module_get
        - Src:             'mod_ctrls.c:850,9'
          Dst:             pr_set_registered_actions
        - Src:             'mod_ctrls.c:851,12'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:855,7'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:860,16'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:860,7'
          Dst:             strerror
        - Src:             'mod_ctrls.c:859,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:864,3'
          Dst:             pr_ctrls_add_response
    - functionName:    ctrls_handle_lsctrl
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 869
      functionLinenumberEnd: 898
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          74
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - pr_ctrls_add_response
        - pr_ctrls_check_acl
        - pr_get_registered_actions
        - qsort
        - respcmp
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:876,7'
          Dst:             pr_ctrls_check_acl
        - Src:             'mod_ctrls.c:879,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:884,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:888,7'
          Dst:             pr_get_registered_actions
        - Src:             'mod_ctrls.c:889,71'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:889,62'
          Dst:             strerror
        - Src:             'mod_ctrls.c:889,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:894,3'
          Dst:             qsort
        - Src:             'mod_ctrls.c:894,3'
          Dst:             respcmp
    - functionName:    ctrls_handle_rmctrl
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 901
      functionLinenumberEnd: 971
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          181
      EdgeCount:       38
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - close
        - pr_ctrls_add_response
        - pr_ctrls_check_acl
        - pr_module_get
        - pr_set_registered_actions
        - strcmp
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:910,7'
          Dst:             pr_ctrls_check_acl
        - Src:             'mod_ctrls.c:913,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:919,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:926,7'
          Dst:             strcmp
        - Src:             'mod_ctrls.c:927,7'
          Dst:             strcmp
        - Src:             'mod_ctrls.c:928,7'
          Dst:             strcmp
        - Src:             'mod_ctrls.c:929,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:937,9'
          Dst:             pr_module_get
        - Src:             'mod_ctrls.c:940,9'
          Dst:             pr_set_registered_actions
        - Src:             'mod_ctrls.c:941,12'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:945,7'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:950,7'
          Dst:             strerror
        - Src:             'mod_ctrls.c:949,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:954,7'
          Dst:             strcmp
        - Src:             'mod_ctrls.c:955,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:961,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:962,5'
          Dst:             pr_ctrls_add_response
        - Src:             'mod_ctrls.c:964,12'
          Dst:             close
    - functionName:    respcmp
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 792
      functionLinenumberEnd: 793
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:793,10'
          Dst:             strcmp
    - functionName:    ctrls_shutdown_ev
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1215
      functionLinenumberEnd: 1237
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          87
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - close
        - unlink
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:1225,16'
          Dst:             close
        - Src:             'mod_ctrls.c:1231,10'
          Dst:             close
        - Src:             'mod_ctrls.c:1235,10'
          Dst:             unlink
    - functionName:    set_ctrlsacls
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 977
      functionLinenumberEnd: 1012
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          229
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_ctrls_parse_acl
        - pr_ctrls_set_module_acls2
        - pstrcat
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:982,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:982,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:983,3'
          Dst:             check_context
        - Src:             'mod_ctrls.c:983,3'
          Dst:             get_context_name
        - Src:             'mod_ctrls.c:983,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:983,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:983,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:990,13'
          Dst:             pr_ctrls_parse_acl
        - Src:             'mod_ctrls.c:993,7'
          Dst:             strcmp
        - Src:             'mod_ctrls.c:994,7'
          Dst:             strcmp
        - Src:             'mod_ctrls.c:995,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:995,5'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:999,7'
          Dst:             strcmp
        - Src:             'mod_ctrls.c:1000,7'
          Dst:             strcmp
        - Src:             'mod_ctrls.c:1001,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1001,5'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1004,9'
          Dst:             pr_ctrls_set_module_acls2
        - Src:             'mod_ctrls.c:1007,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1007,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1007,5'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1011,10'
          Dst:             mod_create_ret
    - functionName:    set_ctrlsauthfreshness
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1015
      functionLinenumberEnd: 1028
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          117
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - atoi
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:1018,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1018,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1019,3'
          Dst:             check_context
        - Src:             'mod_ctrls.c:1019,3'
          Dst:             get_context_name
        - Src:             'mod_ctrls.c:1019,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1019,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1019,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1021,15'
          Dst:             atoi
        - Src:             'mod_ctrls.c:1023,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1023,5'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1027,10'
          Dst:             mod_create_ret
    - functionName:    set_ctrlsengine
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1030
      functionLinenumberEnd: 1043
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          114
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:1033,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1033,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1034,3'
          Dst:             check_context
        - Src:             'mod_ctrls.c:1034,3'
          Dst:             get_context_name
        - Src:             'mod_ctrls.c:1034,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1034,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1034,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1036,12'
          Dst:             get_boolean
        - Src:             'mod_ctrls.c:1038,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1038,5'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1042,10'
          Dst:             mod_create_ret
    - functionName:    set_ctrlsinterval
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1046
      functionLinenumberEnd: 1065
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          120
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - atoi
        - check_context
        - ctrls_timer_cb
        - get_context_name
        - mod_create_ret
        - pr_timer_add
        - pr_timer_remove
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:1049,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1049,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1050,3'
          Dst:             check_context
        - Src:             'mod_ctrls.c:1050,3'
          Dst:             get_context_name
        - Src:             'mod_ctrls.c:1050,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1050,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1050,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1052,11'
          Dst:             atoi
        - Src:             'mod_ctrls.c:1054,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1054,5'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1060,3'
          Dst:             pr_timer_remove
        - Src:             'mod_ctrls.c:1061,3'
          Dst:             pr_timer_add
        - Src:             'mod_ctrls.c:1061,3'
          Dst:             ctrls_timer_cb
        - Src:             'mod_ctrls.c:1064,10'
          Dst:             mod_create_ret
    - functionName:    set_ctrlslog
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1067
      functionLinenumberEnd: 1089
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          163
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - check_context
        - ctrls_openlog
        - get_context_name
        - mod_create_ret
        - pstrcat
        - pstrdup
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:1070,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1070,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1071,3'
          Dst:             check_context
        - Src:             'mod_ctrls.c:1071,3'
          Dst:             get_context_name
        - Src:             'mod_ctrls.c:1071,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1071,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1071,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1073,19'
          Dst:             pstrdup
        - Src:             'mod_ctrls.c:1075,9'
          Dst:             ctrls_openlog
        - Src:             'mod_ctrls.c:1078,7'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:1078,7'
          Dst:             strerror
        - Src:             'mod_ctrls.c:1078,7'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1078,7'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1078,7'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1083,7'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1083,7'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1083,7'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1088,10'
          Dst:             mod_create_ret
    - functionName:    set_ctrlsmaxclients
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1092
      functionLinenumberEnd: 1105
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          117
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - atoi
        - check_context
        - get_context_name
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:1095,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1095,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1096,3'
          Dst:             check_context
        - Src:             'mod_ctrls.c:1096,3'
          Dst:             get_context_name
        - Src:             'mod_ctrls.c:1096,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1096,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1096,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1098,14'
          Dst:             atoi
        - Src:             'mod_ctrls.c:1100,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1100,5'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1104,10'
          Dst:             mod_create_ret
    - functionName:    set_ctrlssocket
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1108
      functionLinenumberEnd: 1134
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          151
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - check_context
        - close
        - get_context_name
        - mod_create_ret
        - pr_trace_msg
        - pstrcat
        - pstrdup
        - strcmp
        - unlink
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:1111,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1111,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1112,3'
          Dst:             check_context
        - Src:             'mod_ctrls.c:1112,3'
          Dst:             get_context_name
        - Src:             'mod_ctrls.c:1112,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1112,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1112,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1116,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1116,5'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1121,5'
          Dst:             pr_trace_msg
        - Src:             'mod_ctrls.c:1123,12'
          Dst:             unlink
        - Src:             'mod_ctrls.c:1124,12'
          Dst:             close
        - Src:             'mod_ctrls.c:1129,7'
          Dst:             strcmp
        - Src:             'mod_ctrls.c:1130,23'
          Dst:             pstrdup
        - Src:             'mod_ctrls.c:1133,10'
          Dst:             mod_create_ret
    - functionName:    set_ctrlssocketacl
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1137
      functionLinenumberEnd: 1169
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          245
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_ctrls_init_acl
        - pr_ctrls_set_group_acl
        - pr_ctrls_set_user_acl
        - pstrcat
        - strcasecmp
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:1138,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1138,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1139,3'
          Dst:             check_context
        - Src:             'mod_ctrls.c:1139,3'
          Dst:             get_context_name
        - Src:             'mod_ctrls.c:1139,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1139,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1139,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1141,3'
          Dst:             pr_ctrls_init_acl
        - Src:             'mod_ctrls.c:1144,7'
          Dst:             strcasecmp
        - Src:             'mod_ctrls.c:1145,7'
          Dst:             strcasecmp
        - Src:             'mod_ctrls.c:1146,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1146,5'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1150,7'
          Dst:             strcasecmp
        - Src:             'mod_ctrls.c:1151,9'
          Dst:             pr_ctrls_set_user_acl
        - Src:             'mod_ctrls.c:1153,7'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:1153,7'
          Dst:             strerror
        - Src:             'mod_ctrls.c:1153,7'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1153,7'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1153,7'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1157,14'
          Dst:             strcasecmp
        - Src:             'mod_ctrls.c:1158,9'
          Dst:             pr_ctrls_set_group_acl
        - Src:             'mod_ctrls.c:1160,7'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:1160,7'
          Dst:             strerror
        - Src:             'mod_ctrls.c:1160,7'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1160,7'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1160,7'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1165,5'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1165,5'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1168,10'
          Dst:             mod_create_ret
    - functionName:    set_ctrlssocketowner
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1172
      functionLinenumberEnd: 1210
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          199
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - check_context
        - get_context_name
        - mod_create_ret
        - pr_auth_name2gid
        - pr_auth_name2uid
        - pr_log_debug
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:1176,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1176,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1177,3'
          Dst:             check_context
        - Src:             'mod_ctrls.c:1177,3'
          Dst:             get_context_name
        - Src:             'mod_ctrls.c:1177,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1177,3'
          Dst:             pstrcat
        - Src:             'mod_ctrls.c:1177,3'
          Dst:             mod_create_ret
        - Src:             'mod_ctrls.c:1179,9'
          Dst:             pr_auth_name2uid
        - Src:             'mod_ctrls.c:1181,9'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:1182,7'
          Dst:             pr_log_debug
        - Src:             'mod_ctrls.c:1186,7'
          Dst:             pr_log_debug
        - Src:             'mod_ctrls.c:1194,9'
          Dst:             pr_auth_name2gid
        - Src:             'mod_ctrls.c:1196,9'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:1197,7'
          Dst:             pr_log_debug
        - Src:             'mod_ctrls.c:1201,7'
          Dst:             pr_log_debug
        - Src:             'mod_ctrls.c:1209,10'
          Dst:             mod_create_ret
    - functionName:    ctrls_openlog
      functionSourceFile: '/src/proftpd/modules/mod_ctrls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         18
      ICount:          87
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_ctrls_set_logfd
        - pr_log_openfile
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ctrls.c:112,3'
          Dst:             pr_privs_root
        - Src:             'mod_ctrls.c:113,9'
          Dst:             pr_log_openfile
        - Src:             'mod_ctrls.c:114,12'
          Dst:             __errno_location
        - Src:             'mod_ctrls.c:115,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_ctrls.c:118,5'
          Dst:             pr_ctrls_set_logfd
        - Src:             'mod_ctrls.c:124,9'
          Dst:             strerror
        - Src:             'mod_ctrls.c:122,7'
          Dst:             pr_log_pri
        - Src:             'mod_ctrls.c:127,7'
          Dst:             pr_log_pri
        - Src:             'mod_ctrls.c:132,7'
          Dst:             pr_log_pri
    - functionName:    tab_key_free
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - pr_signals_handle
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:227,9'
          Dst:             pr_signals_handle
    - functionName:    table_handling_signal
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1316
      functionLinenumberEnd: 1325
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:1323,3'
          Dst:             __errno_location
    - functionName:    table_printf
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1202
      functionLinenumberEnd: 1213
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_trace_msg
        - pr_vsnprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:1208,3'
          Dst:             pr_vsnprintf
        - Src:             'table.c:1212,3'
          Dst:             pr_trace_msg
    - functionName:    pr_table_dump
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1263
      functionLinenumberEnd: 1314
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          221
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - pr_signals_handle
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:1305,9'
          Dst:             pr_signals_handle
    - functionName:    tab_copy_cb
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1228
      functionLinenumberEnd: 1244
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_table_kadd
        - pr_table_kexists
        - pr_table_kset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:1234,9'
          Dst:             pr_table_kexists
        - Src:             'table.c:1236,11'
          Dst:             pr_table_kset
        - Src:             'table.c:1240,11'
          Dst:             pr_table_kadd
    - functionName:    pr_table_kexists
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 540
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          234
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:488,5'
          Dst:             __errno_location
        - Src:             'table.c:493,5'
          Dst:             __errno_location
        - Src:             'table.c:538,3'
          Dst:             __errno_location
    - functionName:    pr_table_kset
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 713
      functionLinenumberEnd: 797
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          332
      EdgeCount:       69
      CyclomaticComplexity: 20
      functionsReached:
        - __errno_location
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:722,5'
          Dst:             __errno_location
        - Src:             'table.c:727,5'
          Dst:             __errno_location
        - Src:             'table.c:758,5'
          Dst:             __errno_location
        - Src:             'table.c:773,9'
          Dst:             __errno_location
        - Src:             'table.c:795,3'
          Dst:             __errno_location
    - functionName:    pr_table_kadd
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 480
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          261
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - tab_entry_alloc
        - tab_entry_insert
        - tab_key_alloc
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:402,5'
          Dst:             __errno_location
        - Src:             'table.c:408,5'
          Dst:             __errno_location
        - Src:             'table.c:421,7'
          Dst:             tab_entry_alloc
        - Src:             'table.c:450,11'
          Dst:             __errno_location
        - Src:             'table.c:468,9'
          Dst:             tab_key_alloc
        - Src:             'table.c:478,3'
          Dst:             tab_entry_insert
    - functionName:    tab_entry_alloc
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pcalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:256,7'
          Dst:             pcalloc
    - functionName:    tab_key_alloc
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pcalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:211,7'
          Dst:             pcalloc
    - functionName:    tab_entry_insert
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          74
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_table_copy
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1247
      functionLinenumberEnd: 1261
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_table_do
        - tab_copy_cb
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:1252,5'
          Dst:             __errno_location
        - Src:             'table.c:1259,9'
          Dst:             pr_table_do
        - Src:             'table.c:1259,9'
          Dst:             tab_copy_cb
    - functionName:    pr_table_do
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 893
      functionLinenumberEnd: 933
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          154
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - pr_signals_handle
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:898,5'
          Dst:             __errno_location
        - Src:             'table.c:917,9'
          Dst:             pr_signals_handle
        - Src:             'table.c:924,9'
          Dst:             __errno_location
    - functionName:    pr_table_load
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1215
      functionLinenumberEnd: 1225
      functionDepth:   0
      returnType:      float
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:1219,5'
          Dst:             __errno_location
    - functionName:    pr_table_pcalloc
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1192
      functionLinenumberEnd: 1200
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pcalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:1195,5'
          Dst:             __errno_location
        - Src:             'table.c:1199,10'
          Dst:             pcalloc
    - functionName:    pr_table_ctl
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1091
      functionLinenumberEnd: 1190
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          230
      EdgeCount:       49
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - pcalloc
      functionUses:    7
      BranchProfiles:
        - Branch String:   'table.c:1104,3'
          Branch Sides:    []
      Callsites:
        - Src:             'table.c:1094,5'
          Dst:             __errno_location
        - Src:             'table.c:1100,5'
          Dst:             __errno_location
        - Src:             'table.c:1113,9'
          Dst:             __errno_location
        - Src:             'table.c:1142,9'
          Dst:             __errno_location
        - Src:             'table.c:1148,9'
          Dst:             __errno_location
        - Src:             'table.c:1157,21'
          Dst:             pcalloc
        - Src:             'table.c:1168,9'
          Dst:             __errno_location
        - Src:             'table.c:1177,9'
          Dst:             __errno_location
        - Src:             'table.c:1186,7'
          Dst:             __errno_location
    - functionName:    key_hash
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          75
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - pr_signals_handle
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:140,24'
          Dst:             strlen
        - Src:             'table.c:150,7'
          Dst:             pr_signals_handle
    - functionName:    key_cmp
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          98
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:128,10'
          Dst:             strncmp
    - functionName:    entry_insert
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    entry_remove
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          61
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_table_set
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1074
      functionLinenumberEnd: 1089
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          72
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_table_kset
        - strlen
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:1078,5'
          Dst:             __errno_location
        - Src:             'table.c:1084,20'
          Dst:             strlen
        - Src:             'table.c:1087,39'
          Dst:             strlen
        - Src:             'table.c:1087,10'
          Dst:             pr_table_kset
    - functionName:    pr_table_rewind
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1063
      functionLinenumberEnd: 1071
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:1065,5'
          Dst:             __errno_location
    - functionName:    pr_table_remove
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1052
      functionLinenumberEnd: 1061
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_table_kremove
        - strlen
      functionUses:    30
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:1056,5'
          Dst:             __errno_location
        - Src:             'table.c:1060,42'
          Dst:             strlen
        - Src:             'table.c:1060,10'
          Dst:             pr_table_kremove
    - functionName:    pr_table_kremove
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 634
      functionLinenumberEnd: 710
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          277
      EdgeCount:       50
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - tab_entry_free
        - tab_entry_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:640,5'
          Dst:             __errno_location
        - Src:             'table.c:645,5'
          Dst:             __errno_location
        - Src:             'table.c:663,5'
          Dst:             tab_entry_remove
        - Src:             'table.c:664,5'
          Dst:             tab_entry_free
        - Src:             'table.c:678,5'
          Dst:             __errno_location
        - Src:             'table.c:698,7'
          Dst:             tab_entry_remove
        - Src:             'table.c:699,7'
          Dst:             tab_entry_free
        - Src:             'table.c:708,3'
          Dst:             __errno_location
    - functionName:    tab_entry_remove
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          80
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - tab_key_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:351,5'
          Dst:             tab_key_free
    - functionName:    tab_entry_free
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - pr_signals_handle
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:272,9'
          Dst:             pr_signals_handle
    - functionName:    pr_table_next
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1047
      functionLinenumberEnd: 1048
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_table_knext
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:1048,10'
          Dst:             pr_table_knext
    - functionName:    pr_table_knext
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1010
      functionLinenumberEnd: 1045
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          119
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - pr_signals_handle
        - tab_entry_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:1014,5'
          Dst:             __errno_location
        - Src:             'table.c:1020,9'
          Dst:             tab_entry_next
        - Src:             'table.c:1023,7'
          Dst:             pr_signals_handle
        - Src:             'table.c:1028,13'
          Dst:             tab_entry_next
        - Src:             'table.c:1036,5'
          Dst:             __errno_location
    - functionName:    tab_entry_next
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 339
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          127
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_table_get
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 995
      functionLinenumberEnd: 1008
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_table_kget
        - strlen
      functionUses:    64
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:999,5'
          Dst:             __errno_location
        - Src:             'table.c:1004,18'
          Dst:             strlen
        - Src:             'table.c:1007,10'
          Dst:             pr_table_kget
    - functionName:    pr_table_kget
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 631
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          326
      EdgeCount:       62
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:548,5'
          Dst:             __errno_location
        - Src:             'table.c:557,5'
          Dst:             __errno_location
        - Src:             'table.c:565,5'
          Dst:             __errno_location
        - Src:             'table.c:596,5'
          Dst:             __errno_location
        - Src:             'table.c:629,3'
          Dst:             __errno_location
    - functionName:    pr_table_free
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 978
      functionLinenumberEnd: 992
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - destroy_pool
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:981,5'
          Dst:             __errno_location
        - Src:             'table.c:986,5'
          Dst:             __errno_location
        - Src:             'table.c:990,3'
          Dst:             destroy_pool
    - functionName:    pr_table_exists
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 968
      functionLinenumberEnd: 976
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_table_kexists
        - strlen
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:971,5'
          Dst:             __errno_location
        - Src:             'table.c:975,42'
          Dst:             strlen
        - Src:             'table.c:975,10'
          Dst:             pr_table_kexists
    - functionName:    pr_table_empty
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 935
      functionLinenumberEnd: 966
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          107
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_signals_handle
        - tab_entry_free
        - tab_entry_remove
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:939,5'
          Dst:             __errno_location
        - Src:             'table.c:953,9'
          Dst:             pr_signals_handle
        - Src:             'table.c:956,7'
          Dst:             tab_entry_remove
        - Src:             'table.c:957,7'
          Dst:             tab_entry_free
    - functionName:    pr_table_count
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 882
      functionLinenumberEnd: 889
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:884,5'
          Dst:             __errno_location
    - functionName:    pr_table_alloc
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 878
      functionLinenumberEnd: 879
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_table_nalloc
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:879,10'
          Dst:             pr_table_nalloc
    - functionName:    pr_table_nalloc
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 847
      functionLinenumberEnd: 876
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          96
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
        - tab_get_seed
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:853,5'
          Dst:             __errno_location
        - Src:             'table.c:857,14'
          Dst:             make_sub_pool
        - Src:             'table.c:858,3'
          Dst:             pr_pool_tag
        - Src:             'table.c:860,9'
          Dst:             pcalloc
        - Src:             'table.c:864,17'
          Dst:             pcalloc
        - Src:             'table.c:872,15'
          Dst:             tab_get_seed
    - functionName:    tab_get_seed
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 358
      functionLinenumberEnd: 388
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - close
        - getpid
        - open
        - rand
        - read
        - time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:371,8'
          Dst:             open
        - Src:             'table.c:373,13'
          Dst:             read
        - Src:             'table.c:374,12'
          Dst:             close
        - Src:             'table.c:378,18'
          Dst:             time
        - Src:             'table.c:384,28'
          Dst:             rand
        - Src:             'table.c:384,37'
          Dst:             getpid
    - functionName:    pr_table_add_dup
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 818
      functionLinenumberEnd: 845
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          99
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pcalloc
        - pr_table_add
        - strlen
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:823,5'
          Dst:             __errno_location
        - Src:             'table.c:832,5'
          Dst:             __errno_location
        - Src:             'table.c:838,20'
          Dst:             strlen
        - Src:             'table.c:841,14'
          Dst:             pcalloc
        - Src:             'table.c:844,10'
          Dst:             pr_table_add
    - functionName:    pr_table_add
      functionSourceFile: '/src/proftpd/src/table.c'
      linkageType:     InternalLinkage
      functionLinenumber: 800
      functionLinenumberEnd: 815
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          72
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_table_kadd
        - strlen
      functionUses:    40
      BranchProfiles:  []
      Callsites:
        - Src:             'table.c:804,5'
          Dst:             __errno_location
        - Src:             'table.c:810,20'
          Dst:             strlen
        - Src:             'table.c:813,39'
          Dst:             strlen
        - Src:             'table.c:813,10'
          Dst:             pr_table_kadd
    - functionName:    get_errno_desc
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 630
      functionLinenumberEnd: 641
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:635,12'
          Dst:             strerror
    - functionName:    get_errno_name
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 607
      functionLinenumberEnd: 628
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_gid
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_snprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:455,3'
          Dst:             pr_snprintf
    - functionName:    get_uid
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 450
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_snprintf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:449,3'
          Dst:             pr_snprintf
    - functionName:    pr_error_explain_writev
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2827
      functionLinenumberEnd: 2851
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2831,7'
          Dst:             check_error
        - Src:             'error.c:2835,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2840,14'
          Dst:             __errno_location
        - Src:             'error.c:2844,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2845,5'
          Dst:             __errno_location
    - functionName:    check_error
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1038
      functionLinenumberEnd: 1050
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          40
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
      functionUses:    68
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1040,5'
          Dst:             __errno_location
        - Src:             'error.c:1045,5'
          Dst:             __errno_location
    - functionName:    pr_error_set_what
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 427
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pstrdup
      functionUses:    67
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:421,5'
          Dst:             __errno_location
        - Src:             'error.c:425,19'
          Dst:             pstrdup
    - functionName:    trace_explained_error
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1025
      functionLinenumberEnd: 1036
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_trace_msg
        - strerror
      functionUses:    68
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1029,62'
          Dst:             strerror
        - Src:             'error.c:1027,12'
          Dst:             pr_trace_msg
        - Src:             'error.c:1034,36'
          Dst:             strerror
        - Src:             'error.c:1032,5'
          Dst:             pr_trace_msg
    - functionName:    pr_error_explain_write
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2800
      functionLinenumberEnd: 2824
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2804,7'
          Dst:             check_error
        - Src:             'error.c:2808,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2813,14'
          Dst:             __errno_location
        - Src:             'error.c:2817,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2818,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_utimes
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2773
      functionLinenumberEnd: 2797
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2777,7'
          Dst:             check_error
        - Src:             'error.c:2781,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2786,14'
          Dst:             __errno_location
        - Src:             'error.c:2790,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2791,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_unlink
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2746
      functionLinenumberEnd: 2770
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          95
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2750,7'
          Dst:             check_error
        - Src:             'error.c:2754,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2759,14'
          Dst:             __errno_location
        - Src:             'error.c:2763,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2764,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_truncate
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2720
      functionLinenumberEnd: 2744
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2724,7'
          Dst:             check_error
        - Src:             'error.c:2728,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2733,14'
          Dst:             __errno_location
        - Src:             'error.c:2737,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2738,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_symlink
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2694
      functionLinenumberEnd: 2718
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2698,7'
          Dst:             check_error
        - Src:             'error.c:2702,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2707,14'
          Dst:             __errno_location
        - Src:             'error.c:2711,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2712,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_statvfs
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2667
      functionLinenumberEnd: 2691
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2671,7'
          Dst:             check_error
        - Src:             'error.c:2675,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2680,14'
          Dst:             __errno_location
        - Src:             'error.c:2684,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2685,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_statfs
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2641
      functionLinenumberEnd: 2665
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2645,7'
          Dst:             check_error
        - Src:             'error.c:2649,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2654,14'
          Dst:             __errno_location
        - Src:             'error.c:2658,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2659,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_stat
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2615
      functionLinenumberEnd: 2639
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2619,7'
          Dst:             check_error
        - Src:             'error.c:2623,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2628,14'
          Dst:             __errno_location
        - Src:             'error.c:2632,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2633,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_socket
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2589
      functionLinenumberEnd: 2613
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2593,7'
          Dst:             check_error
        - Src:             'error.c:2597,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2602,14'
          Dst:             __errno_location
        - Src:             'error.c:2606,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2607,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_setuid
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2563
      functionLinenumberEnd: 2587
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          95
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2567,7'
          Dst:             check_error
        - Src:             'error.c:2571,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2576,14'
          Dst:             __errno_location
        - Src:             'error.c:2580,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2581,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_setsockopt
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2536
      functionLinenumberEnd: 2561
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          107
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2540,7'
          Dst:             check_error
        - Src:             'error.c:2544,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2550,14'
          Dst:             __errno_location
        - Src:             'error.c:2554,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2555,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_setrlimit
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2509
      functionLinenumberEnd: 2533
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2513,7'
          Dst:             check_error
        - Src:             'error.c:2517,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2522,14'
          Dst:             __errno_location
        - Src:             'error.c:2526,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2527,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_setreuid
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2482
      functionLinenumberEnd: 2506
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2486,7'
          Dst:             check_error
        - Src:             'error.c:2490,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2495,14'
          Dst:             __errno_location
        - Src:             'error.c:2499,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2500,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_setresuid
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2456
      functionLinenumberEnd: 2480
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2460,7'
          Dst:             check_error
        - Src:             'error.c:2464,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2469,14'
          Dst:             __errno_location
        - Src:             'error.c:2473,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2474,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_setresgid
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2429
      functionLinenumberEnd: 2453
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2433,7'
          Dst:             check_error
        - Src:             'error.c:2437,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2442,14'
          Dst:             __errno_location
        - Src:             'error.c:2446,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2447,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_setregid
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2402
      functionLinenumberEnd: 2426
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2406,7'
          Dst:             check_error
        - Src:             'error.c:2410,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2415,14'
          Dst:             __errno_location
        - Src:             'error.c:2419,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2420,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_setgid
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2376
      functionLinenumberEnd: 2400
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          95
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2380,7'
          Dst:             check_error
        - Src:             'error.c:2384,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2389,14'
          Dst:             __errno_location
        - Src:             'error.c:2393,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2394,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_seteuid
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2350
      functionLinenumberEnd: 2374
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          95
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2354,7'
          Dst:             check_error
        - Src:             'error.c:2358,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2363,14'
          Dst:             __errno_location
        - Src:             'error.c:2367,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2368,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_setegid
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2324
      functionLinenumberEnd: 2348
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          95
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2328,7'
          Dst:             check_error
        - Src:             'error.c:2332,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2337,14'
          Dst:             __errno_location
        - Src:             'error.c:2341,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2342,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_rmdir
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2298
      functionLinenumberEnd: 2322
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          95
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2302,7'
          Dst:             check_error
        - Src:             'error.c:2306,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2311,14'
          Dst:             __errno_location
        - Src:             'error.c:2315,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2316,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_rename
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2272
      functionLinenumberEnd: 2296
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2276,7'
          Dst:             check_error
        - Src:             'error.c:2280,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2285,14'
          Dst:             __errno_location
        - Src:             'error.c:2289,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2290,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_readv
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2245
      functionLinenumberEnd: 2269
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2249,7'
          Dst:             check_error
        - Src:             'error.c:2253,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2258,14'
          Dst:             __errno_location
        - Src:             'error.c:2262,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2263,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_readlink
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2218
      functionLinenumberEnd: 2242
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2222,7'
          Dst:             check_error
        - Src:             'error.c:2226,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2231,14'
          Dst:             __errno_location
        - Src:             'error.c:2235,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2236,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_readdir
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2191
      functionLinenumberEnd: 2215
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          95
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2195,7'
          Dst:             check_error
        - Src:             'error.c:2199,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2204,14'
          Dst:             __errno_location
        - Src:             'error.c:2208,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2209,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_read
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2165
      functionLinenumberEnd: 2189
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2169,7'
          Dst:             check_error
        - Src:             'error.c:2173,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2178,14'
          Dst:             __errno_location
        - Src:             'error.c:2182,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2183,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_opendir
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2139
      functionLinenumberEnd: 2163
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          95
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2143,7'
          Dst:             check_error
        - Src:             'error.c:2147,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2152,14'
          Dst:             __errno_location
        - Src:             'error.c:2156,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2157,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_open
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2113
      functionLinenumberEnd: 2137
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2117,7'
          Dst:             check_error
        - Src:             'error.c:2121,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2126,14'
          Dst:             __errno_location
        - Src:             'error.c:2130,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2131,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_mkstemp
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2086
      functionLinenumberEnd: 2110
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          95
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2090,7'
          Dst:             check_error
        - Src:             'error.c:2094,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2099,14'
          Dst:             __errno_location
        - Src:             'error.c:2103,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2104,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_mkdtemp
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2060
      functionLinenumberEnd: 2084
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          95
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2064,7'
          Dst:             check_error
        - Src:             'error.c:2068,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2073,14'
          Dst:             __errno_location
        - Src:             'error.c:2077,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2078,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_mkdir
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2034
      functionLinenumberEnd: 2058
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2038,7'
          Dst:             check_error
        - Src:             'error.c:2042,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2047,14'
          Dst:             __errno_location
        - Src:             'error.c:2051,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2052,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_lstat
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2008
      functionLinenumberEnd: 2032
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:2012,7'
          Dst:             check_error
        - Src:             'error.c:2016,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:2021,14'
          Dst:             __errno_location
        - Src:             'error.c:2025,5'
          Dst:             trace_explained_error
        - Src:             'error.c:2026,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_lseek
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1981
      functionLinenumberEnd: 2005
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1985,7'
          Dst:             check_error
        - Src:             'error.c:1989,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1994,14'
          Dst:             __errno_location
        - Src:             'error.c:1998,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1999,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_listen
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1955
      functionLinenumberEnd: 1979
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1959,7'
          Dst:             check_error
        - Src:             'error.c:1963,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1968,14'
          Dst:             __errno_location
        - Src:             'error.c:1972,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1973,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_link
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1929
      functionLinenumberEnd: 1953
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1933,7'
          Dst:             check_error
        - Src:             'error.c:1937,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1942,14'
          Dst:             __errno_location
        - Src:             'error.c:1946,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1947,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_lchown
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1902
      functionLinenumberEnd: 1926
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1906,7'
          Dst:             check_error
        - Src:             'error.c:1910,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1915,14'
          Dst:             __errno_location
        - Src:             'error.c:1919,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1920,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_getsockopt
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1874
      functionLinenumberEnd: 1899
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          107
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1878,7'
          Dst:             check_error
        - Src:             'error.c:1882,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1888,14'
          Dst:             __errno_location
        - Src:             'error.c:1892,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1893,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_getsockname
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1847
      functionLinenumberEnd: 1871
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1851,7'
          Dst:             check_error
        - Src:             'error.c:1855,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1860,14'
          Dst:             __errno_location
        - Src:             'error.c:1864,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1865,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_getrlimit
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1820
      functionLinenumberEnd: 1844
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1824,7'
          Dst:             check_error
        - Src:             'error.c:1828,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1833,14'
          Dst:             __errno_location
        - Src:             'error.c:1837,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1838,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_getpeername
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1793
      functionLinenumberEnd: 1817
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1797,7'
          Dst:             check_error
        - Src:             'error.c:1801,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1806,14'
          Dst:             __errno_location
        - Src:             'error.c:1810,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1811,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_getnameinfo
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1765
      functionLinenumberEnd: 1790
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          113
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1769,7'
          Dst:             check_error
        - Src:             'error.c:1773,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1779,14'
          Dst:             __errno_location
        - Src:             'error.c:1783,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1784,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_gethostname
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1737
      functionLinenumberEnd: 1761
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1741,7'
          Dst:             check_error
        - Src:             'error.c:1745,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1750,14'
          Dst:             __errno_location
        - Src:             'error.c:1754,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1755,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_gethostbyname2
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1711
      functionLinenumberEnd: 1735
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1715,7'
          Dst:             check_error
        - Src:             'error.c:1719,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1724,14'
          Dst:             __errno_location
        - Src:             'error.c:1728,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1729,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_gethostbyname
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1684
      functionLinenumberEnd: 1708
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          95
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1688,7'
          Dst:             check_error
        - Src:             'error.c:1692,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1697,14'
          Dst:             __errno_location
        - Src:             'error.c:1701,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1702,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_getaddrinfo
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1657
      functionLinenumberEnd: 1682
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          104
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1661,7'
          Dst:             check_error
        - Src:             'error.c:1665,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1671,14'
          Dst:             __errno_location
        - Src:             'error.c:1675,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1676,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_futimes
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1630
      functionLinenumberEnd: 1654
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1634,7'
          Dst:             check_error
        - Src:             'error.c:1638,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1643,14'
          Dst:             __errno_location
        - Src:             'error.c:1647,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1648,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_ftruncate
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1603
      functionLinenumberEnd: 1627
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1607,7'
          Dst:             check_error
        - Src:             'error.c:1611,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1616,14'
          Dst:             __errno_location
        - Src:             'error.c:1620,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1621,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fsync
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1577
      functionLinenumberEnd: 1601
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          95
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1581,7'
          Dst:             check_error
        - Src:             'error.c:1585,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1590,14'
          Dst:             __errno_location
        - Src:             'error.c:1594,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1595,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fstatvfs
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1551
      functionLinenumberEnd: 1575
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1555,7'
          Dst:             check_error
        - Src:             'error.c:1559,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1564,14'
          Dst:             __errno_location
        - Src:             'error.c:1568,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1569,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fstatfs
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1525
      functionLinenumberEnd: 1549
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1529,7'
          Dst:             check_error
        - Src:             'error.c:1533,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1538,14'
          Dst:             __errno_location
        - Src:             'error.c:1542,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1543,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fstat
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1499
      functionLinenumberEnd: 1523
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1503,7'
          Dst:             check_error
        - Src:             'error.c:1507,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1512,14'
          Dst:             __errno_location
        - Src:             'error.c:1516,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1517,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fork
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1473
      functionLinenumberEnd: 1497
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          92
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1477,7'
          Dst:             check_error
        - Src:             'error.c:1481,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1486,14'
          Dst:             __errno_location
        - Src:             'error.c:1490,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1491,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fopen
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1447
      functionLinenumberEnd: 1471
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1451,7'
          Dst:             check_error
        - Src:             'error.c:1455,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1460,14'
          Dst:             __errno_location
        - Src:             'error.c:1464,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1465,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_flock
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1420
      functionLinenumberEnd: 1444
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1424,7'
          Dst:             check_error
        - Src:             'error.c:1428,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1433,14'
          Dst:             __errno_location
        - Src:             'error.c:1437,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1438,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fdopen
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1394
      functionLinenumberEnd: 1418
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1398,7'
          Dst:             check_error
        - Src:             'error.c:1402,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1407,14'
          Dst:             __errno_location
        - Src:             'error.c:1411,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1412,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fcntl
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1368
      functionLinenumberEnd: 1392
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1372,7'
          Dst:             check_error
        - Src:             'error.c:1376,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1381,14'
          Dst:             __errno_location
        - Src:             'error.c:1385,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1386,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fclose
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1366
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          95
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1346,7'
          Dst:             check_error
        - Src:             'error.c:1350,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1355,14'
          Dst:             __errno_location
        - Src:             'error.c:1359,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1360,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fchown
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1316
      functionLinenumberEnd: 1340
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1320,7'
          Dst:             check_error
        - Src:             'error.c:1324,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1329,14'
          Dst:             __errno_location
        - Src:             'error.c:1333,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1334,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_fchmod
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1290
      functionLinenumberEnd: 1314
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1294,7'
          Dst:             check_error
        - Src:             'error.c:1298,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1303,14'
          Dst:             __errno_location
        - Src:             'error.c:1307,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1308,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_connect
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1288
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1268,7'
          Dst:             check_error
        - Src:             'error.c:1272,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1277,14'
          Dst:             __errno_location
        - Src:             'error.c:1281,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1282,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_closedir
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1237
      functionLinenumberEnd: 1261
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          95
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1241,7'
          Dst:             check_error
        - Src:             'error.c:1245,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1250,14'
          Dst:             __errno_location
        - Src:             'error.c:1254,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1255,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_close
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1211
      functionLinenumberEnd: 1235
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          95
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1215,7'
          Dst:             check_error
        - Src:             'error.c:1219,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1224,14'
          Dst:             __errno_location
        - Src:             'error.c:1228,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1229,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_chroot
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1185
      functionLinenumberEnd: 1209
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          95
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1189,7'
          Dst:             check_error
        - Src:             'error.c:1193,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1198,14'
          Dst:             __errno_location
        - Src:             'error.c:1202,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1203,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_chown
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1159
      functionLinenumberEnd: 1183
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1163,7'
          Dst:             check_error
        - Src:             'error.c:1167,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1172,14'
          Dst:             __errno_location
        - Src:             'error.c:1176,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1177,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_chmod
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1132
      functionLinenumberEnd: 1156
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          98
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1136,7'
          Dst:             check_error
        - Src:             'error.c:1140,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1145,14'
          Dst:             __errno_location
        - Src:             'error.c:1149,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1150,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_chdir
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1106
      functionLinenumberEnd: 1130
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          95
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1110,7'
          Dst:             check_error
        - Src:             'error.c:1114,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1119,14'
          Dst:             __errno_location
        - Src:             'error.c:1123,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1124,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_bind
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1080
      functionLinenumberEnd: 1104
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_what
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1084,7'
          Dst:             check_error
        - Src:             'error.c:1088,10'
          Dst:             pr_error_set_what
        - Src:             'error.c:1093,14'
          Dst:             __errno_location
        - Src:             'error.c:1097,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1098,5'
          Dst:             __errno_location
    - functionName:    pr_error_explain_accept
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1053
      functionLinenumberEnd: 1077
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - check_error
        - pr_error_set_why
        - trace_explained_error
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:1057,7'
          Dst:             check_error
        - Src:             'error.c:1061,10'
          Dst:             pr_error_set_why
        - Src:             'error.c:1066,14'
          Dst:             __errno_location
        - Src:             'error.c:1070,5'
          Dst:             trace_explained_error
        - Src:             'error.c:1071,5'
          Dst:             __errno_location
    - functionName:    pr_error_set_why
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 401
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pstrdup
      functionUses:    24
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:395,5'
          Dst:             __errno_location
        - Src:             'error.c:399,19'
          Dst:             pstrdup
    - functionName:    pr_error_use_explainer
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 982
      functionLinenumberEnd: 1014
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          149
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:988,5'
          Dst:             __errno_location
        - Src:             'error.c:993,5'
          Dst:             __errno_location
        - Src:             'error.c:999,10'
          Dst:             strcmp
        - Src:             'error.c:1006,10'
          Dst:             strcmp
        - Src:             'error.c:1012,3'
          Dst:             __errno_location
    - functionName:    pr_error_unregister_explainer
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 931
      functionLinenumberEnd: 980
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          187
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:940,5'
          Dst:             __errno_location
        - Src:             'error.c:946,26'
          Dst:             strcmp
        - Src:             'error.c:976,5'
          Dst:             __errno_location
    - functionName:    pr_error_register_explainer
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 886
      functionLinenumberEnd: 929
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          162
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - pcalloc
        - pstrdup
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:892,5'
          Dst:             __errno_location
        - Src:             'error.c:900,12'
          Dst:             strcmp
        - Src:             'error.c:901,9'
          Dst:             __errno_location
        - Src:             'error.c:907,8'
          Dst:             pcalloc
        - Src:             'error.c:909,14'
          Dst:             pstrdup
        - Src:             'error.c:910,15'
          Dst:             pcalloc
    - functionName:    get_minimal_text
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 680
      functionLinenumberEnd: 696
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          59
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - pstrcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:689,18'
          Dst:             pstrcat
    - functionName:    get_terse_text
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 700
      functionLinenumberEnd: 725
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          83
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - pstrcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:712,18'
          Dst:             pstrcat
        - Src:             'error.c:721,18'
          Dst:             pstrcat
    - functionName:    get_oper
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 580
      functionLinenumberEnd: 587
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_detailed_text
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 730
      functionLinenumberEnd: 792
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          200
      EdgeCount:       58
      CyclomaticComplexity: 16
      functionsReached:
        - pstrcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:734,16'
          Dst:             pstrcat
        - Src:             'error.c:744,18'
          Dst:             pstrcat
        - Src:             'error.c:753,18'
          Dst:             pstrcat
        - Src:             'error.c:763,20'
          Dst:             pstrcat
        - Src:             'error.c:766,20'
          Dst:             pstrcat
        - Src:             'error.c:779,18'
          Dst:             pstrcat
        - Src:             'error.c:788,18'
          Dst:             pstrcat
    - functionName:    get_explained
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 669
      functionLinenumberEnd: 676
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_failure
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 648
      functionLinenumberEnd: 666
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          76
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - get_errno_desc
        - get_errno_name
        - pr_snprintf
        - pstrcat
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:653,3'
          Dst:             pr_snprintf
        - Src:             'error.c:656,21'
          Dst:             get_errno_name
        - Src:             'error.c:660,21'
          Dst:             get_errno_desc
        - Src:             'error.c:663,13'
          Dst:             pstrcat
    - functionName:    get_what
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 590
      functionLinenumberEnd: 603
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - pstrcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:595,14'
          Dst:             pstrcat
    - functionName:    get_where
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 577
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          154
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - pr_snprintf
        - pstrcat
        - pstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:541,15'
          Dst:             pstrcat
        - Src:             'error.c:544,15'
          Dst:             pstrdup
        - Src:             'error.c:553,17'
          Dst:             pstrcat
        - Src:             'error.c:557,17'
          Dst:             pstrcat
        - Src:             'error.c:564,9'
          Dst:             pr_snprintf
        - Src:             'error.c:566,17'
          Dst:             pstrcat
        - Src:             'error.c:571,19'
          Dst:             pstrcat
    - functionName:    get_why
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 522
      functionLinenumberEnd: 529
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_who
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 463
      functionLinenumberEnd: 519
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          195
      EdgeCount:       43
      CyclomaticComplexity: 12
      functionsReached:
        - get_gid
        - get_uid
        - pr_session_get_protocol
        - pstrcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:468,13'
          Dst:             pstrcat
        - Src:             'error.c:476,21'
          Dst:             get_uid
        - Src:             'error.c:475,15'
          Dst:             pstrcat
        - Src:             'error.c:479,46'
          Dst:             get_uid
        - Src:             'error.c:479,15'
          Dst:             pstrcat
        - Src:             'error.c:488,9'
          Dst:             get_gid
        - Src:             'error.c:487,13'
          Dst:             pstrcat
        - Src:             'error.c:490,15'
          Dst:             pstrcat
        - Src:             'error.c:497,42'
          Dst:             get_uid
        - Src:             'error.c:498,17'
          Dst:             get_gid
        - Src:             'error.c:497,11'
          Dst:             pstrcat
        - Src:             'error.c:508,15'
          Dst:             pr_session_get_protocol
        - Src:             'error.c:511,15'
          Dst:             pstrcat
        - Src:             'error.c:514,15'
          Dst:             pstrcat
    - functionName:    pr_error_strerror
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 795
      functionLinenumberEnd: 883
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          203
      EdgeCount:       32
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - get_detailed_text
        - get_explained
        - get_failure
        - get_minimal_text
        - get_oper
        - get_terse_text
        - get_what
        - get_where
        - get_who
        - get_why
        - strerror
      functionUses:    21
      BranchProfiles:
        - Branch String:   'error.c:806,3'
          Branch Sides:    []
        - Branch String:   'error.c:834,3'
          Branch Sides:    []
      Callsites:
        - Src:             'error.c:799,21'
          Dst:             __errno_location
        - Src:             'error.c:799,12'
          Dst:             strerror
        - Src:             'error.c:831,14'
          Dst:             strerror
        - Src:             'error.c:838,13'
          Dst:             get_who
        - Src:             'error.c:839,13'
          Dst:             get_why
        - Src:             'error.c:840,15'
          Dst:             get_where
        - Src:             'error.c:841,14'
          Dst:             get_what
        - Src:             'error.c:842,17'
          Dst:             get_failure
        - Src:             'error.c:843,19'
          Dst:             get_explained
        - Src:             'error.c:845,18'
          Dst:             get_detailed_text
        - Src:             'error.c:856,14'
          Dst:             get_oper
        - Src:             'error.c:857,17'
          Dst:             get_failure
        - Src:             'error.c:858,19'
          Dst:             get_explained
        - Src:             'error.c:860,18'
          Dst:             get_terse_text
        - Src:             'error.c:867,14'
          Dst:             get_oper
        - Src:             'error.c:868,17'
          Dst:             get_failure
        - Src:             'error.c:870,18'
          Dst:             get_minimal_text
        - Src:             'error.c:879,12'
          Dst:             strerror
    - functionName:    pr_error_use_formats
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 444
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_error_use_details
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 435
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_error_set_where
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 404
      functionLinenumberEnd: 416
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    23
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:407,5'
          Dst:             __errno_location
    - functionName:    pr_error_get_who
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          84
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:371,5'
          Dst:             __errno_location
        - Src:             'error.c:377,5'
          Dst:             __errno_location
    - functionName:    pr_error_destroy
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - destroy_pool
      functionUses:    38
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:360,12'
          Dst:             __errno_location
        - Src:             'error.c:363,5'
          Dst:             destroy_pool
        - Src:             'error.c:366,3'
          Dst:             __errno_location
    - functionName:    pr_error_create
      functionSourceFile: '/src/proftpd/src/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 355
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          82
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - getegid
        - geteuid
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
        - pstrdup
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'error.c:335,5'
          Dst:             __errno_location
        - Src:             'error.c:339,14'
          Dst:             make_sub_pool
        - Src:             'error.c:340,3'
          Dst:             pr_pool_tag
        - Src:             'error.c:342,9'
          Dst:             pcalloc
        - Src:             'error.c:347,21'
          Dst:             pstrdup
        - Src:             'error.c:351,18'
          Dst:             geteuid
        - Src:             'error.c:352,18'
          Dst:             getegid
    - functionName:    parse_config_path
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1393
      functionLinenumberEnd: 1394
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - parse_config_path2
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:1394,10'
          Dst:             parse_config_path2
    - functionName:    parse_config_path2
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1173
      functionLinenumberEnd: 1391
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         86
      ICount:          542
      EdgeCount:       118
      CyclomaticComplexity: 34
      functionsReached:
        - __errno_location
        - config_filename_cmp
        - destroy_pool
        - is_tmp_file
        - make_array
        - make_sub_pool
        - parse_wildcard_config_path
        - pdircat
        - pr_fnmatch
        - pr_fs_clear_cache2
        - pr_fs_valid_path
        - pr_fsio_closedir
        - pr_fsio_lstat
        - pr_fsio_opendir
        - pr_fsio_readdir
        - pr_log_pri
        - pr_parser_parse_file
        - pr_pool_tag
        - pr_privs_relinquish
        - pr_privs_root
        - pr_signals_handle
        - pr_str_is_fnmatch
        - pr_trace_msg
        - pstrdup
        - push_array
        - qsort
        - strcmp
        - strerror
        - strrchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:1185,5'
          Dst:             __errno_location
        - Src:             'parser.c:1189,7'
          Dst:             pr_fs_valid_path
        - Src:             'parser.c:1190,5'
          Dst:             __errno_location
        - Src:             'parser.c:1194,15'
          Dst:             pr_str_is_fnmatch
        - Src:             'parser.c:1205,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'parser.c:1208,5'
          Dst:             pr_trace_msg
        - Src:             'parser.c:1212,7'
          Dst:             pr_fsio_lstat
        - Src:             'parser.c:1224,5'
          Dst:             pr_privs_root
        - Src:             'parser.c:1225,11'
          Dst:             pr_parser_parse_file
        - Src:             'parser.c:1226,14'
          Dst:             __errno_location
        - Src:             'parser.c:1227,5'
          Dst:             pr_privs_relinquish
        - Src:             'parser.c:1229,5'
          Dst:             __errno_location
        - Src:             'parser.c:1233,14'
          Dst:             make_sub_pool
        - Src:             'parser.c:1234,3'
          Dst:             pr_pool_tag
        - Src:             'parser.c:1237,14'
          Dst:             pstrdup
        - Src:             'parser.c:1239,9'
          Dst:             strrchr
        - Src:             'parser.c:1253,21'
          Dst:             pr_str_is_fnmatch
        - Src:             'parser.c:1258,9'
          Dst:             pr_log_pri
        - Src:             'parser.c:1260,9'
          Dst:             destroy_pool
        - Src:             'parser.c:1261,9'
          Dst:             __errno_location
        - Src:             'parser.c:1266,18'
          Dst:             pstrdup
        - Src:             'parser.c:1267,7'
          Dst:             destroy_pool
        - Src:             'parser.c:1269,14'
          Dst:             parse_wildcard_config_path
        - Src:             'parser.c:1275,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'parser.c:1276,9'
          Dst:             pr_fsio_lstat
        - Src:             'parser.c:1277,20'
          Dst:             __errno_location
        - Src:             'parser.c:1281,9'
          Dst:             strerror
        - Src:             'parser.c:1279,7'
          Dst:             pr_log_pri
        - Src:             'parser.c:1283,7'
          Dst:             destroy_pool
        - Src:             'parser.c:1284,7'
          Dst:             __errno_location
        - Src:             'parser.c:1290,7'
          Dst:             pr_log_pri
        - Src:             'parser.c:1292,7'
          Dst:             destroy_pool
        - Src:             'parser.c:1293,7'
          Dst:             __errno_location
        - Src:             'parser.c:1298,9'
          Dst:             pr_str_is_fnmatch
        - Src:             'parser.c:1299,7'
          Dst:             pr_log_pri
        - Src:             'parser.c:1301,7'
          Dst:             destroy_pool
        - Src:             'parser.c:1302,7'
          Dst:             __errno_location
        - Src:             'parser.c:1307,3'
          Dst:             pr_trace_msg
        - Src:             'parser.c:1310,10'
          Dst:             pr_fsio_opendir
        - Src:             'parser.c:1314,16'
          Dst:             __errno_location
        - Src:             'parser.c:1314,7'
          Dst:             strerror
        - Src:             'parser.c:1312,5'
          Dst:             pr_log_pri
        - Src:             'parser.c:1315,5'
          Dst:             destroy_pool
        - Src:             'parser.c:1316,5'
          Dst:             __errno_location
        - Src:             'parser.c:1320,15'
          Dst:             make_array
        - Src:             'parser.c:1322,18'
          Dst:             pr_fsio_readdir
        - Src:             'parser.c:1323,5'
          Dst:             pr_signals_handle
        - Src:             'parser.c:1325,9'
          Dst:             strcmp
        - Src:             'parser.c:1326,9'
          Dst:             strcmp
        - Src:             'parser.c:1331,11'
          Dst:             is_tmp_file
        - Src:             'parser.c:1332,9'
          Dst:             pr_trace_msg
        - Src:             'parser.c:1341,10'
          Dst:             pr_fnmatch
        - Src:             'parser.c:1342,44'
          Dst:             pdircat
        - Src:             'parser.c:1342,19'
          Dst:             push_array
        - Src:             'parser.c:1347,3'
          Dst:             pr_fsio_closedir
        - Src:             'parser.c:1352,5'
          Dst:             qsort
        - Src:             'parser.c:1352,5'
          Dst:             config_filename_cmp
        - Src:             'parser.c:1366,7'
          Dst:             pr_privs_root
        - Src:             'parser.c:1367,13'
          Dst:             pr_parser_parse_file
        - Src:             'parser.c:1368,16'
          Dst:             __errno_location
        - Src:             'parser.c:1369,7'
          Dst:             pr_privs_relinquish
        - Src:             'parser.c:1373,57'
          Dst:             strerror
        - Src:             'parser.c:1372,9'
          Dst:             pr_log_pri
        - Src:             'parser.c:1374,9'
          Dst:             pr_log_pri
        - Src:             'parser.c:1377,9'
          Dst:             destroy_pool
        - Src:             'parser.c:1383,9'
          Dst:             __errno_location
        - Src:             'parser.c:1389,3'
          Dst:             destroy_pool
    - functionName:    pr_parser_parse_file
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 372
      functionLinenumberEnd: 632
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         95
      ICount:          672
      EdgeCount:       128
      CyclomaticComplexity: 35
      functionsReached:
        - __errno_location
        - add_config_source
        - destroy_pool
        - get_all_directives
        - make_sub_pool
        - pcalloc
        - pdircat
        - pr_event_generate
        - pr_fs_fadvise
        - pr_fsio_close
        - pr_fsio_fstat
        - pr_fsio_open
        - pr_log_pri
        - pr_module_call
        - pr_parser_config_ctxt_push
        - pr_parser_parse_line
        - pr_parser_read_line
        - pr_pool_tag
        - pr_signals_handle
        - pr_stash_get_symbol2
        - pr_str_get_similars
        - pr_trace_msg
        - pstrcat
        - pstrdup
        - remove_config_source
        - strlen
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:382,5'
          Dst:             __errno_location
        - Src:             'parser.c:387,5'
          Dst:             __errno_location
        - Src:             'parser.c:391,14'
          Dst:             make_sub_pool
        - Src:             'parser.c:392,3'
          Dst:             pr_pool_tag
        - Src:             'parser.c:396,19'
          Dst:             pdircat
        - Src:             'parser.c:400,5'
          Dst:             pr_trace_msg
        - Src:             'parser.c:403,8'
          Dst:             pr_fsio_open
        - Src:             'parser.c:405,18'
          Dst:             __errno_location
        - Src:             'parser.c:407,5'
          Dst:             destroy_pool
        - Src:             'parser.c:409,5'
          Dst:             __errno_location
        - Src:             'parser.c:415,7'
          Dst:             pr_fsio_fstat
        - Src:             'parser.c:416,18'
          Dst:             __errno_location
        - Src:             'parser.c:418,5'
          Dst:             pr_fsio_close
        - Src:             'parser.c:419,5'
          Dst:             destroy_pool
        - Src:             'parser.c:421,5'
          Dst:             __errno_location
        - Src:             'parser.c:426,5'
          Dst:             pr_fsio_close
        - Src:             'parser.c:427,5'
          Dst:             destroy_pool
        - Src:             'parser.c:429,5'
          Dst:             __errno_location
        - Src:             'parser.c:436,3'
          Dst:             pr_fs_fadvise
        - Src:             'parser.c:444,5'
          Dst:             pr_log_pri
        - Src:             'parser.c:453,8'
          Dst:             add_config_source
        - Src:             'parser.c:456,12'
          Dst:             pr_parser_config_ctxt_push
        - Src:             'parser.c:460,9'
          Dst:             pcalloc
        - Src:             'parser.c:462,10'
          Dst:             pr_parser_read_line
        - Src:             'parser.c:466,5'
          Dst:             pr_signals_handle
        - Src:             'parser.c:472,19'
          Dst:             make_sub_pool
        - Src:             'parser.c:473,19'
          Dst:             pcalloc
        - Src:             'parser.c:474,25'
          Dst:             pstrdup
        - Src:             'parser.c:478,11'
          Dst:             pr_parser_parse_line
        - Src:             'parser.c:480,7'
          Dst:             destroy_pool
        - Src:             'parser.c:488,5'
          Dst:             pr_event_generate
        - Src:             'parser.c:489,5'
          Dst:             destroy_pool
        - Src:             'parser.c:498,17'
          Dst:             pr_stash_get_symbol2
        - Src:             'parser.c:503,9'
          Dst:             pr_signals_handle
        - Src:             'parser.c:507,9'
          Dst:             pr_trace_msg
        - Src:             'parser.c:511,14'
          Dst:             pr_module_call
        - Src:             'parser.c:515,15'
          Dst:             pr_log_pri
        - Src:             'parser.c:517,15'
          Dst:             destroy_pool
        - Src:             'parser.c:518,15'
          Dst:             __errno_location
        - Src:             'parser.c:522,13'
          Dst:             pr_log_pri
        - Src:             'parser.c:531,19'
          Dst:             pr_stash_get_symbol2
        - Src:             'parser.c:536,9'
          Dst:             destroy_pool
        - Src:             'parser.c:559,19'
          Dst:             strlen
        - Src:             'parser.c:569,11'
          Dst:             pr_log_pri
        - Src:             'parser.c:572,13'
          Dst:             pr_log_pri
        - Src:             'parser.c:578,26'
          Dst:             get_all_directives
        - Src:             'parser.c:579,24'
          Dst:             pr_str_get_similars
        - Src:             'parser.c:595,23'
          Dst:             pstrcat
        - Src:             'parser.c:599,25'
          Dst:             pstrcat
        - Src:             'parser.c:603,15'
          Dst:             pr_log_pri
        - Src:             'parser.c:607,11'
          Dst:             destroy_pool
        - Src:             'parser.c:608,11'
          Dst:             __errno_location
        - Src:             'parser.c:612,9'
          Dst:             pr_log_pri
        - Src:             'parser.c:615,11'
          Dst:             pr_log_pri
        - Src:             'parser.c:621,5'
          Dst:             destroy_pool
        - Src:             'parser.c:626,3'
          Dst:             remove_config_source
        - Src:             'parser.c:628,3'
          Dst:             pr_fsio_close
        - Src:             'parser.c:630,3'
          Dst:             destroy_pool
    - functionName:    parse_wildcard_config_path
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 979
      functionLinenumberEnd: 1171
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          465
      EdgeCount:       82
      CyclomaticComplexity: 24
      functionsReached:
        - __errno_location
        - config_filename_cmp
        - destroy_pool
        - is_tmp_file
        - make_array
        - make_sub_pool
        - memchr
        - parse_config_path2
        - pdircat
        - pr_fnmatch
        - pr_fs_clear_cache2
        - pr_fsio_closedir
        - pr_fsio_lstat
        - pr_fsio_opendir
        - pr_fsio_readdir
        - pr_log_pri
        - pr_pool_tag
        - pr_signals_handle
        - pr_trace_msg
        - pstrdup
        - pstrndup
        - push_array
        - qsort
        - strchr
        - strcmp
        - strerror
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:992,5'
          Dst:             pr_log_pri
        - Src:             'parser.c:995,5'
          Dst:             __errno_location
        - Src:             'parser.c:999,14'
          Dst:             strlen
        - Src:             'parser.c:1001,5'
          Dst:             pr_trace_msg
        - Src:             'parser.c:1007,5'
          Dst:             __errno_location
        - Src:             'parser.c:1011,14'
          Dst:             make_sub_pool
        - Src:             'parser.c:1012,3'
          Dst:             pr_pool_tag
        - Src:             'parser.c:1020,17'
          Dst:             pstrdup
        - Src:             'parser.c:1027,5'
          Dst:             pr_signals_handle
        - Src:             'parser.c:1029,11'
          Dst:             strchr
        - Src:             'parser.c:1034,23'
          Dst:             strlen
        - Src:             'parser.c:1038,9'
          Dst:             memchr
        - Src:             'parser.c:1039,9'
          Dst:             memchr
        - Src:             'parser.c:1040,9'
          Dst:             memchr
        - Src:             'parser.c:1042,22'
          Dst:             pstrndup
        - Src:             'parser.c:1045,23'
          Dst:             pstrdup
        - Src:             'parser.c:1052,7'
          Dst:             pstrndup
        - Src:             'parser.c:1051,19'
          Dst:             pdircat
        - Src:             'parser.c:1062,5'
          Dst:             pr_trace_msg
        - Src:             'parser.c:1064,5'
          Dst:             __errno_location
        - Src:             'parser.c:1068,3'
          Dst:             pr_trace_msg
        - Src:             'parser.c:1071,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'parser.c:1072,9'
          Dst:             pr_fsio_lstat
        - Src:             'parser.c:1073,12'
          Dst:             __errno_location
        - Src:             'parser.c:1078,7'
          Dst:             strerror
        - Src:             'parser.c:1076,5'
          Dst:             pr_log_pri
        - Src:             'parser.c:1080,5'
          Dst:             destroy_pool
        - Src:             'parser.c:1081,5'
          Dst:             __errno_location
        - Src:             'parser.c:1087,5'
          Dst:             pr_log_pri
        - Src:             'parser.c:1089,5'
          Dst:             destroy_pool
        - Src:             'parser.c:1090,5'
          Dst:             __errno_location
        - Src:             'parser.c:1094,3'
          Dst:             pr_log_pri
        - Src:             'parser.c:1098,10'
          Dst:             pr_fsio_opendir
        - Src:             'parser.c:1102,16'
          Dst:             __errno_location
        - Src:             'parser.c:1102,7'
          Dst:             strerror
        - Src:             'parser.c:1100,5'
          Dst:             pr_log_pri
        - Src:             'parser.c:1103,5'
          Dst:             destroy_pool
        - Src:             'parser.c:1104,5'
          Dst:             __errno_location
        - Src:             'parser.c:1108,18'
          Dst:             make_array
        - Src:             'parser.c:1110,18'
          Dst:             pr_fsio_readdir
        - Src:             'parser.c:1111,5'
          Dst:             pr_signals_handle
        - Src:             'parser.c:1113,9'
          Dst:             strcmp
        - Src:             'parser.c:1114,9'
          Dst:             strcmp
        - Src:             'parser.c:1119,11'
          Dst:             is_tmp_file
        - Src:             'parser.c:1120,9'
          Dst:             pr_trace_msg
        - Src:             'parser.c:1127,9'
          Dst:             pr_fnmatch
        - Src:             'parser.c:1128,7'
          Dst:             pr_trace_msg
        - Src:             'parser.c:1132,47'
          Dst:             pdircat
        - Src:             'parser.c:1132,19'
          Dst:             push_array
        - Src:             'parser.c:1137,3'
          Dst:             pr_fsio_closedir
        - Src:             'parser.c:1140,5'
          Dst:             pr_log_pri
        - Src:             'parser.c:1142,5'
          Dst:             destroy_pool
        - Src:             'parser.c:1143,5'
          Dst:             __errno_location
        - Src:             'parser.c:1149,3'
          Dst:             qsort
        - Src:             'parser.c:1149,3'
          Dst:             config_filename_cmp
        - Src:             'parser.c:1156,11'
          Dst:             parse_config_path2
        - Src:             'parser.c:1158,16'
          Dst:             __errno_location
        - Src:             'parser.c:1161,22'
          Dst:             strerror
        - Src:             'parser.c:1160,7'
          Dst:             pr_trace_msg
        - Src:             'parser.c:1163,7'
          Dst:             destroy_pool
        - Src:             'parser.c:1164,7'
          Dst:             __errno_location
        - Src:             'parser.c:1169,3'
          Dst:             destroy_pool
    - functionName:    is_tmp_file
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 962
      functionLinenumberEnd: 972
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          51
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - pr_fnmatch
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:966,9'
          Dst:             pr_fnmatch
    - functionName:    config_filename_cmp
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 974
      functionLinenumberEnd: 975
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:975,10'
          Dst:             strcmp
    - functionName:    add_config_source
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pcalloc
        - pr_pool_create_sz
        - pr_pool_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:74,7'
          Dst:             pr_pool_create_sz
        - Src:             'parser.c:75,3'
          Dst:             pr_pool_tag
        - Src:             'parser.c:77,8'
          Dst:             pcalloc
    - functionName:    pr_parser_config_ctxt_push
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - push_array
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:319,5'
          Dst:             __errno_location
        - Src:             'parser.c:324,5'
          Dst:             __errno_location
        - Src:             'parser.c:332,42'
          Dst:             push_array
    - functionName:    pr_parser_read_line
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 790
      functionLinenumberEnd: 862
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          251
      EdgeCount:       56
      CyclomaticComplexity: 16
      functionsReached:
        - __ctype_b_loc
        - __errno_location
        - pr_fsio_getline
        - pr_log_pri
        - pr_signals_handle
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:798,5'
          Dst:             __errno_location
        - Src:             'parser.c:803,5'
          Dst:             __errno_location
        - Src:             'parser.c:811,11'
          Dst:             pr_fsio_getline
        - Src:             'parser.c:816,5'
          Dst:             pr_signals_handle
        - Src:             'parser.c:818,14'
          Dst:             strlen
        - Src:             'parser.c:836,7'
          Dst:             pr_log_pri
        - Src:             'parser.c:842,31'
          Dst:             __ctype_b_loc
    - functionName:    pr_parser_parse_line
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 634
      functionLinenumberEnd: 752
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          370
      EdgeCount:       61
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - get_config_word
        - make_array
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
        - pr_signals_handle
        - pr_str_get_word
        - pstrcat
        - pstrdup
        - push_array
        - strchr
        - strcmp
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:643,5'
          Dst:             __errno_location
        - Src:             'parser.c:648,16'
          Dst:             strlen
        - Src:             'parser.c:652,5'
          Dst:             __errno_location
        - Src:             'parser.c:659,14'
          Dst:             make_sub_pool
        - Src:             'parser.c:660,3'
          Dst:             pr_pool_tag
        - Src:             'parser.c:662,9'
          Dst:             pcalloc
        - Src:             'parser.c:668,9'
          Dst:             make_array
        - Src:             'parser.c:669,18'
          Dst:             pr_str_get_word
        - Src:             'parser.c:672,5'
          Dst:             pr_signals_handle
        - Src:             'parser.c:673,12'
          Dst:             get_config_word
        - Src:             'parser.c:679,9'
          Dst:             strchr
        - Src:             'parser.c:682,23'
          Dst:             pr_str_get_word
        - Src:             'parser.c:683,9'
          Dst:             pr_signals_handle
        - Src:             'parser.c:685,40'
          Dst:             pstrdup
        - Src:             'parser.c:685,21'
          Dst:             push_array
        - Src:             'parser.c:690,19'
          Dst:             push_array
        - Src:             'parser.c:696,15'
          Dst:             push_array
        - Src:             'parser.c:721,14'
          Dst:             strlen
        - Src:             'parser.c:726,11'
          Dst:             strcmp
        - Src:             'parser.c:735,16'
          Dst:             strlen
        - Src:             'parser.c:737,24'
          Dst:             pstrcat
        - Src:             'parser.c:743,11'
          Dst:             pstrdup
        - Src:             'parser.c:747,11'
          Dst:             pstrcat
    - functionName:    get_all_directives
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 344
      functionLinenumberEnd: 368
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - make_array
        - pr_signals_handle
        - pr_stash_get_symbol2
        - pstrdup
        - push_array
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:350,11'
          Dst:             make_array
        - Src:             'parser.c:354,9'
          Dst:             pr_stash_get_symbol2
        - Src:             'parser.c:356,5'
          Dst:             pr_signals_handle
        - Src:             'parser.c:359,46'
          Dst:             pstrdup
        - Src:             'parser.c:359,25'
          Dst:             push_array
        - Src:             'parser.c:365,11'
          Dst:             pr_stash_get_symbol2
    - functionName:    remove_config_source
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - destroy_pool
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:172,5'
          Dst:             destroy_pool
    - functionName:    get_config_word
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          144
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - pr_env_get
        - pr_signals_handle
        - pr_trace_msg
        - pstrdup
        - pstrndup
        - sreplace
        - strchr
        - strlen
        - strstr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:102,13'
          Dst:             strlen
        - Src:             'parser.c:106,5'
          Dst:             pr_trace_msg
        - Src:             'parser.c:114,11'
          Dst:             strstr
        - Src:             'parser.c:119,7'
          Dst:             pr_signals_handle
        - Src:             'parser.c:121,14'
          Dst:             strchr
        - Src:             'parser.c:127,15'
          Dst:             strstr
        - Src:             'parser.c:132,13'
          Dst:             pstrndup
        - Src:             'parser.c:134,13'
          Dst:             pstrndup
        - Src:             'parser.c:136,7'
          Dst:             pr_trace_msg
        - Src:             'parser.c:138,13'
          Dst:             pr_env_get
        - Src:             'parser.c:143,9'
          Dst:             pr_trace_msg
        - Src:             'parser.c:146,25'
          Dst:             sreplace
        - Src:             'parser.c:147,15'
          Dst:             strstr
        - Src:             'parser.c:151,7'
          Dst:             pr_trace_msg
        - Src:             'parser.c:155,23'
          Dst:             sreplace
        - Src:             'parser.c:156,13'
          Dst:             strstr
        - Src:             'parser.c:160,5'
          Dst:             pr_trace_msg
        - Src:             'parser.c:164,10'
          Dst:             pstrdup
    - functionName:    pr_parser_set_include_opts
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 947
      functionLinenumberEnd: 953
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_parser_server_ctxt_open
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 908
      functionLinenumberEnd: 944
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          109
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - make_sub_pool
        - palloc
        - pcalloc
        - pr_inet_getservport
        - pr_parser_server_ctxt_push
        - pr_pool_tag
        - pr_table_nalloc
        - pstrdup
        - xaset_insert_end
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:912,7'
          Dst:             make_sub_pool
        - Src:             'parser.c:913,3'
          Dst:             pr_pool_tag
        - Src:             'parser.c:915,22'
          Dst:             pcalloc
        - Src:             'parser.c:919,14'
          Dst:             pr_table_nalloc
        - Src:             'parser.c:925,22'
          Dst:             palloc
        - Src:             'parser.c:934,3'
          Dst:             xaset_insert_end
        - Src:             'parser.c:937,24'
          Dst:             pstrdup
        - Src:             'parser.c:941,19'
          Dst:             pr_inet_getservport
        - Src:             'parser.c:943,10'
          Dst:             pr_parser_server_ctxt_push
    - functionName:    pr_parser_server_ctxt_push
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 891
      functionLinenumberEnd: 906
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - push_array
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:893,5'
          Dst:             __errno_location
        - Src:             'parser.c:898,5'
          Dst:             __errno_location
        - Src:             'parser.c:902,40'
          Dst:             push_array
    - functionName:    pr_parser_server_ctxt_get
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 882
      functionLinenumberEnd: 889
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:887,3'
          Dst:             __errno_location
    - functionName:    pr_parser_server_ctxt_close
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 864
      functionLinenumberEnd: 880
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:866,5'
          Dst:             __errno_location
        - Src:             'parser.c:872,5'
          Dst:             __errno_location
    - functionName:    pr_parser_prepare
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 754
      functionLinenumberEnd: 780
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          72
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - make_array
        - make_sub_pool
        - pr_pool_tag
        - push_array
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:758,21'
          Dst:             make_sub_pool
        - Src:             'parser.c:759,7'
          Dst:             pr_pool_tag
        - Src:             'parser.c:772,22'
          Dst:             make_array
        - Src:             'parser.c:773,40'
          Dst:             push_array
        - Src:             'parser.c:776,22'
          Dst:             make_array
        - Src:             'parser.c:777,40'
          Dst:             push_array
    - functionName:    pr_parser_get_lineno
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_parser_config_ctxt_open
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 315
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          182
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - make_sub_pool
        - pcalloc
        - pr_parser_config_ctxt_push
        - pr_pool_tag
        - pstrdup
        - strcasecmp
        - xaset_create
        - xaset_insert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:260,5'
          Dst:             __errno_location
        - Src:             'parser.c:280,7'
          Dst:             strcasecmp
        - Src:             'parser.c:282,28'
          Dst:             make_sub_pool
        - Src:             'parser.c:283,7'
          Dst:             pr_pool_tag
        - Src:             'parser.c:289,12'
          Dst:             make_sub_pool
        - Src:             'parser.c:290,3'
          Dst:             pr_pool_tag
        - Src:             'parser.c:292,22'
          Dst:             pcalloc
        - Src:             'parser.c:295,22'
          Dst:             make_sub_pool
        - Src:             'parser.c:296,12'
          Dst:             xaset_create
        - Src:             'parser.c:300,3'
          Dst:             xaset_insert
        - Src:             'parser.c:305,13'
          Dst:             pstrdup
        - Src:             'parser.c:313,10'
          Dst:             pr_parser_config_ctxt_push
    - functionName:    pr_parser_config_ctxt_get
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:250,3'
          Dst:             __errno_location
    - functionName:    pr_parser_config_ctxt_close
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          161
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - destroy_pool
        - xaset_remove
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:214,7'
          Dst:             xaset_remove
        - Src:             'parser.c:215,7'
          Dst:             destroy_pool
        - Src:             'parser.c:231,5'
          Dst:             xaset_remove
        - Src:             'parser.c:232,5'
          Dst:             destroy_pool
    - functionName:    pr_parser_cleanup
      functionSourceFile: '/src/proftpd/src/parser.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          64
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - destroy_pool
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'parser.c:183,7'
          Dst:             __errno_location
        - Src:             'parser.c:187,5'
          Dst:             destroy_pool
    - functionName:    regexp_cleanup
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          76
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - destroy_pool
        - regexp_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'regexp.c:162,9'
          Dst:             regexp_free
        - Src:             'regexp.c:167,5'
          Dst:             destroy_pool
    - functionName:    regexp_free
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - destroy_pool
        - regfree
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'regexp.c:145,5'
          Dst:             regfree
        - Src:             'regexp.c:151,3'
          Dst:             destroy_pool
    - functionName:    regfree
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    regexp_exit_ev
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - regexp_cleanup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'regexp.c:174,3'
          Dst:             regexp_cleanup
    - functionName:    regexp_restart_ev
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - regexp_cleanup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'regexp.c:178,3'
          Dst:             regexp_cleanup
    - functionName:    init_regexp
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 967
      functionLinenumberEnd: 984
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_event_register
        - regexp_exit_ev
        - regexp_restart_ev
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'regexp.c:976,3'
          Dst:             pr_event_register
        - Src:             'regexp.c:976,3'
          Dst:             regexp_restart_ev
        - Src:             'regexp.c:977,3'
          Dst:             pr_event_register
        - Src:             'regexp.c:977,3'
          Dst:             regexp_exit_ev
    - functionName:    pr_regexp_set_engine
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 882
      functionLinenumberEnd: 965
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          88
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pr_trace_msg
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'regexp.c:891,5'
          Dst:             pr_trace_msg
        - Src:             'regexp.c:895,7'
          Dst:             strcasecmp
        - Src:             'regexp.c:896,7'
          Dst:             strcasecmp
        - Src:             'regexp.c:897,7'
          Dst:             strcasecmp
        - Src:             'regexp.c:898,5'
          Dst:             __errno_location
        - Src:             'regexp.c:955,7'
          Dst:             strcasecmp
        - Src:             'regexp.c:956,7'
          Dst:             strcasecmp
        - Src:             'regexp.c:957,5'
          Dst:             __errno_location
    - functionName:    pr_regexp_set_limits
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 868
      functionLinenumberEnd: 879
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    regexp_exec_posix
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 754
      functionLinenumberEnd: 807
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          176
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - pr_regexp_get_pattern
        - pr_trace_get_level
        - pr_trace_msg
        - regexec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'regexp.c:759,5'
          Dst:             pr_regexp_get_pattern
        - Src:             'regexp.c:757,3'
          Dst:             pr_trace_msg
        - Src:             'regexp.c:763,9'
          Dst:             regexec
        - Src:             'regexp.c:768,7'
          Dst:             pr_regexp_get_pattern
        - Src:             'regexp.c:766,5'
          Dst:             pr_trace_msg
        - Src:             'regexp.c:771,10'
          Dst:             pr_trace_get_level
        - Src:             'regexp.c:788,12'
          Dst:             pr_regexp_get_pattern
        - Src:             'regexp.c:786,10'
          Dst:             pr_trace_msg
        - Src:             'regexp.c:794,9'
          Dst:             pr_trace_get_level
        - Src:             'regexp.c:803,10'
          Dst:             pr_regexp_get_pattern
        - Src:             'regexp.c:801,7'
          Dst:             pr_trace_msg
    - functionName:    pr_regexp_get_pattern
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          45
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'regexp.c:431,5'
          Dst:             __errno_location
        - Src:             'regexp.c:436,5'
          Dst:             __errno_location
    - functionName:    regexec
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_regexp_exec
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 812
      functionLinenumberEnd: 865
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - int
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - regexp_exec_posix
      functionUses:    20
      BranchProfiles:  []
      Callsites:
        - Src:             'regexp.c:817,5'
          Dst:             __errno_location
        - Src:             'regexp.c:855,9'
          Dst:             regexp_exec_posix
    - functionName:    pr_regexp_error
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 427
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          75
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - regerror
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'regexp.c:422,11'
          Dst:             regerror
    - functionName:    regerror
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_regexp_compile
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_regexp_compile_posix
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'regexp.c:390,10'
          Dst:             pr_regexp_compile_posix
    - functionName:    pr_regexp_compile_posix
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 357
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          93
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - pcalloc
        - pr_trace_msg
        - pstrdup
        - regcomp
        - regfree
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'regexp.c:329,5'
          Dst:             __errno_location
        - Src:             'regexp.c:334,5'
          Dst:             regfree
        - Src:             'regexp.c:338,3'
          Dst:             pr_trace_msg
        - Src:             'regexp.c:340,18'
          Dst:             pstrdup
        - Src:             'regexp.c:349,13'
          Dst:             pcalloc
        - Src:             'regexp.c:353,9'
          Dst:             regcomp
    - functionName:    regcomp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_regexp_free
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          119
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - regexp_free
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'regexp.c:224,7'
          Dst:             regexp_free
    - functionName:    pr_regexp_alloc
      functionSourceFile: '/src/proftpd/src/regexp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - make_array
        - make_sub_pool
        - pcalloc
        - pr_pool_create_sz
        - pr_pool_tag
        - push_array
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'regexp.c:189,19'
          Dst:             make_sub_pool
        - Src:             'regexp.c:190,5'
          Dst:             pr_pool_tag
        - Src:             'regexp.c:191,19'
          Dst:             make_array
        - Src:             'regexp.c:194,13'
          Dst:             pr_pool_create_sz
        - Src:             'regexp.c:195,3'
          Dst:             pr_pool_tag
        - Src:             'regexp.c:197,9'
          Dst:             pcalloc
        - Src:             'regexp.c:202,21'
          Dst:             push_array
    - functionName:    gid_hash_cb
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gid_keycmp_cb
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    uid_hash_cb
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    uid_keycmp_cb
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_auth
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2420
      functionLinenumberEnd: 2426
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - make_sub_pool
        - pr_pool_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:2422,17'
          Dst:             make_sub_pool
        - Src:             'auth.c:2423,5'
          Dst:             pr_pool_tag
    - functionName:    pr_auth_bcrypt
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2397
      functionLinenumberEnd: 2417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          81
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - bcrypt_hashpass
        - palloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:2404,5'
          Dst:             __errno_location
        - Src:             'auth.c:2408,7'
          Dst:             bcrypt_hashpass
        - Src:             'auth.c:2412,9'
          Dst:             palloc
    - functionName:    pr_auth_set_max_password_len
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2380
      functionLinenumberEnd: 2393
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_auth_remove_auth_only_module
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2277
      functionLinenumberEnd: 2318
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          110
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pr_trace_msg
        - strcmp
        - strerror
        - xaset_remove
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:2281,5'
          Dst:             __errno_location
        - Src:             'auth.c:2289,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2295,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2297,5'
          Dst:             __errno_location
        - Src:             'auth.c:2303,9'
          Dst:             strcmp
        - Src:             'auth.c:2304,11'
          Dst:             xaset_remove
        - Src:             'auth.c:2306,44'
          Dst:             __errno_location
        - Src:             'auth.c:2306,35'
          Dst:             strerror
        - Src:             'auth.c:2305,9'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2310,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2316,3'
          Dst:             __errno_location
    - functionName:    pr_auth_clear_auth_only_modules
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2266
      functionLinenumberEnd: 2275
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:2268,5'
          Dst:             __errno_location
        - Src:             'auth.c:2273,3'
          Dst:             pr_trace_msg
    - functionName:    pr_auth_add_auth_only_module
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2218
      functionLinenumberEnd: 2264
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          136
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
        - pr_trace_msg
        - pstrdup
        - strcmp
        - strerror
        - xaset_create
        - xaset_insert_end
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:2222,5'
          Dst:             __errno_location
        - Src:             'auth.c:2227,17'
          Dst:             make_sub_pool
        - Src:             'auth.c:2228,5'
          Dst:             pr_pool_tag
        - Src:             'auth.c:2235,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2241,24'
          Dst:             xaset_create
        - Src:             'auth.c:2247,9'
          Dst:             strcmp
        - Src:             'auth.c:2248,7'
          Dst:             __errno_location
        - Src:             'auth.c:2253,9'
          Dst:             pcalloc
        - Src:             'auth.c:2254,15'
          Dst:             pstrdup
        - Src:             'auth.c:2256,7'
          Dst:             xaset_insert_end
        - Src:             'auth.c:2258,40'
          Dst:             __errno_location
        - Src:             'auth.c:2258,31'
          Dst:             strerror
        - Src:             'auth.c:2257,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2262,3'
          Dst:             pr_trace_msg
    - functionName:    pr_auth_cache_set
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2102
      functionLinenumberEnd: 2216
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         69
      ICount:          384
      EdgeCount:       91
      CyclomaticComplexity: 24
      functionsReached:
        - __errno_location
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:2105,5'
          Dst:             __errno_location
        - Src:             'auth.c:2112,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2117,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2122,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2128,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2134,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2140,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2146,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2152,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2158,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2166,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2171,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2176,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2181,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2186,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2192,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2198,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2204,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2210,7'
          Dst:             pr_trace_msg
    - functionName:    pr_auth_cache_clear
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2070
      functionLinenumberEnd: 2100
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         18
      ICount:          91
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - pr_table_empty
        - pr_table_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:2072,5'
          Dst:             pr_table_empty
        - Src:             'auth.c:2073,5'
          Dst:             pr_table_free
        - Src:             'auth.c:2078,5'
          Dst:             pr_table_empty
        - Src:             'auth.c:2079,5'
          Dst:             pr_table_free
        - Src:             'auth.c:2084,5'
          Dst:             pr_table_empty
        - Src:             'auth.c:2085,5'
          Dst:             pr_table_free
        - Src:             'auth.c:2090,5'
          Dst:             pr_table_empty
        - Src:             'auth.c:2091,5'
          Dst:             pr_table_free
        - Src:             'auth.c:2096,5'
          Dst:             pr_table_empty
        - Src:             'auth.c:2097,5'
          Dst:             pr_table_free
    - functionName:    set_groups
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1942
      functionLinenumberEnd: 2068
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          326
      EdgeCount:       62
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - destroy_pool
        - getuid
        - make_sub_pool
        - pcalloc
        - pr_log_debug
        - pr_pool_tag
        - pr_snprintf
        - pr_trace_msg
        - pstrcat
        - setgid
        - setgroups
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:1956,7'
          Dst:             getuid
        - Src:             'auth.c:1961,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1963,5'
          Dst:             __errno_location
        - Src:             'auth.c:1973,11'
          Dst:             setgid
        - Src:             'auth.c:1988,11'
          Dst:             setgid
        - Src:             'auth.c:1994,14'
          Dst:             make_sub_pool
        - Src:             'auth.c:1995,3'
          Dst:             pr_pool_tag
        - Src:             'auth.c:1997,15'
          Dst:             pcalloc
        - Src:             'auth.c:2027,5'
          Dst:             pr_snprintf
        - Src:             'auth.c:2030,15'
          Dst:             pstrcat
        - Src:             'auth.c:2033,3'
          Dst:             pr_log_debug
        - Src:             'auth.c:2037,9'
          Dst:             setgroups
        - Src:             'auth.c:2039,18'
          Dst:             __errno_location
        - Src:             'auth.c:2041,5'
          Dst:             destroy_pool
        - Src:             'auth.c:2043,5'
          Dst:             __errno_location
        - Src:             'auth.c:2050,9'
          Dst:             setgid
        - Src:             'auth.c:2052,18'
          Dst:             __errno_location
        - Src:             'auth.c:2055,7'
          Dst:             destroy_pool
        - Src:             'auth.c:2058,5'
          Dst:             __errno_location
        - Src:             'auth.c:2064,5'
          Dst:             destroy_pool
    - functionName:    setgroups
      functionSourceFile: ''
      linkageType:     externalLinkage
      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:    pr_auth_chroot
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1863
      functionLinenumberEnd: 1940
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          150
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - destroy_pool
        - make_sub_pool
        - pr_env_get
        - pr_env_set
        - pr_error_destroy
        - pr_error_set_where
        - pr_error_set_why
        - pr_error_strerror
        - pr_event_generate
        - pr_fsio_chroot_with_error
        - pr_localtime
        - pr_log_debug
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
        - pstrcat
        - pstrdup
        - strerror
        - time
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:1872,5'
          Dst:             __errno_location
        - Src:             'auth.c:1885,8'
          Dst:             pr_env_get
        - Src:             'auth.c:1887,40'
          Dst:             pstrdup
        - Src:             'auth.c:1887,9'
          Dst:             pr_env_set
        - Src:             'auth.c:1890,42'
          Dst:             __errno_location
        - Src:             'auth.c:1890,33'
          Dst:             strerror
        - Src:             'auth.c:1889,7'
          Dst:             pr_log_debug
        - Src:             'auth.c:1893,7'
          Dst:             pr_log_debug
        - Src:             'auth.c:1897,5'
          Dst:             pr_log_debug
        - Src:             'auth.c:1900,3'
          Dst:             pr_log_debug
        - Src:             'auth.c:1906,14'
          Dst:             make_sub_pool
        - Src:             'auth.c:1907,9'
          Dst:             time
        - Src:             'auth.c:1908,10'
          Dst:             pr_localtime
        - Src:             'auth.c:1910,3'
          Dst:             pr_event_generate
        - Src:             'auth.c:1912,3'
          Dst:             pr_privs_root
        - Src:             'auth.c:1913,9'
          Dst:             pr_fsio_chroot_with_error
        - Src:             'auth.c:1914,12'
          Dst:             __errno_location
        - Src:             'auth.c:1915,3'
          Dst:             pr_privs_relinquish
        - Src:             'auth.c:1918,5'
          Dst:             pr_error_set_where
        - Src:             'auth.c:1919,27'
          Dst:             pstrcat
        - Src:             'auth.c:1919,5'
          Dst:             pr_error_set_why
        - Src:             'auth.c:1923,36'
          Dst:             pr_error_strerror
        - Src:             'auth.c:1923,7'
          Dst:             pr_log_pri
        - Src:             'auth.c:1924,7'
          Dst:             pr_error_destroy
        - Src:             'auth.c:1929,52'
          Dst:             strerror
        - Src:             'auth.c:1928,7'
          Dst:             pr_log_pri
        - Src:             'auth.c:1932,5'
          Dst:             destroy_pool
        - Src:             'auth.c:1933,5'
          Dst:             __errno_location
        - Src:             'auth.c:1937,3'
          Dst:             pr_log_debug
        - Src:             'auth.c:1938,3'
          Dst:             destroy_pool
    - functionName:    pr_auth_is_valid_shell
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1820
      functionLinenumberEnd: 1861
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          107
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - fclose
        - fgets
        - fopen
        - get_param_ptr
        - pr_signals_handle
        - pr_str_strip_end
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:1828,25'
          Dst:             get_param_ptr
        - Src:             'auth.c:1835,10'
          Dst:             fopen
        - Src:             'auth.c:1843,12'
          Dst:             fgets
        - Src:             'auth.c:1844,7'
          Dst:             pr_signals_handle
        - Src:             'auth.c:1847,7'
          Dst:             pr_str_strip_end
        - Src:             'auth.c:1849,11'
          Dst:             strcmp
        - Src:             'auth.c:1857,5'
          Dst:             fclose
    - functionName:    pr_auth_banned_by_ftpusers
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1759
      functionLinenumberEnd: 1818
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          187
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - __ctype_b_loc
        - __errno_location
        - fclose
        - fgets
        - fopen
        - get_param_ptr
        - pr_privs_relinquish
        - pr_privs_root
        - pr_signals_handle
        - pr_str_strip_end
        - pr_trace_msg
        - strcmp
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:1767,19'
          Dst:             get_param_ptr
        - Src:             'auth.c:1774,5'
          Dst:             pr_privs_root
        - Src:             'auth.c:1775,10'
          Dst:             fopen
        - Src:             'auth.c:1776,14'
          Dst:             __errno_location
        - Src:             'auth.c:1777,5'
          Dst:             pr_privs_relinquish
        - Src:             'auth.c:1782,15'
          Dst:             strerror
        - Src:             'auth.c:1780,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1788,12'
          Dst:             fgets
        - Src:             'auth.c:1791,7'
          Dst:             pr_signals_handle
        - Src:             'auth.c:1794,7'
          Dst:             pr_str_strip_end
        - Src:             'auth.c:1797,14'
          Dst:             __ctype_b_loc
        - Src:             'auth.c:1806,11'
          Dst:             strcmp
        - Src:             'auth.c:1814,5'
          Dst:             fclose
    - functionName:    pr_auth_get_anon_config
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1540
      functionLinenumberEnd: 1756
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         135
      ICount:          665
      EdgeCount:       182
      CyclomaticComplexity: 49
      functionsReached:
        - find_config
        - find_config2
        - find_config_next
        - find_config_next2
        - find_config_set_top
        - get_param_ptr
        - pr_signals_handle
        - strcmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:1552,22'
          Dst:             get_param_ptr
        - Src:             'auth.c:1570,7'
          Dst:             find_config2
        - Src:             'auth.c:1576,7'
          Dst:             pr_signals_handle
        - Src:             'auth.c:1579,11'
          Dst:             strcmp
        - Src:             'auth.c:1580,11'
          Dst:             strcmp
        - Src:             'auth.c:1586,19'
          Dst:             find_config_next2
        - Src:             'auth.c:1597,29'
          Dst:             get_param_ptr
        - Src:             'auth.c:1599,5'
          Dst:             pr_signals_handle
        - Src:             'auth.c:1604,11'
          Dst:             find_config_next2
        - Src:             'auth.c:1617,5'
          Dst:             find_config_set_top
        - Src:             'auth.c:1618,9'
          Dst:             find_config_next2
        - Src:             'auth.c:1622,10'
          Dst:             strcmp
        - Src:             'auth.c:1623,10'
          Dst:             strcmp
        - Src:             'auth.c:1650,9'
          Dst:             find_config
        - Src:             'auth.c:1653,5'
          Dst:             find_config_set_top
        - Src:             'auth.c:1665,7'
          Dst:             pr_signals_handle
        - Src:             'auth.c:1667,26'
          Dst:             get_param_ptr
        - Src:             'auth.c:1673,11'
          Dst:             strcmp
        - Src:             'auth.c:1684,19'
          Dst:             find_config_next
        - Src:             'auth.c:1691,23'
          Dst:             get_param_ptr
        - Src:             'auth.c:1709,27'
          Dst:             get_param_ptr
        - Src:             'auth.c:1736,23'
          Dst:             get_param_ptr
        - Src:             'auth.c:1749,24'
          Dst:             get_param_ptr
    - functionName:    pr_auth_getgroups
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1462
      functionLinenumberEnd: 1536
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          342
      EdgeCount:       80
      CyclomaticComplexity: 22
      functionsReached:
        - __errno_location
        - destroy_pool
        - dispatch_auth
        - make_array
        - make_cmd
        - pr_gid2str
        - pr_log_debug
        - pr_signals_handle
        - pstrcat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:1469,5'
          Dst:             __errno_location
        - Src:             'auth.c:1475,18'
          Dst:             make_array
        - Src:             'auth.c:1479,20'
          Dst:             make_array
        - Src:             'auth.c:1482,9'
          Dst:             make_cmd
        - Src:             'auth.c:1485,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:1504,9'
          Dst:             pr_signals_handle
        - Src:             'auth.c:1506,11'
          Dst:             pr_gid2str
        - Src:             'auth.c:1505,19'
          Dst:             pstrcat
        - Src:             'auth.c:1509,7'
          Dst:             pr_log_debug
        - Src:             'auth.c:1520,9'
          Dst:             pr_signals_handle
        - Src:             'auth.c:1521,21'
          Dst:             pstrcat
        - Src:             'auth.c:1524,7'
          Dst:             pr_log_debug
        - Src:             'auth.c:1531,5'
          Dst:             destroy_pool
    - functionName:    make_cmd
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          133
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:370,7'
          Dst:             pcalloc
        - Src:             'auth.c:378,15'
          Dst:             pcalloc
        - Src:             'auth.c:392,14'
          Dst:             make_sub_pool
        - Src:             'auth.c:393,3'
          Dst:             pr_pool_tag
        - Src:             'auth.c:396,14'
          Dst:             make_sub_pool
        - Src:             'auth.c:397,3'
          Dst:             pr_pool_tag
    - functionName:    dispatch_auth
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          230
      EdgeCount:       52
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - mod_create_ret
        - pr_module_call
        - pr_signals_handle
        - pr_stash_get_symbol2
        - pr_trace_msg
        - strerror
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:407,15'
          Dst:             pr_stash_get_symbol2
        - Src:             'auth.c:410,18'
          Dst:             __errno_location
        - Src:             'auth.c:413,14'
          Dst:             strerror
        - Src:             'auth.c:412,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:414,12'
          Dst:             strerror
        - Src:             'auth.c:414,12'
          Dst:             mod_create_ret
        - Src:             'auth.c:420,5'
          Dst:             pr_signals_handle
        - Src:             'auth.c:426,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:430,10'
          Dst:             pr_module_call
        - Src:             'auth.c:438,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:460,16'
          Dst:             pr_stash_get_symbol2
        - Src:             'auth.c:467,7'
          Dst:             pr_trace_msg
    - functionName:    groupcache_get
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_gid2str
        - pr_table_get
        - pr_trace_msg
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:340,9'
          Dst:             pr_table_get
        - Src:             'auth.c:345,56'
          Dst:             pr_gid2str
        - Src:             'auth.c:344,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:351,73'
          Dst:             __errno_location
        - Src:             'auth.c:351,64'
          Dst:             strerror
        - Src:             'auth.c:350,4'
          Dst:             pr_trace_msg
        - Src:             'auth.c:354,3'
          Dst:             __errno_location
    - functionName:    groupcache_create
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          32
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - pr_table_alloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:298,17'
          Dst:             pr_table_alloc
    - functionName:    pr_auth_name2gid
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1402
      functionLinenumberEnd: 1459
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          217
      EdgeCount:       61
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
        - destroy_pool
        - dispatch_auth
        - groupcache_add
        - groupcache_create
        - groupcache_get
        - make_cmd
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:1411,5'
          Dst:             __errno_location
        - Src:             'auth.c:1415,3'
          Dst:             groupcache_create
        - Src:             'auth.c:1420,9'
          Dst:             groupcache_get
        - Src:             'auth.c:1424,9'
          Dst:             __errno_location
        - Src:             'auth.c:1431,9'
          Dst:             make_cmd
        - Src:             'auth.c:1432,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:1439,7'
          Dst:             groupcache_add
        - Src:             'auth.c:1445,5'
          Dst:             __errno_location
        - Src:             'auth.c:1449,5'
          Dst:             destroy_pool
        - Src:             'auth.c:1455,5'
          Dst:             groupcache_add
    - functionName:    groupcache_add
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - groupcache_create
        - palloc
        - pr_gid2str
        - pr_table_add
        - pr_table_exists
        - pr_table_rewind
        - pr_trace_msg
        - pstrdup
        - strerror
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:303,3'
          Dst:             groupcache_create
        - Src:             'auth.c:308,12'
          Dst:             pr_table_rewind
        - Src:             'auth.c:309,13'
          Dst:             pr_table_exists
        - Src:             'auth.c:317,20'
          Dst:             pstrdup
        - Src:             'auth.c:318,19'
          Dst:             palloc
        - Src:             'auth.c:321,11'
          Dst:             pr_table_add
        - Src:             'auth.c:322,11'
          Dst:             __errno_location
        - Src:             'auth.c:325,11'
          Dst:             pr_gid2str
        - Src:             'auth.c:325,49'
          Dst:             __errno_location
        - Src:             'auth.c:325,40'
          Dst:             strerror
        - Src:             'auth.c:323,9'
          Dst:             pr_trace_msg
        - Src:             'auth.c:330,11'
          Dst:             pr_gid2str
        - Src:             'auth.c:328,9'
          Dst:             pr_trace_msg
    - functionName:    usercache_get
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_table_get
        - pr_trace_msg
        - pr_uid2str
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:277,9'
          Dst:             pr_table_get
        - Src:             'auth.c:282,54'
          Dst:             pr_uid2str
        - Src:             'auth.c:281,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:288,71'
          Dst:             __errno_location
        - Src:             'auth.c:288,62'
          Dst:             strerror
        - Src:             'auth.c:287,4'
          Dst:             pr_trace_msg
        - Src:             'auth.c:291,3'
          Dst:             __errno_location
    - functionName:    usercache_create
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          32
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - pr_table_alloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:235,16'
          Dst:             pr_table_alloc
    - functionName:    pr_auth_name2uid
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1343
      functionLinenumberEnd: 1400
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          217
      EdgeCount:       61
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
        - destroy_pool
        - dispatch_auth
        - make_cmd
        - usercache_add
        - usercache_create
        - usercache_get
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:1352,5'
          Dst:             __errno_location
        - Src:             'auth.c:1356,3'
          Dst:             usercache_create
        - Src:             'auth.c:1361,9'
          Dst:             usercache_get
        - Src:             'auth.c:1365,9'
          Dst:             __errno_location
        - Src:             'auth.c:1372,9'
          Dst:             make_cmd
        - Src:             'auth.c:1373,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:1380,7'
          Dst:             usercache_add
        - Src:             'auth.c:1386,5'
          Dst:             __errno_location
        - Src:             'auth.c:1390,5'
          Dst:             destroy_pool
        - Src:             'auth.c:1396,5'
          Dst:             usercache_add
    - functionName:    usercache_add
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - palloc
        - pr_table_add
        - pr_table_exists
        - pr_table_rewind
        - pr_trace_msg
        - pr_uid2str
        - pstrdup
        - strerror
        - usercache_create
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:240,3'
          Dst:             usercache_create
        - Src:             'auth.c:245,12'
          Dst:             pr_table_rewind
        - Src:             'auth.c:246,13'
          Dst:             pr_table_exists
        - Src:             'auth.c:254,20'
          Dst:             pstrdup
        - Src:             'auth.c:255,19'
          Dst:             palloc
        - Src:             'auth.c:258,11'
          Dst:             pr_table_add
        - Src:             'auth.c:259,11'
          Dst:             __errno_location
        - Src:             'auth.c:262,11'
          Dst:             pr_uid2str
        - Src:             'auth.c:262,49'
          Dst:             __errno_location
        - Src:             'auth.c:262,40'
          Dst:             strerror
        - Src:             'auth.c:260,9'
          Dst:             pr_trace_msg
        - Src:             'auth.c:267,11'
          Dst:             pr_uid2str
        - Src:             'auth.c:265,9'
          Dst:             pr_trace_msg
    - functionName:    gidcache_get
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_gid2str
        - pr_table_kget
        - pr_trace_msg
        - sstrncpy
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:212,9'
          Dst:             pr_table_kget
        - Src:             'auth.c:215,7'
          Dst:             sstrncpy
        - Src:             'auth.c:219,9'
          Dst:             pr_gid2str
        - Src:             'auth.c:217,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:224,52'
          Dst:             pr_gid2str
        - Src:             'auth.c:225,16'
          Dst:             __errno_location
        - Src:             'auth.c:225,7'
          Dst:             strerror
        - Src:             'auth.c:223,4'
          Dst:             pr_trace_msg
        - Src:             'auth.c:228,3'
          Dst:             __errno_location
    - functionName:    gidcache_create
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          36
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - gid_hash_cb
        - gid_keycmp_cb
        - pr_table_alloc
        - pr_table_ctl
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:163,15'
          Dst:             pr_table_alloc
        - Src:             'auth.c:165,12'
          Dst:             pr_table_ctl
        - Src:             'auth.c:165,12'
          Dst:             gid_keycmp_cb
        - Src:             'auth.c:167,12'
          Dst:             pr_table_ctl
        - Src:             'auth.c:167,12'
          Dst:             gid_hash_cb
    - functionName:    pr_auth_gid2name
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1287
      functionLinenumberEnd: 1341
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          199
      EdgeCount:       53
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - destroy_pool
        - dispatch_auth
        - gidcache_add
        - gidcache_create
        - gidcache_get
        - make_cmd
        - pr_snprintf
        - sstrncpy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:1296,5'
          Dst:             __errno_location
        - Src:             'auth.c:1300,3'
          Dst:             gidcache_create
        - Src:             'auth.c:1303,9'
          Dst:             gidcache_get
        - Src:             'auth.c:1309,9'
          Dst:             make_cmd
        - Src:             'auth.c:1310,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:1315,5'
          Dst:             sstrncpy
        - Src:             'auth.c:1319,7'
          Dst:             gidcache_add
        - Src:             'auth.c:1326,5'
          Dst:             destroy_pool
        - Src:             'auth.c:1332,5'
          Dst:             pr_snprintf
        - Src:             'auth.c:1336,7'
          Dst:             gidcache_add
    - functionName:    gidcache_add
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          93
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - gidcache_create
        - palloc
        - pr_gid2str
        - pr_table_kadd
        - pr_table_kexists
        - pr_table_rewind
        - pr_trace_msg
        - pstrndup
        - strerror
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:173,3'
          Dst:             gidcache_create
        - Src:             'auth.c:178,12'
          Dst:             pr_table_rewind
        - Src:             'auth.c:179,13'
          Dst:             pr_table_kexists
        - Src:             'auth.c:187,19'
          Dst:             palloc
        - Src:             'auth.c:190,17'
          Dst:             strlen
        - Src:             'auth.c:193,11'
          Dst:             pstrndup
        - Src:             'auth.c:192,11'
          Dst:             pr_table_kadd
        - Src:             'auth.c:194,11'
          Dst:             __errno_location
        - Src:             'auth.c:197,11'
          Dst:             pr_gid2str
        - Src:             'auth.c:197,43'
          Dst:             __errno_location
        - Src:             'auth.c:197,34'
          Dst:             strerror
        - Src:             'auth.c:195,9'
          Dst:             pr_trace_msg
        - Src:             'auth.c:202,11'
          Dst:             pr_gid2str
        - Src:             'auth.c:200,9'
          Dst:             pr_trace_msg
    - functionName:    uidcache_get
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_table_kget
        - pr_trace_msg
        - pr_uid2str
        - sstrncpy
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:140,9'
          Dst:             pr_table_kget
        - Src:             'auth.c:143,7'
          Dst:             sstrncpy
        - Src:             'auth.c:147,9'
          Dst:             pr_uid2str
        - Src:             'auth.c:145,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:152,52'
          Dst:             pr_uid2str
        - Src:             'auth.c:153,16'
          Dst:             __errno_location
        - Src:             'auth.c:153,7'
          Dst:             strerror
        - Src:             'auth.c:151,4'
          Dst:             pr_trace_msg
        - Src:             'auth.c:156,3'
          Dst:             __errno_location
    - functionName:    uidcache_create
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          36
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - pr_table_alloc
        - pr_table_ctl
        - uid_hash_cb
        - uid_keycmp_cb
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:91,15'
          Dst:             pr_table_alloc
        - Src:             'auth.c:93,12'
          Dst:             pr_table_ctl
        - Src:             'auth.c:93,12'
          Dst:             uid_keycmp_cb
        - Src:             'auth.c:95,12'
          Dst:             pr_table_ctl
        - Src:             'auth.c:95,12'
          Dst:             uid_hash_cb
    - functionName:    pr_auth_uid2name
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1231
      functionLinenumberEnd: 1285
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          199
      EdgeCount:       53
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - destroy_pool
        - dispatch_auth
        - make_cmd
        - pr_snprintf
        - sstrncpy
        - uidcache_add
        - uidcache_create
        - uidcache_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:1240,5'
          Dst:             __errno_location
        - Src:             'auth.c:1244,3'
          Dst:             uidcache_create
        - Src:             'auth.c:1247,9'
          Dst:             uidcache_get
        - Src:             'auth.c:1253,9'
          Dst:             make_cmd
        - Src:             'auth.c:1254,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:1259,5'
          Dst:             sstrncpy
        - Src:             'auth.c:1263,7'
          Dst:             uidcache_add
        - Src:             'auth.c:1270,5'
          Dst:             destroy_pool
        - Src:             'auth.c:1276,5'
          Dst:             pr_snprintf
        - Src:             'auth.c:1280,7'
          Dst:             uidcache_add
    - functionName:    uidcache_add
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          93
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - palloc
        - pr_table_kadd
        - pr_table_kexists
        - pr_table_rewind
        - pr_trace_msg
        - pr_uid2str
        - pstrndup
        - strerror
        - strlen
        - uidcache_create
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:101,3'
          Dst:             uidcache_create
        - Src:             'auth.c:106,12'
          Dst:             pr_table_rewind
        - Src:             'auth.c:107,13'
          Dst:             pr_table_kexists
        - Src:             'auth.c:115,19'
          Dst:             palloc
        - Src:             'auth.c:118,17'
          Dst:             strlen
        - Src:             'auth.c:121,11'
          Dst:             pstrndup
        - Src:             'auth.c:120,11'
          Dst:             pr_table_kadd
        - Src:             'auth.c:122,11'
          Dst:             __errno_location
        - Src:             'auth.c:125,11'
          Dst:             pr_uid2str
        - Src:             'auth.c:125,43'
          Dst:             __errno_location
        - Src:             'auth.c:125,34'
          Dst:             strerror
        - Src:             'auth.c:123,9'
          Dst:             pr_trace_msg
        - Src:             'auth.c:130,11'
          Dst:             pr_uid2str
        - Src:             'auth.c:128,9'
          Dst:             pr_trace_msg
    - functionName:    pr_auth_requires_pass
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1202
      functionLinenumberEnd: 1229
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          126
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - destroy_pool
        - dispatch_auth
        - make_cmd
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:1209,5'
          Dst:             __errno_location
        - Src:             'auth.c:1213,9'
          Dst:             make_cmd
        - Src:             'auth.c:1214,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:1224,5'
          Dst:             destroy_pool
    - functionName:    pr_auth_check
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1092
      functionLinenumberEnd: 1200
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          385
      EdgeCount:       87
      CyclomaticComplexity: 24
      functionsReached:
        - __errno_location
        - destroy_pool
        - dispatch_auth
        - get_authcode_str
        - make_cmd
        - pr_log_auth
        - pr_module_get
        - pr_signals_handle
        - pr_table_get
        - pr_trace_msg
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:1106,5'
          Dst:             __errno_location
        - Src:             'auth.c:1110,26'
          Dst:             strlen
        - Src:             'auth.c:1112,5'
          Dst:             pr_log_auth
        - Src:             'auth.c:1115,5'
          Dst:             __errno_location
        - Src:             'auth.c:1119,9'
          Dst:             make_cmd
        - Src:             'auth.c:1130,7'
          Dst:             pr_signals_handle
        - Src:             'auth.c:1132,11'
          Dst:             pr_module_get
        - Src:             'auth.c:1134,14'
          Dst:             dispatch_auth
        - Src:             'auth.c:1136,11'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1142,13'
          Dst:             destroy_pool
        - Src:             'auth.c:1148,24'
          Dst:             get_authcode_str
        - Src:             'auth.c:1146,11'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1156,13'
          Dst:             destroy_pool
        - Src:             'auth.c:1162,29'
          Dst:             get_authcode_str
        - Src:             'auth.c:1160,11'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1175,9'
          Dst:             pr_table_get
        - Src:             'auth.c:1179,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1185,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:1190,55'
          Dst:             get_authcode_str
        - Src:             'auth.c:1189,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1195,5'
          Dst:             destroy_pool
    - functionName:    get_authcode_str
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 859
      functionLinenumberEnd: 927
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          92
      EdgeCount:       34
      CyclomaticComplexity: 18
      functionsReached: []
      functionUses:    8
      BranchProfiles:
        - Branch String:   'auth.c:862,3'
          Branch Sides:    []
      Callsites:       []
    - functionName:    pr_auth_authorize
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1039
      functionLinenumberEnd: 1089
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          157
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - destroy_pool
        - dispatch_auth
        - get_authcode_str
        - make_cmd
        - pr_table_get
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:1047,5'
          Dst:             __errno_location
        - Src:             'auth.c:1051,9'
          Dst:             make_cmd
        - Src:             'auth.c:1057,9'
          Dst:             pr_table_get
        - Src:             'auth.c:1061,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1067,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:1079,56'
          Dst:             get_authcode_str
        - Src:             'auth.c:1078,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1084,5'
          Dst:             destroy_pool
    - functionName:    pr_auth_authenticate
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 930
      functionLinenumberEnd: 1037
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         72
      ICount:          413
      EdgeCount:       96
      CyclomaticComplexity: 26
      functionsReached:
        - __errno_location
        - destroy_pool
        - dispatch_auth
        - get_authcode_str
        - make_cmd
        - pr_module_get
        - pr_signals_handle
        - pr_table_get
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:939,5'
          Dst:             __errno_location
        - Src:             'auth.c:943,9'
          Dst:             make_cmd
        - Src:             'auth.c:954,7'
          Dst:             pr_signals_handle
        - Src:             'auth.c:956,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:959,11'
          Dst:             pr_module_get
        - Src:             'auth.c:961,14'
          Dst:             dispatch_auth
        - Src:             'auth.c:964,11'
          Dst:             pr_trace_msg
        - Src:             'auth.c:970,13'
          Dst:             destroy_pool
        - Src:             'auth.c:976,24'
          Dst:             get_authcode_str
        - Src:             'auth.c:974,11'
          Dst:             pr_trace_msg
        - Src:             'auth.c:981,11'
          Dst:             pr_trace_msg
        - Src:             'auth.c:987,13'
          Dst:             destroy_pool
        - Src:             'auth.c:993,24'
          Dst:             get_authcode_str
        - Src:             'auth.c:991,11'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1006,9'
          Dst:             pr_table_get
        - Src:             'auth.c:1010,7'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1016,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:1022,7'
          Dst:             get_authcode_str
        - Src:             'auth.c:1020,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1027,59'
          Dst:             get_authcode_str
        - Src:             'auth.c:1026,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:1032,5'
          Dst:             destroy_pool
    - functionName:    pr_auth_getgrgid
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 818
      functionLinenumberEnd: 857
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          152
      EdgeCount:       40
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - destroy_pool
        - dispatch_auth
        - make_cmd
        - pr_log_debug
        - pr_log_pri
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:824,5'
          Dst:             __errno_location
        - Src:             'auth.c:828,9'
          Dst:             make_cmd
        - Src:             'auth.c:829,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:837,5'
          Dst:             destroy_pool
        - Src:             'auth.c:843,5'
          Dst:             __errno_location
        - Src:             'auth.c:849,5'
          Dst:             pr_log_pri
        - Src:             'auth.c:850,5'
          Dst:             __errno_location
        - Src:             'auth.c:854,3'
          Dst:             pr_log_debug
    - functionName:    pr_auth_getgrnam
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 768
      functionLinenumberEnd: 816
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          194
      EdgeCount:       52
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - destroy_pool
        - dispatch_auth
        - gidcache_add
        - groupcache_add
        - make_cmd
        - pr_gid2str
        - pr_log_debug
        - pr_log_pri
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:775,5'
          Dst:             __errno_location
        - Src:             'auth.c:779,9'
          Dst:             make_cmd
        - Src:             'auth.c:780,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:788,5'
          Dst:             destroy_pool
        - Src:             'auth.c:794,5'
          Dst:             __errno_location
        - Src:             'auth.c:800,5'
          Dst:             pr_log_pri
        - Src:             'auth.c:801,5'
          Dst:             __errno_location
        - Src:             'auth.c:806,5'
          Dst:             gidcache_add
        - Src:             'auth.c:810,5'
          Dst:             groupcache_add
        - Src:             'auth.c:814,5'
          Dst:             pr_gid2str
        - Src:             'auth.c:813,3'
          Dst:             pr_log_debug
    - functionName:    pr_auth_getpwuid
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 766
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          166
      EdgeCount:       43
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - destroy_pool
        - dispatch_auth
        - make_cmd
        - pr_log_debug
        - pr_log_pri
        - pr_uid2str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:727,5'
          Dst:             __errno_location
        - Src:             'auth.c:731,9'
          Dst:             make_cmd
        - Src:             'auth.c:732,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:740,5'
          Dst:             destroy_pool
        - Src:             'auth.c:746,5'
          Dst:             __errno_location
        - Src:             'auth.c:752,5'
          Dst:             pr_log_pri
        - Src:             'auth.c:753,5'
          Dst:             __errno_location
        - Src:             'auth.c:758,5'
          Dst:             pr_log_pri
        - Src:             'auth.c:759,5'
          Dst:             __errno_location
        - Src:             'auth.c:764,19'
          Dst:             pr_uid2str
        - Src:             'auth.c:763,3'
          Dst:             pr_log_debug
    - functionName:    pr_auth_get_home
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2320
      functionLinenumberEnd: 2378
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          122
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - find_config
        - pr_event_generate
        - pr_log_debug
        - pr_table_add
        - pr_table_get
        - pr_table_remove
        - pr_trace_msg
        - pstrdup
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:2326,5'
          Dst:             __errno_location
        - Src:             'auth.c:2332,7'
          Dst:             find_config
        - Src:             'auth.c:2353,10'
          Dst:             pr_table_remove
        - Src:             'auth.c:2355,7'
          Dst:             pstrdup
        - Src:             'auth.c:2354,7'
          Dst:             pr_table_add
        - Src:             'auth.c:2357,64'
          Dst:             __errno_location
        - Src:             'auth.c:2357,55'
          Dst:             strerror
        - Src:             'auth.c:2356,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2361,3'
          Dst:             pr_event_generate
        - Src:             'auth.c:2363,14'
          Dst:             pr_table_get
        - Src:             'auth.c:2366,65'
          Dst:             __errno_location
        - Src:             'auth.c:2366,56'
          Dst:             strerror
        - Src:             'auth.c:2365,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:2370,10'
          Dst:             pr_table_remove
        - Src:             'auth.c:2372,3'
          Dst:             pr_log_debug
        - Src:             'auth.c:2374,3'
          Dst:             pr_trace_msg
    - functionName:    pr_auth_getpwnam
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 618
      functionLinenumberEnd: 719
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         61
      ICount:          351
      EdgeCount:       84
      CyclomaticComplexity: 25
      functionsReached:
        - __errno_location
        - destroy_pool
        - dispatch_auth
        - make_cmd
        - palloc
        - pr_auth_get_home
        - pr_log_debug
        - pr_log_pri
        - pr_table_add
        - pr_table_alloc
        - pr_table_exists
        - pr_table_set
        - pr_trace_msg
        - pr_uid2str
        - pstrdup
        - strerror
        - uidcache_add
        - usercache_add
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:626,5'
          Dst:             __errno_location
        - Src:             'auth.c:630,9'
          Dst:             make_cmd
        - Src:             'auth.c:631,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:639,5'
          Dst:             destroy_pool
        - Src:             'auth.c:645,5'
          Dst:             __errno_location
        - Src:             'auth.c:651,5'
          Dst:             pr_log_pri
        - Src:             'auth.c:652,5'
          Dst:             __errno_location
        - Src:             'auth.c:657,5'
          Dst:             pr_log_pri
        - Src:             'auth.c:658,5'
          Dst:             __errno_location
        - Src:             'auth.c:665,16'
          Dst:             pr_table_alloc
        - Src:             'auth.c:673,13'
          Dst:             palloc
        - Src:             'auth.c:676,13'
          Dst:             pr_table_exists
        - Src:             'auth.c:678,34'
          Dst:             pstrdup
        - Src:             'auth.c:678,11'
          Dst:             pr_table_add
        - Src:             'auth.c:682,35'
          Dst:             __errno_location
        - Src:             'auth.c:682,26'
          Dst:             strerror
        - Src:             'auth.c:680,9'
          Dst:             pr_trace_msg
        - Src:             'auth.c:685,9'
          Dst:             pr_trace_msg
        - Src:             'auth.c:691,34'
          Dst:             pstrdup
        - Src:             'auth.c:691,11'
          Dst:             pr_table_set
        - Src:             'auth.c:695,35'
          Dst:             __errno_location
        - Src:             'auth.c:695,26'
          Dst:             strerror
        - Src:             'auth.c:693,9'
          Dst:             pr_trace_msg
        - Src:             'auth.c:698,9'
          Dst:             pr_trace_msg
        - Src:             'auth.c:706,5'
          Dst:             uidcache_add
        - Src:             'auth.c:710,5'
          Dst:             usercache_add
        - Src:             'auth.c:714,26'
          Dst:             pr_auth_get_home
        - Src:             'auth.c:717,5'
          Dst:             pr_uid2str
        - Src:             'auth.c:716,3'
          Dst:             pr_log_debug
    - functionName:    pr_auth_getgrent
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 580
      functionLinenumberEnd: 616
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          142
      EdgeCount:       40
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - destroy_pool
        - dispatch_auth
        - make_cmd
        - pr_log_pri
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:586,5'
          Dst:             __errno_location
        - Src:             'auth.c:590,9'
          Dst:             make_cmd
        - Src:             'auth.c:591,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:599,5'
          Dst:             destroy_pool
        - Src:             'auth.c:610,5'
          Dst:             pr_log_pri
        - Src:             'auth.c:611,5'
          Dst:             __errno_location
    - functionName:    pr_auth_getpwent
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 578
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          156
      EdgeCount:       43
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - destroy_pool
        - dispatch_auth
        - make_cmd
        - pr_log_pri
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:542,5'
          Dst:             __errno_location
        - Src:             'auth.c:546,9'
          Dst:             make_cmd
        - Src:             'auth.c:547,8'
          Dst:             dispatch_auth
        - Src:             'auth.c:555,5'
          Dst:             destroy_pool
        - Src:             'auth.c:566,5'
          Dst:             pr_log_pri
        - Src:             'auth.c:567,5'
          Dst:             __errno_location
        - Src:             'auth.c:572,5'
          Dst:             pr_log_pri
        - Src:             'auth.c:573,5'
          Dst:             __errno_location
    - functionName:    pr_auth_endgrent
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 524
      functionLinenumberEnd: 534
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - destroy_pool
        - dispatch_auth
        - make_cmd
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:527,9'
          Dst:             make_cmd
        - Src:             'auth.c:528,10'
          Dst:             dispatch_auth
        - Src:             'auth.c:531,5'
          Dst:             destroy_pool
    - functionName:    pr_auth_setgrent
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 512
      functionLinenumberEnd: 522
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - destroy_pool
        - dispatch_auth
        - make_cmd
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:515,9'
          Dst:             make_cmd
        - Src:             'auth.c:516,10'
          Dst:             dispatch_auth
        - Src:             'auth.c:519,5'
          Dst:             destroy_pool
    - functionName:    pr_auth_endpwent
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 488
      functionLinenumberEnd: 510
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - destroy_pool
        - dispatch_auth
        - make_cmd
        - pr_table_count
        - pr_table_empty
        - pr_table_free
        - pr_trace_msg
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:491,9'
          Dst:             make_cmd
        - Src:             'auth.c:492,10'
          Dst:             dispatch_auth
        - Src:             'auth.c:495,5'
          Dst:             destroy_pool
        - Src:             'auth.c:502,18'
          Dst:             pr_table_count
        - Src:             'auth.c:503,5'
          Dst:             pr_trace_msg
        - Src:             'auth.c:506,12'
          Dst:             pr_table_empty
        - Src:             'auth.c:507,12'
          Dst:             pr_table_free
    - functionName:    pr_auth_setpwent
      functionSourceFile: '/src/proftpd/src/auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 486
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - destroy_pool
        - dispatch_auth
        - make_cmd
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'auth.c:479,9'
          Dst:             make_cmd
        - Src:             'auth.c:480,10'
          Dst:             dispatch_auth
        - Src:             'auth.c:483,5'
          Dst:             destroy_pool
    - functionName:    peek_is_abor_cmd
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 953
      functionLinenumberEnd: 1023
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         20
      ICount:          165
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pr_signals_handle
        - pr_trace_msg
        - recv
        - select
        - strerror
        - strncasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'data.c:964,3'
          Dst:             pr_trace_msg
        - Src:             'data.c:969,9'
          Dst:             select
        - Src:             'data.c:971,18'
          Dst:             __errno_location
        - Src:             'data.c:974,7'
          Dst:             pr_signals_handle
        - Src:             'data.c:975,13'
          Dst:             select
        - Src:             'data.c:980,55'
          Dst:             strerror
        - Src:             'data.c:979,5'
          Dst:             pr_trace_msg
        - Src:             'data.c:986,5'
          Dst:             pr_trace_msg
        - Src:             'data.c:998,9'
          Dst:             recv
        - Src:             'data.c:1000,18'
          Dst:             __errno_location
        - Src:             'data.c:1003,7'
          Dst:             pr_signals_handle
        - Src:             'data.c:1004,13'
          Dst:             recv
        - Src:             'data.c:1009,41'
          Dst:             strerror
        - Src:             'data.c:1008,5'
          Dst:             pr_trace_msg
        - Src:             'data.c:1013,3'
          Dst:             pr_trace_msg
        - Src:             'data.c:1015,7'
          Dst:             strncasecmp
        - Src:             'data.c:1016,5'
          Dst:             pr_trace_msg
        - Src:             'data.c:1020,3'
          Dst:             pr_trace_msg
    - functionName:    recv
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stalled_timeout_cb
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_event_generate
        - pr_log_pri
        - pr_session_disconnect
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'data.c:67,3'
          Dst:             pr_event_generate
        - Src:             'data.c:68,3'
          Dst:             pr_log_pri
        - Src:             'data.c:70,3'
          Dst:             pr_session_disconnect
    - functionName:    pr_data_sendfile
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1622
      functionLinenumberEnd: 1904
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         72
      ICount:          478
      EdgeCount:       98
      CyclomaticComplexity: 28
      functionsReached:
        - __errno_location
        - fcntl
        - pr_signals_handle
        - pr_timer_reset
        - sendfile
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'data.c:1632,5'
          Dst:             __errno_location
        - Src:             'data.c:1637,5'
          Dst:             __errno_location
        - Src:             'data.c:1642,5'
          Dst:             __errno_location
        - Src:             'data.c:1646,11'
          Dst:             fcntl
        - Src:             'data.c:1653,9'
          Dst:             fcntl
        - Src:             'data.c:1697,5'
          Dst:             __errno_location
        - Src:             'data.c:1698,11'
          Dst:             sendfile
        - Src:             'data.c:1704,11'
          Dst:             __errno_location
        - Src:             'data.c:1705,11'
          Dst:             __errno_location
        - Src:             'data.c:1710,7'
          Dst:             pr_signals_handle
        - Src:             'data.c:1719,9'
          Dst:             __errno_location
        - Src:             'data.c:1734,11'
          Dst:             pr_timer_reset
        - Src:             'data.c:1738,11'
          Dst:             pr_timer_reset
        - Src:             'data.c:1748,7'
          Dst:             pr_signals_handle
        - Src:             'data.c:1838,11'
          Dst:             __errno_location
        - Src:             'data.c:1848,9'
          Dst:             pr_signals_handle
        - Src:             'data.c:1859,11'
          Dst:             pr_timer_reset
        - Src:             'data.c:1863,11'
          Dst:             pr_timer_reset
        - Src:             'data.c:1875,15'
          Dst:             __errno_location
        - Src:             'data.c:1876,14'
          Dst:             fcntl
        - Src:             'data.c:1877,7'
          Dst:             __errno_location
        - Src:             'data.c:1886,12'
          Dst:             fcntl
        - Src:             'data.c:1890,5'
          Dst:             pr_timer_reset
        - Src:             'data.c:1894,5'
          Dst:             pr_timer_reset
    - functionName:    sendfile
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    poll_ctrl
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1025
      functionLinenumberEnd: 1234
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         68
      ICount:          461
      EdgeCount:       94
      CyclomaticComplexity: 28
      functionsReached:
        - __errno_location
        - destroy_pool
        - pcalloc
        - peek_is_abor_cmd
        - pr_cmd_cmp
        - pr_cmd_dispatch
        - pr_cmd_get_id
        - pr_cmd_read
        - pr_netio_abort
        - pr_netio_poll
        - pr_netio_reset_poll_interval
        - pr_netio_set_poll_interval
        - pr_proctitle_get
        - pr_proctitle_set_str
        - pr_response_add
        - pr_response_add_err
        - pr_response_flush
        - pr_response_get_pool
        - pr_response_send
        - pr_response_set_pool
        - pr_scoreboard_entry_get
        - pr_scoreboard_entry_update
        - pr_session_disconnect
        - pr_trace_msg
        - strerror
        - toupper
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'data.c:1032,3'
          Dst:             pr_trace_msg
        - Src:             'data.c:1033,3'
          Dst:             pr_netio_set_poll_interval
        - Src:             'data.c:1034,9'
          Dst:             pr_netio_poll
        - Src:             'data.c:1035,3'
          Dst:             pr_netio_reset_poll_interval
        - Src:             'data.c:1060,9'
          Dst:             peek_is_abor_cmd
        - Src:             'data.c:1061,7'
          Dst:             pr_trace_msg
        - Src:             'data.c:1067,9'
          Dst:             pr_netio_abort
        - Src:             'data.c:1068,9'
          Dst:             __errno_location
        - Src:             'data.c:1077,5'
          Dst:             pr_trace_msg
        - Src:             'data.c:1080,11'
          Dst:             pr_cmd_read
        - Src:             'data.c:1094,9'
          Dst:             strerror
        - Src:             'data.c:1092,7'
          Dst:             pr_trace_msg
        - Src:             'data.c:1095,7'
          Dst:             __errno_location
        - Src:             'data.c:1099,7'
          Dst:             pr_session_disconnect
        - Src:             'data.c:1108,15'
          Dst:             toupper
        - Src:             'data.c:1111,21'
          Dst:             pr_cmd_get_id
        - Src:             'data.c:1123,11'
          Dst:             pr_cmd_cmp
        - Src:             'data.c:1124,11'
          Dst:             pr_cmd_cmp
        - Src:             'data.c:1125,11'
          Dst:             pr_cmd_cmp
        - Src:             'data.c:1126,11'
          Dst:             pr_cmd_cmp
        - Src:             'data.c:1127,11'
          Dst:             pr_cmd_cmp
        - Src:             'data.c:1128,11'
          Dst:             pr_cmd_cmp
        - Src:             'data.c:1129,11'
          Dst:             pr_cmd_cmp
        - Src:             'data.c:1130,11'
          Dst:             pr_cmd_cmp
        - Src:             'data.c:1131,11'
          Dst:             pr_cmd_cmp
        - Src:             'data.c:1132,11'
          Dst:             pr_cmd_cmp
        - Src:             'data.c:1133,11'
          Dst:             pr_cmd_cmp
        - Src:             'data.c:1134,11'
          Dst:             pr_cmd_cmp
        - Src:             'data.c:1135,11'
          Dst:             pr_cmd_cmp
        - Src:             'data.c:1138,9'
          Dst:             pr_trace_msg
        - Src:             'data.c:1143,21'
          Dst:             pr_response_get_pool
        - Src:             'data.c:1145,9'
          Dst:             pr_response_set_pool
        - Src:             'data.c:1147,9'
          Dst:             pr_response_add_err
        - Src:             'data.c:1150,9'
          Dst:             pr_response_flush
        - Src:             'data.c:1152,9'
          Dst:             pr_response_set_pool
        - Src:             'data.c:1153,9'
          Dst:             destroy_pool
        - Src:             'data.c:1161,18'
          Dst:             pr_cmd_cmp
        - Src:             'data.c:1164,9'
          Dst:             pr_trace_msg
        - Src:             'data.c:1169,21'
          Dst:             pr_response_get_pool
        - Src:             'data.c:1171,9'
          Dst:             pr_response_set_pool
        - Src:             'data.c:1173,9'
          Dst:             pr_response_add
        - Src:             'data.c:1176,9'
          Dst:             pr_response_flush
        - Src:             'data.c:1178,9'
          Dst:             pr_response_set_pool
        - Src:             'data.c:1179,9'
          Dst:             destroy_pool
        - Src:             'data.c:1188,9'
          Dst:             pr_trace_msg
        - Src:             'data.c:1192,21'
          Dst:             pr_proctitle_get
        - Src:             'data.c:1194,23'
          Dst:             pcalloc
        - Src:             'data.c:1195,11'
          Dst:             pr_proctitle_get
        - Src:             'data.c:1201,19'
          Dst:             pr_scoreboard_entry_get
        - Src:             'data.c:1202,23'
          Dst:             pr_scoreboard_entry_get
        - Src:             'data.c:1205,21'
          Dst:             pr_response_get_pool
        - Src:             'data.c:1207,9'
          Dst:             pr_response_set_pool
        - Src:             'data.c:1208,9'
          Dst:             pr_cmd_dispatch
        - Src:             'data.c:1210,9'
          Dst:             pr_scoreboard_entry_update
        - Src:             'data.c:1212,9'
          Dst:             pr_scoreboard_entry_update
        - Src:             'data.c:1216,11'
          Dst:             pr_proctitle_set_str
        - Src:             'data.c:1219,9'
          Dst:             pr_response_flush
        - Src:             'data.c:1220,9'
          Dst:             pr_response_set_pool
        - Src:             'data.c:1221,9'
          Dst:             destroy_pool
        - Src:             'data.c:1229,7'
          Dst:             pr_trace_msg
        - Src:             'data.c:1231,7'
          Dst:             pr_response_send
    - functionName:    pr_data_xfer
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1243
      functionLinenumberEnd: 1615
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         150
      ICount:          891
      EdgeCount:       201
      CyclomaticComplexity: 53
      functionsReached:
        - __errno_location
        - destroy_pool
        - make_sub_pool
        - poll_ctrl
        - pr_ascii_ftp_from_crlf
        - pr_ascii_ftp_to_crlf
        - pr_config_get_server_xfer_bufsz
        - pr_gettimeofday_millis
        - pr_log_debug
        - pr_netio_read
        - pr_netio_write
        - pr_pool_tag
        - pr_signals_handle
        - pr_timer_reset
        - pr_trace_get_level
        - pr_trace_msg
        - strerror
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'data.c:1251,5'
          Dst:             __errno_location
        - Src:             'data.c:1258,3'
          Dst:             poll_ctrl
        - Src:             'data.c:1276,50'
          Dst:             strerror
        - Src:             'data.c:1274,5'
          Dst:             pr_trace_msg
        - Src:             'data.c:1279,51'
          Dst:             strerror
        - Src:             'data.c:1277,5'
          Dst:             pr_log_debug
        - Src:             'data.c:1281,5'
          Dst:             __errno_location
        - Src:             'data.c:1302,9'
          Dst:             pr_signals_handle
        - Src:             'data.c:1304,15'
          Dst:             pr_netio_read
        - Src:             'data.c:1307,24'
          Dst:             __errno_location
        - Src:             'data.c:1314,13'
          Dst:             __errno_location
        - Src:             'data.c:1315,13'
          Dst:             pr_signals_handle
        - Src:             'data.c:1317,19'
          Dst:             pr_netio_read
        - Src:             'data.c:1322,11'
          Dst:             destroy_pool
        - Src:             'data.c:1323,11'
          Dst:             __errno_location
        - Src:             'data.c:1329,15'
          Dst:             pr_trace_get_level
        - Src:             'data.c:1333,13'
          Dst:             pr_gettimeofday_millis
        - Src:             'data.c:1336,13'
          Dst:             pr_trace_msg
        - Src:             'data.c:1344,11'
          Dst:             pr_trace_msg
        - Src:             'data.c:1350,13'
          Dst:             pr_timer_reset
        - Src:             'data.c:1375,26'
          Dst:             make_sub_pool
        - Src:             'data.c:1376,15'
          Dst:             pr_pool_tag
        - Src:             'data.c:1379,19'
          Dst:             pr_ascii_ftp_from_crlf
        - Src:             'data.c:1382,26'
          Dst:             __errno_location
        - Src:             'data.c:1382,17'
          Dst:             strerror
        - Src:             'data.c:1381,15'
          Dst:             pr_trace_msg
        - Src:             'data.c:1428,13'
          Dst:             pr_netio_read
        - Src:             'data.c:1430,22'
          Dst:             __errno_location
        - Src:             'data.c:1437,11'
          Dst:             __errno_location
        - Src:             'data.c:1438,11'
          Dst:             pr_signals_handle
        - Src:             'data.c:1440,17'
          Dst:             pr_netio_read
        - Src:             'data.c:1448,9'
          Dst:             pr_trace_msg
        - Src:             'data.c:1452,15'
          Dst:             pr_trace_get_level
        - Src:             'data.c:1456,13'
          Dst:             pr_gettimeofday_millis
        - Src:             'data.c:1459,13'
          Dst:             pr_trace_msg
        - Src:             'data.c:1468,11'
          Dst:             pr_timer_reset
        - Src:             'data.c:1483,7'
          Dst:             pr_signals_handle
        - Src:             'data.c:1485,20'
          Dst:             pr_config_get_server_xfer_bufsz
        - Src:             'data.c:1486,18'
          Dst:             pr_config_get_server_xfer_bufsz
        - Src:             'data.c:1504,22'
          Dst:             make_sub_pool
        - Src:             'data.c:1505,11'
          Dst:             pr_pool_tag
        - Src:             'data.c:1516,15'
          Dst:             pr_ascii_ftp_to_crlf
        - Src:             'data.c:1520,22'
          Dst:             __errno_location
        - Src:             'data.c:1520,13'
          Dst:             strerror
        - Src:             'data.c:1519,11'
          Dst:             pr_trace_msg
        - Src:             'data.c:1531,16'
          Dst:             pr_netio_write
        - Src:             'data.c:1533,22'
          Dst:             __errno_location
        - Src:             'data.c:1541,11'
          Dst:             __errno_location
        - Src:             'data.c:1542,11'
          Dst:             pr_signals_handle
        - Src:             'data.c:1544,20'
          Dst:             pr_netio_write
        - Src:             'data.c:1548,9'
          Dst:             destroy_pool
        - Src:             'data.c:1555,9'
          Dst:             __errno_location
        - Src:             'data.c:1560,9'
          Dst:             pr_trace_msg
        - Src:             'data.c:1564,15'
          Dst:             pr_trace_get_level
        - Src:             'data.c:1568,13'
          Dst:             pr_gettimeofday_millis
        - Src:             'data.c:1571,13'
          Dst:             pr_trace_msg
        - Src:             'data.c:1579,11'
          Dst:             pr_timer_reset
        - Src:             'data.c:1601,5'
          Dst:             pr_timer_reset
        - Src:             'data.c:1613,3'
          Dst:             destroy_pool
    - functionName:    pr_data_abort
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 741
      functionLinenumberEnd: 948
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         74
      ICount:          340
      EdgeCount:       85
      CyclomaticComplexity: 13
      functionsReached:
        - pr_inet_lingering_abort
        - pr_inet_lingering_close
        - pr_log_pri
        - pr_response_add_err
        - pr_response_set_pool
        - pr_session_set_idle
        - pr_snprintf
        - pr_timer_remove
        - pr_timer_reset
        - pr_trace_msg
        - strerror
      functionUses:    20
      BranchProfiles:
        - Branch String:   'data.c:781,5'
          Branch Sides:    []
      Callsites:
        - Src:             'data.c:747,5'
          Dst:             strerror
        - Src:             'data.c:745,3'
          Dst:             pr_trace_msg
        - Src:             'data.c:755,7'
          Dst:             pr_inet_lingering_abort
        - Src:             'data.c:758,7'
          Dst:             pr_inet_lingering_close
        - Src:             'data.c:765,5'
          Dst:             pr_timer_reset
        - Src:             'data.c:769,5'
          Dst:             pr_timer_remove
        - Src:             'data.c:774,3'
          Dst:             pr_session_set_idle
        - Src:             'data.c:920,16'
          Dst:             strerror
        - Src:             'data.c:922,11'
          Dst:             pr_snprintf
        - Src:             'data.c:928,5'
          Dst:             pr_log_pri
        - Src:             'data.c:936,7'
          Dst:             pr_response_add_err
        - Src:             'data.c:942,5'
          Dst:             pr_response_set_pool
    - functionName:    pr_data_cleanup
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 735
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_data_clear_xfer_pool
        - pr_inet_lingering_close
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'data.c:724,5'
          Dst:             pr_inet_lingering_close
        - Src:             'data.c:728,3'
          Dst:             pr_data_clear_xfer_pool
    - functionName:    pr_data_clear_xfer_pool
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 476
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - destroy_pool
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'data.c:465,5'
          Dst:             destroy_pool
    - functionName:    pr_data_close
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 704
      functionLinenumberEnd: 710
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_data_close2
        - pr_response_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'data.c:705,3'
          Dst:             pr_data_close2
        - Src:             'data.c:708,5'
          Dst:             pr_response_add
    - functionName:    pr_data_close2
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 679
      functionLinenumberEnd: 701
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         12
      ICount:          62
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - pr_inet_lingering_close
        - pr_session_set_idle
        - pr_timer_remove
        - pr_timer_reset
        - signal
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'data.c:683,5'
          Dst:             pr_inet_lingering_close
        - Src:             'data.c:688,3'
          Dst:             signal
        - Src:             'data.c:691,5'
          Dst:             pr_timer_reset
        - Src:             'data.c:695,5'
          Dst:             pr_timer_remove
        - Src:             'data.c:700,3'
          Dst:             pr_session_set_idle
    - functionName:    data_urgent
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          43
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - data_urgent
        - pr_netio_abort
        - pr_trace_msg
        - signal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'data.c:82,5'
          Dst:             pr_trace_msg
        - Src:             'data.c:87,7'
          Dst:             pr_netio_abort
        - Src:             'data.c:91,3'
          Dst:             signal
        - Src:             'data.c:91,3'
          Dst:             data_urgent
    - functionName:    data_active_open
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         62
      ICount:          478
      EdgeCount:       81
      CyclomaticComplexity: 21
      functionsReached:
        - __errno_location
        - find_config
        - get_param_ptr
        - pr_data_close2
        - pr_inet_close
        - pr_inet_connect
        - pr_inet_create_conn2
        - pr_inet_generate_socket_event
        - pr_inet_openrw
        - pr_inet_set_nonblock
        - pr_inet_set_proto_opts
        - pr_inet_set_socket_opts2
        - pr_log_debug
        - pr_netaddr_get_family
        - pr_netaddr_get_ipstr
        - pr_netaddr_get_sockaddr
        - pr_netaddr_set_family
        - pr_netaddr_set_reverse_dns
        - pr_netaddr_set_sockaddr
        - pr_netaddr_v6tov4
        - pr_response_add_err
        - pr_response_send
        - pr_timer_add
        - stalled_timeout_cb
        - strerror
      functionUses:    1
      BranchProfiles:
        - Branch String:   'data.c:259,5'
          Branch Sides:    []
      Callsites:
        - Src:             'data.c:221,5'
          Dst:             __errno_location
        - Src:             'data.c:230,7'
          Dst:             pr_netaddr_get_family
        - Src:             'data.c:230,55'
          Dst:             pr_netaddr_get_family
        - Src:             'data.c:237,17'
          Dst:             pr_netaddr_v6tov4
        - Src:             'data.c:245,17'
          Dst:             get_param_ptr
        - Src:             'data.c:262,11'
          Dst:             pr_log_debug
        - Src:             'data.c:264,11'
          Dst:             __errno_location
        - Src:             'data.c:278,15'
          Dst:             pr_inet_create_conn2
        - Src:             'data.c:281,14'
          Dst:             __errno_location
        - Src:             'data.c:284,7'
          Dst:             strerror
        - Src:             'data.c:283,5'
          Dst:             pr_response_add_err
        - Src:             'data.c:286,5'
          Dst:             __errno_location
        - Src:             'data.c:294,7'
          Dst:             pr_netaddr_get_family
        - Src:             'data.c:297,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'data.c:295,5'
          Dst:             pr_log_debug
        - Src:             'data.c:299,47'
          Dst:             pr_netaddr_get_family
        - Src:             'data.c:299,5'
          Dst:             pr_netaddr_set_family
        - Src:             'data.c:300,49'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'data.c:300,5'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'data.c:307,5'
          Dst:             pr_timer_add
        - Src:             'data.c:307,5'
          Dst:             stalled_timeout_cb
        - Src:             'data.c:311,9'
          Dst:             pr_netaddr_set_reverse_dns
        - Src:             'data.c:316,5'
          Dst:             pr_inet_set_socket_opts2
        - Src:             'data.c:321,5'
          Dst:             pr_inet_set_socket_opts2
        - Src:             'data.c:326,7'
          Dst:             find_config
        - Src:             'data.c:337,3'
          Dst:             pr_inet_set_proto_opts
        - Src:             'data.c:339,3'
          Dst:             pr_inet_generate_socket_event
        - Src:             'data.c:342,7'
          Dst:             pr_inet_connect
        - Src:             'data.c:348,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'data.c:349,7'
          Dst:             strerror
        - Src:             'data.c:346,5'
          Dst:             pr_log_debug
        - Src:             'data.c:351,7'
          Dst:             strerror
        - Src:             'data.c:350,5'
          Dst:             pr_response_add_err
        - Src:             'data.c:352,5'
          Dst:             pr_data_close2
        - Src:             'data.c:354,5'
          Dst:             __errno_location
        - Src:             'data.c:358,10'
          Dst:             pr_inet_openrw
        - Src:             'data.c:361,3'
          Dst:             pr_netaddr_set_reverse_dns
        - Src:             'data.c:365,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'data.c:364,5'
          Dst:             pr_log_debug
        - Src:             'data.c:367,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'data.c:366,5'
          Dst:             pr_log_debug
        - Src:             'data.c:371,9'
          Dst:             pr_response_send
        - Src:             'data.c:376,9'
          Dst:             pr_response_send
        - Src:             'data.c:401,7'
          Dst:             pr_response_send
        - Src:             'data.c:404,5'
          Dst:             pr_inet_close
        - Src:             'data.c:405,12'
          Dst:             pr_inet_set_nonblock
        - Src:             'data.c:411,5'
          Dst:             strerror
        - Src:             'data.c:410,3'
          Dst:             pr_response_add_err
        - Src:             'data.c:413,3'
          Dst:             pr_data_close2
        - Src:             'data.c:415,3'
          Dst:             __errno_location
    - functionName:    data_passive_open
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          252
      EdgeCount:       49
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - pr_data_close2
        - pr_inet_accept
        - pr_inet_close
        - pr_inet_set_nonblock
        - pr_inet_set_socket_opts2
        - pr_log_debug
        - pr_log_pri
        - pr_netaddr_get_ipstr
        - pr_netaddr_set_reverse_dns
        - pr_response_add_err
        - pr_response_send
        - pr_timer_add
        - stalled_timeout_cb
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'data.c:123,5'
          Dst:             pr_timer_add
        - Src:             'data.c:123,5'
          Dst:             stalled_timeout_cb
        - Src:             'data.c:131,9'
          Dst:             pr_netaddr_set_reverse_dns
        - Src:             'data.c:136,5'
          Dst:             pr_inet_set_socket_opts2
        - Src:             'data.c:141,5'
          Dst:             pr_inet_set_socket_opts2
        - Src:             'data.c:146,7'
          Dst:             pr_inet_accept
        - Src:             'data.c:147,3'
          Dst:             pr_netaddr_set_reverse_dns
        - Src:             'data.c:150,5'
          Dst:             pr_inet_close
        - Src:             'data.c:151,12'
          Dst:             pr_inet_set_nonblock
        - Src:             'data.c:155,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'data.c:154,5'
          Dst:             pr_log_debug
        - Src:             'data.c:157,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'data.c:156,5'
          Dst:             pr_log_debug
        - Src:             'data.c:161,9'
          Dst:             pr_response_send
        - Src:             'data.c:166,9'
          Dst:             pr_response_send
        - Src:             'data.c:191,7'
          Dst:             pr_response_send
        - Src:             'data.c:201,25'
          Dst:             strerror
        - Src:             'data.c:200,5'
          Dst:             pr_log_pri
        - Src:             'data.c:206,5'
          Dst:             strerror
        - Src:             'data.c:205,3'
          Dst:             pr_response_add_err
        - Src:             'data.c:207,3'
          Dst:             pr_data_close2
        - Src:             'data.c:209,3'
          Dst:             __errno_location
    - functionName:    pr_data_open
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 677
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          284
      EdgeCount:       58
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - data_active_open
        - data_new_xfer
        - data_passive_open
        - gettimeofday
        - pr_data_close2
        - pr_gettimeofday_millis
        - pr_log_pri
        - pr_netio_postopen
        - pr_netio_set_poll_interval
        - pr_response_add_err
        - pr_timer_reset
        - sigaction
        - sigemptyset
        - strerror
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'data.c:542,5'
          Dst:             __errno_location
        - Src:             'data.c:552,7'
          Dst:             __errno_location
        - Src:             'data.c:561,7'
          Dst:             __errno_location
        - Src:             'data.c:570,5'
          Dst:             data_new_xfer
        - Src:             'data.c:583,11'
          Dst:             data_passive_open
        - Src:             'data.c:587,11'
          Dst:             data_active_open
        - Src:             'data.c:594,7'
          Dst:             pr_netio_postopen
        - Src:             'data.c:598,7'
          Dst:             strerror
        - Src:             'data.c:597,5'
          Dst:             pr_response_add_err
        - Src:             'data.c:600,5'
          Dst:             pr_data_close2
        - Src:             'data.c:602,5'
          Dst:             __errno_location
        - Src:             'data.c:606,7'
          Dst:             pr_netio_postopen
        - Src:             'data.c:610,7'
          Dst:             strerror
        - Src:             'data.c:609,5'
          Dst:             pr_response_add_err
        - Src:             'data.c:612,5'
          Dst:             pr_data_close2
        - Src:             'data.c:614,5'
          Dst:             __errno_location
        - Src:             'data.c:619,3'
          Dst:             gettimeofday
        - Src:             'data.c:631,5'
          Dst:             pr_timer_reset
        - Src:             'data.c:637,3'
          Dst:             pr_netio_set_poll_interval
        - Src:             'data.c:648,3'
          Dst:             sigemptyset
        - Src:             'data.c:658,7'
          Dst:             sigaction
        - Src:             'data.c:660,68'
          Dst:             __errno_location
        - Src:             'data.c:660,59'
          Dst:             strerror
        - Src:             'data.c:659,5'
          Dst:             pr_log_pri
        - Src:             'data.c:672,3'
          Dst:             pr_gettimeofday_millis
    - functionName:    data_new_xfer
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - make_sub_pool
        - pcalloc
        - pr_config_get_server_xfer_bufsz
        - pr_data_clear_xfer_pool
        - pr_pool_tag
        - pr_trace_msg
        - pstrdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'data.c:95,3'
          Dst:             pr_data_clear_xfer_pool
        - Src:             'data.c:97,20'
          Dst:             make_sub_pool
        - Src:             'data.c:98,3'
          Dst:             pr_pool_tag
        - Src:             'data.c:100,27'
          Dst:             pstrdup
        - Src:             'data.c:102,26'
          Dst:             pr_config_get_server_xfer_bufsz
        - Src:             'data.c:103,22'
          Dst:             pcalloc
        - Src:             'data.c:104,3'
          Dst:             pr_trace_msg
    - functionName:    pr_data_init
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 518
      functionLinenumberEnd: 533
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          43
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - data_new_xfer
        - pr_ascii_ftp_reset
        - pr_log_debug
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'data.c:520,5'
          Dst:             data_new_xfer
        - Src:             'data.c:524,7'
          Dst:             pr_log_debug
        - Src:             'data.c:532,3'
          Dst:             pr_ascii_ftp_reset
    - functionName:    pr_data_ignore_ascii
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 491
      functionLinenumberEnd: 516
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          81
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'data.c:496,5'
          Dst:             __errno_location
    - functionName:    pr_data_reset
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 489
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          40
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - destroy_pool
        - pr_ascii_ftp_reset
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'data.c:480,3'
          Dst:             pr_ascii_ftp_reset
        - Src:             'data.c:484,5'
          Dst:             destroy_pool
    - functionName:    pr_data_set_timeout
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 459
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       10
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    4
      BranchProfiles:
        - Branch String:   'data.c:443,3'
          Branch Sides:    []
      Callsites:       []
    - functionName:    pr_data_get_timeout
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 440
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       17
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
      functionUses:    5
      BranchProfiles:
        - Branch String:   'data.c:424,3'
          Branch Sides:    []
      Callsites:
        - Src:             'data.c:438,3'
          Dst:             __errno_location
    - functionName:    pr_data_set_linger
      functionSourceFile: '/src/proftpd/src/data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 419
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_event_dump
      functionSourceFile: '/src/proftpd/src/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 386
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          123
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - pr_signals_handle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'event.c:399,5'
          Dst:             pr_signals_handle
    - functionName:    pr_event_generate
      functionSourceFile: '/src/proftpd/src/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 384
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          221
      EdgeCount:       50
      CyclomaticComplexity: 14
      functionsReached:
        - pr_trace_msg
        - strcmp
        - strncmp
      functionUses:    66
      BranchProfiles:  []
      Callsites:
        - Src:             'event.c:331,7'
          Dst:             strcmp
        - Src:             'event.c:338,9'
          Dst:             strncmp
        - Src:             'event.c:343,9'
          Dst:             pr_trace_msg
        - Src:             'event.c:360,13'
          Dst:             pr_trace_msg
        - Src:             'event.c:365,13'
          Dst:             pr_trace_msg
    - functionName:    pr_event_listening
      functionSourceFile: '/src/proftpd/src/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 314
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          105
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'event.c:285,5'
          Dst:             __errno_location
        - Src:             'event.c:297,9'
          Dst:             strncmp
    - functionName:    pr_event_unregister
      functionSourceFile: '/src/proftpd/src/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          250
      EdgeCount:       62
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - pr_signals_handle
        - pr_trace_msg
        - strncmp
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'event.c:214,3'
          Dst:             pr_trace_msg
        - Src:             'event.c:225,5'
          Dst:             pr_signals_handle
        - Src:             'event.c:228,9'
          Dst:             strncmp
        - Src:             'event.c:273,5'
          Dst:             __errno_location
    - functionName:    event_cleanup_cb
      functionSourceFile: '/src/proftpd/src/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_event_register
      functionSourceFile: '/src/proftpd/src/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          319
      EdgeCount:       59
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - event_cleanup_cb
        - make_sub_pool
        - pcalloc
        - pr_pool_create_sz
        - pr_pool_tag
        - pr_signals_handle
        - pr_trace_msg
        - pstrdup
        - register_cleanup2
        - strcmp
        - strlen
        - strncmp
      functionUses:    36
      BranchProfiles:  []
      Callsites:
        - Src:             'event.c:95,5'
          Dst:             __errno_location
        - Src:             'event.c:100,18'
          Dst:             make_sub_pool
        - Src:             'event.c:101,5'
          Dst:             pr_pool_tag
        - Src:             'event.c:103,5'
          Dst:             register_cleanup2
        - Src:             'event.c:103,5'
          Dst:             event_cleanup_cb
        - Src:             'event.c:106,3'
          Dst:             pr_trace_msg
        - Src:             'event.c:110,9'
          Dst:             pcalloc
        - Src:             'event.c:118,9'
          Dst:             strcmp
        - Src:             'event.c:131,9'
          Dst:             strncmp
        - Src:             'event.c:145,11'
          Dst:             pr_signals_handle
        - Src:             'event.c:149,13'
          Dst:             __errno_location
        - Src:             'event.c:185,14'
          Dst:             pr_pool_create_sz
        - Src:             'event.c:186,3'
          Dst:             pr_pool_tag
        - Src:             'event.c:188,9'
          Dst:             pcalloc
        - Src:             'event.c:190,16'
          Dst:             pstrdup
        - Src:             'event.c:191,20'
          Dst:             strlen
    - functionName:    xaset_copy
      functionSourceFile: '/src/proftpd/src/sets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          185
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - palloc
        - xaset_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sets.c:197,5'
          Dst:             __errno_location
        - Src:             'sets.c:203,5'
          Dst:             __errno_location
        - Src:             'sets.c:209,13'
          Dst:             xaset_create
        - Src:             'sets.c:219,52'
          Dst:             palloc
    - functionName:    xaset_create
      functionSourceFile: '/src/proftpd/src/sets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          82
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - palloc
      functionUses:    25
      BranchProfiles:  []
      Callsites:
        - Src:             'sets.c:40,5'
          Dst:             __errno_location
        - Src:             'sets.c:46,13'
          Dst:             palloc
    - functionName:    xaset_remove
      functionSourceFile: '/src/proftpd/src/sets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          132
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
      functionUses:    30
      BranchProfiles:  []
      Callsites:
        - Src:             'sets.c:156,5'
          Dst:             __errno_location
        - Src:             'sets.c:168,5'
          Dst:             __errno_location
    - functionName:    xaset_insert_sort
      functionSourceFile: '/src/proftpd/src/sets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          142
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sets.c:116,5'
          Dst:             __errno_location
    - functionName:    xaset_insert_end
      functionSourceFile: '/src/proftpd/src/sets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          85
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'sets.c:86,5'
          Dst:             __errno_location
    - functionName:    xaset_insert
      functionSourceFile: '/src/proftpd/src/sets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'sets.c:65,5'
          Dst:             __errno_location
    - functionName:    pr_pidfile_remove
      functionSourceFile: '/src/proftpd/src/pidfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unlink
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'pidfile.c:87,10'
          Dst:             unlink
    - functionName:    pr_pidfile_write
      functionSourceFile: '/src/proftpd/src/pidfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         12
      ICount:          90
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - close
        - dprintf
        - fchmod
        - fprintf
        - getpid
        - open
        - pr_privs_relinquish
        - pr_privs_root
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pidfile.c:56,3'
          Dst:             pr_privs_root
        - Src:             'pidfile.c:57,8'
          Dst:             open
        - Src:             'pidfile.c:58,12'
          Dst:             __errno_location
        - Src:             'pidfile.c:59,3'
          Dst:             pr_privs_relinquish
        - Src:             'pidfile.c:62,5'
          Dst:             __errno_location
        - Src:             'pidfile.c:67,3'
          Dst:             pr_privs_root
        - Src:             'pidfile.c:68,9'
          Dst:             fchmod
        - Src:             'pidfile.c:69,12'
          Dst:             __errno_location
        - Src:             'pidfile.c:70,3'
          Dst:             pr_privs_relinquish
        - Src:             'pidfile.c:74,21'
          Dst:             strerror
        - Src:             'pidfile.c:73,5'
          Dst:             fprintf
        - Src:             'pidfile.c:77,40'
          Dst:             getpid
        - Src:             'pidfile.c:77,3'
          Dst:             dprintf
        - Src:             'pidfile.c:78,7'
          Dst:             close
        - Src:             'pidfile.c:80,16'
          Dst:             __errno_location
        - Src:             'pidfile.c:80,7'
          Dst:             strerror
        - Src:             'pidfile.c:79,5'
          Dst:             fprintf
    - functionName:    dprintf
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_pidfile_set
      functionSourceFile: '/src/proftpd/src/pidfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pidfile.c:38,5'
          Dst:             __errno_location
        - Src:             'pidfile.c:44,5'
          Dst:             __errno_location
        - Src:             'pidfile.c:48,18'
          Dst:             pstrdup
    - functionName:    pr_pidfile_get
      functionSourceFile: '/src/proftpd/src/pidfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_netacl_get_str2
      functionSourceFile: '/src/proftpd/src/netacl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 598
      functionLinenumberEnd: 675
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          272
      EdgeCount:       55
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - pr_snprintf
        - pstrcat
      functionUses:    1
      BranchProfiles:
        - Branch String:   'netacl.c:607,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netacl.c:603,5'
          Dst:             __errno_location
        - Src:             'netacl.c:609,13'
          Dst:             pstrcat
        - Src:             'netacl.c:611,15'
          Dst:             pstrcat
        - Src:             'netacl.c:616,13'
          Dst:             pstrcat
        - Src:             'netacl.c:618,15'
          Dst:             pstrcat
        - Src:             'netacl.c:623,13'
          Dst:             pstrcat
        - Src:             'netacl.c:629,9'
          Dst:             pr_snprintf
        - Src:             'netacl.c:630,15'
          Dst:             pstrcat
        - Src:             'netacl.c:637,13'
          Dst:             pstrcat
        - Src:             'netacl.c:639,15'
          Dst:             pstrcat
        - Src:             'netacl.c:644,13'
          Dst:             pstrcat
        - Src:             'netacl.c:646,15'
          Dst:             pstrcat
        - Src:             'netacl.c:651,13'
          Dst:             pstrcat
        - Src:             'netacl.c:653,15'
          Dst:             pstrcat
        - Src:             'netacl.c:658,13'
          Dst:             pstrcat
        - Src:             'netacl.c:660,15'
          Dst:             pstrcat
        - Src:             'netacl.c:667,13'
          Dst:             pstrcat
        - Src:             'netacl.c:670,13'
          Dst:             pstrcat
    - functionName:    pr_netacl_get_negated
      functionSourceFile: '/src/proftpd/src/netacl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 589
      functionLinenumberEnd: 596
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'netacl.c:591,5'
          Dst:             __errno_location
    - functionName:    pr_netacl_dup
      functionSourceFile: '/src/proftpd/src/netacl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 550
      functionLinenumberEnd: 587
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          135
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pcalloc
        - pr_netaddr_alloc
        - pr_netaddr_get_family
        - pr_netaddr_get_sockaddr
        - pr_netaddr_set_family
        - pr_netaddr_set_sockaddr
        - pstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'netacl.c:555,5'
          Dst:             __errno_location
        - Src:             'netacl.c:559,10'
          Dst:             pcalloc
        - Src:             'netacl.c:565,21'
          Dst:             pstrdup
        - Src:             'netacl.c:573,12'
          Dst:             pr_netaddr_alloc
        - Src:             'netacl.c:574,33'
          Dst:             pr_netaddr_get_family
        - Src:             'netacl.c:574,5'
          Dst:             pr_netaddr_set_family
        - Src:             'netacl.c:575,35'
          Dst:             pr_netaddr_get_sockaddr
        - Src:             'netacl.c:575,5'
          Dst:             pr_netaddr_set_sockaddr
        - Src:             'netacl.c:583,20'
          Dst:             pstrdup
    - functionName:    pr_netacl_create
      functionSourceFile: '/src/proftpd/src/netacl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 548
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         175
      ICount:          1104
      EdgeCount:       240
      CyclomaticComplexity: 67
      functionsReached:
        - __ctype_b_loc
        - __errno_location
        - pcalloc
        - pr_log_pri
        - pr_netaddr_get_addr
        - pr_netaddr_get_family
        - pr_netaddr_is_v4mappedv6
        - pr_netaddr_use_ipv6
        - pr_trace_msg
        - pstrcat
        - pstrdup
        - strchr
        - strerror
        - strlen
        - strncasecmp
        - strpbrk
        - strspn
        - strtol
      functionUses:    4
      BranchProfiles:
        - Branch String:   'netacl.c:299,5'
          Branch Sides:    []
      Callsites:
        - Src:             'netacl.c:239,5'
          Dst:             __errno_location
        - Src:             'netacl.c:243,7'
          Dst:             strlen
        - Src:             'netacl.c:244,5'
          Dst:             __errno_location
        - Src:             'netacl.c:249,9'
          Dst:             pcalloc
        - Src:             'netacl.c:251,16'
          Dst:             pstrdup
        - Src:             'netacl.c:253,7'
          Dst:             strncasecmp
        - Src:             'netacl.c:254,18'
          Dst:             pstrdup
        - Src:             'netacl.c:257,14'
          Dst:             strncasecmp
        - Src:             'netacl.c:258,18'
          Dst:             pstrdup
        - Src:             'netacl.c:261,20'
          Dst:             strchr
        - Src:             'netacl.c:277,9'
          Dst:             strspn
        - Src:             'netacl.c:277,55'
          Dst:             strlen
        - Src:             'netacl.c:278,7'
          Dst:             __errno_location
        - Src:             'netacl.c:282,17'
          Dst:             pr_netaddr_get_addr
        - Src:             'netacl.c:288,20'
          Dst:             strtol
        - Src:             'netacl.c:292,7'
          Dst:             __errno_location
        - Src:             'netacl.c:299,13'
          Dst:             pr_netaddr_get_family
        - Src:             'netacl.c:305,11'
          Dst:             __errno_location
        - Src:             'netacl.c:314,13'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'netacl.c:316,13'
          Dst:             __errno_location
        - Src:             'netacl.c:320,15'
          Dst:             pr_netaddr_is_v4mappedv6
        - Src:             'netacl.c:326,13'
          Dst:             pr_log_pri
        - Src:             'netacl.c:327,13'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:340,14'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'netacl.c:341,14'
          Dst:             strspn
        - Src:             'netacl.c:341,61'
          Dst:             strlen
        - Src:             'netacl.c:355,9'
          Dst:             strpbrk
        - Src:             'netacl.c:357,27'
          Dst:             strlen
        - Src:             'netacl.c:365,13'
          Dst:             __ctype_b_loc
        - Src:             'netacl.c:367,15'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'netacl.c:391,22'
          Dst:             pstrdup
        - Src:             'netacl.c:395,22'
          Dst:             pstrcat
        - Src:             'netacl.c:399,22'
          Dst:             pstrdup
        - Src:             'netacl.c:402,14'
          Dst:             strchr
        - Src:             'netacl.c:416,9'
          Dst:             strpbrk
        - Src:             'netacl.c:423,9'
          Dst:             strchr
        - Src:             'netacl.c:428,11'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'netacl.c:429,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:432,9'
          Dst:             pr_log_pri
        - Src:             'netacl.c:447,22'
          Dst:             pstrdup
        - Src:             'netacl.c:451,19'
          Dst:             pr_netaddr_get_addr
        - Src:             'netacl.c:453,22'
          Dst:             __errno_location
        - Src:             'netacl.c:456,11'
          Dst:             strerror
        - Src:             'netacl.c:455,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:458,9'
          Dst:             __errno_location
        - Src:             'netacl.c:462,22'
          Dst:             pstrdup
        - Src:             'netacl.c:475,16'
          Dst:             strlen
        - Src:             'netacl.c:477,22'
          Dst:             pstrcat
        - Src:             'netacl.c:493,19'
          Dst:             strpbrk
        - Src:             'netacl.c:495,20'
          Dst:             strlen
        - Src:             'netacl.c:497,13'
          Dst:             __ctype_b_loc
        - Src:             'netacl.c:499,15'
          Dst:             pr_netaddr_use_ipv6
        - Src:             'netacl.c:524,21'
          Dst:             pr_netaddr_get_addr
        - Src:             'netacl.c:532,26'
          Dst:             pstrdup
        - Src:             'netacl.c:536,26'
          Dst:             pstrcat
        - Src:             'netacl.c:540,26'
          Dst:             pstrdup
    - functionName:    strspn
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_netacl_get_str
      functionSourceFile: '/src/proftpd/src/netacl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 677
      functionLinenumberEnd: 678
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_netacl_get_str2
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'netacl.c:678,10'
          Dst:             pr_netacl_get_str2
    - functionName:    pr_netacl_match
      functionSourceFile: '/src/proftpd/src/netacl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         66
      ICount:          422
      EdgeCount:       83
      CyclomaticComplexity: 19
      functionsReached:
        - __errno_location
        - destroy_pool
        - make_sub_pool
        - pr_netacl_get_str
        - pr_netaddr_cmp
        - pr_netaddr_fnmatch
        - pr_netaddr_get_dnsstr
        - pr_netaddr_get_ipstr
        - pr_netaddr_ncmp
        - pr_trace_msg
        - strcmp
      functionUses:    4
      BranchProfiles:
        - Branch String:   'netacl.c:62,3'
          Branch Sides:    []
      Callsites:
        - Src:             'netacl.c:56,5'
          Dst:             __errno_location
        - Src:             'netacl.c:60,14'
          Dst:             make_sub_pool
        - Src:             'netacl.c:65,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:65,37'
          Dst:             pr_netacl_get_str
        - Src:             'netacl.c:64,7'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:71,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:70,7'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:78,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:76,7'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:80,11'
          Dst:             pr_netaddr_ncmp
        - Src:             'netacl.c:82,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:81,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:94,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:92,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:105,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:103,7'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:107,11'
          Dst:             pr_netaddr_cmp
        - Src:             'netacl.c:110,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:108,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:122,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:120,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:133,9'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'netacl.c:131,7'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:135,18'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'netacl.c:135,11'
          Dst:             strcmp
        - Src:             'netacl.c:138,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:138,39'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'netacl.c:136,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:151,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:151,39'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'netacl.c:149,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:163,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:161,7'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:165,11'
          Dst:             pr_netaddr_fnmatch
        - Src:             'netacl.c:169,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:167,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:181,11'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:179,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:193,11'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'netacl.c:191,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:195,13'
          Dst:             pr_netaddr_fnmatch
        - Src:             'netacl.c:199,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:199,41'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'netacl.c:197,11'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:212,13'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:212,41'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'netacl.c:210,11'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:223,43'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'netacl.c:224,11'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'netacl.c:221,9'
          Dst:             pr_trace_msg
        - Src:             'netacl.c:229,3'
          Dst:             destroy_pool
    - functionName:    pr_netacl_get_type
      functionSourceFile: '/src/proftpd/src/netacl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    var_free
      functionSourceFile: '/src/proftpd/src/var.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          38
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - destroy_pool
        - pr_table_empty
        - pr_table_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'var.c:272,7'
          Dst:             pr_table_empty
        - Src:             'var.c:273,7'
          Dst:             pr_table_free
        - Src:             'var.c:276,5'
          Dst:             destroy_pool
    - functionName:    var_init
      functionSourceFile: '/src/proftpd/src/var.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - make_sub_pool
        - pr_pool_tag
        - pr_table_alloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'var.c:258,16'
          Dst:             make_sub_pool
        - Src:             'var.c:259,5'
          Dst:             pr_pool_tag
        - Src:             'var.c:263,15'
          Dst:             pr_table_alloc
    - functionName:    pr_var_set
      functionSourceFile: '/src/proftpd/src/var.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          273
      EdgeCount:       63
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - pcalloc
        - pr_table_add
        - pr_var_delete
        - pstrdup
        - strlen
        - strncmp
      functionUses:    7
      BranchProfiles:
        - Branch String:   'var.c:217,3'
          Branch Sides:    []
      Callsites:
        - Src:             'var.c:153,5'
          Dst:             __errno_location
        - Src:             'var.c:160,5'
          Dst:             __errno_location
        - Src:             'var.c:165,13'
          Dst:             strlen
        - Src:             'var.c:167,5'
          Dst:             __errno_location
        - Src:             'var.c:174,5'
          Dst:             __errno_location
        - Src:             'var.c:181,5'
          Dst:             __errno_location
        - Src:             'var.c:190,5'
          Dst:             __errno_location
        - Src:             'var.c:195,7'
          Dst:             strncmp
        - Src:             'var.c:197,5'
          Dst:             __errno_location
        - Src:             'var.c:207,10'
          Dst:             pr_var_delete
        - Src:             'var.c:219,11'
          Dst:             pcalloc
        - Src:             'var.c:222,36'
          Dst:             pstrdup
        - Src:             'var.c:226,18'
          Dst:             pstrdup
        - Src:             'var.c:227,21'
          Dst:             strlen
        - Src:             'var.c:231,11'
          Dst:             pcalloc
        - Src:             'var.c:234,36'
          Dst:             pstrdup
        - Src:             'var.c:248,7'
          Dst:             __errno_location
        - Src:             'var.c:252,10'
          Dst:             pr_table_add
    - functionName:    pr_var_delete
      functionSourceFile: '/src/proftpd/src/var.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_table_remove
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'var.c:49,5'
          Dst:             __errno_location
        - Src:             'var.c:54,5'
          Dst:             __errno_location
        - Src:             'var.c:58,10'
          Dst:             pr_table_remove
    - functionName:    pr_var_rewind
      functionSourceFile: '/src/proftpd/src/var.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          24
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_table_rewind
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'var.c:143,5'
          Dst:             pr_table_rewind
    - functionName:    pr_var_next
      functionSourceFile: '/src/proftpd/src/var.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_table_get
        - pr_table_next
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'var.c:123,5'
          Dst:             __errno_location
        - Src:             'var.c:127,10'
          Dst:             pr_table_next
        - Src:             'var.c:132,7'
          Dst:             pr_table_get
    - functionName:    pr_var_get
      functionSourceFile: '/src/proftpd/src/var.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          112
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_table_get
        - pr_trace_msg
        - strerror
      functionUses:    2
      BranchProfiles:
        - Branch String:   'var.c:99,3'
          Branch Sides:    []
      Callsites:
        - Src:             'var.c:79,5'
          Dst:             __errno_location
        - Src:             'var.c:84,5'
          Dst:             __errno_location
        - Src:             'var.c:88,7'
          Dst:             pr_table_get
        - Src:             'var.c:90,18'
          Dst:             __errno_location
        - Src:             'var.c:93,7'
          Dst:             strerror
        - Src:             'var.c:92,5'
          Dst:             pr_trace_msg
        - Src:             'var.c:95,5'
          Dst:             __errno_location
        - Src:             'var.c:101,7'
          Dst:             pr_trace_msg
        - Src:             'var.c:105,7'
          Dst:             pr_trace_msg
        - Src:             'var.c:110,7'
          Dst:             pr_trace_msg
        - Src:             'var.c:114,3'
          Dst:             __errno_location
    - functionName:    pr_var_exists
      functionSourceFile: '/src/proftpd/src/var.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_table_exists
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'var.c:63,5'
          Dst:             __errno_location
        - Src:             'var.c:68,5'
          Dst:             __errno_location
        - Src:             'var.c:72,10'
          Dst:             pr_table_exists
    - functionName:    pr_cmd_is_ssh2
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 507
      functionLinenumberEnd: 535
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          97
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pr_cmd_get_id
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd.c:511,5'
          Dst:             __errno_location
        - Src:             'cmd.c:517,5'
          Dst:             __errno_location
        - Src:             'cmd.c:522,19'
          Dst:             pr_cmd_get_id
        - Src:             'cmd.c:529,7'
          Dst:             strncmp
        - Src:             'cmd.c:530,7'
          Dst:             strncmp
    - functionName:    pr_cmd_get_id
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 434
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          128
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - strcasecmp
        - strlen
        - toupper
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd.c:399,5'
          Dst:             __errno_location
        - Src:             'cmd.c:403,17'
          Dst:             strlen
        - Src:             'cmd.c:412,5'
          Dst:             __errno_location
        - Src:             'cmd.c:416,18'
          Dst:             toupper
        - Src:             'cmd.c:427,9'
          Dst:             strcasecmp
        - Src:             'cmd.c:432,3'
          Dst:             __errno_location
    - functionName:    pr_cmd_is_smtp
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 480
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          84
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - is_known_cmd
        - pr_cmd_get_id
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd.c:485,5'
          Dst:             __errno_location
        - Src:             'cmd.c:491,5'
          Dst:             __errno_location
        - Src:             'cmd.c:496,19'
          Dst:             pr_cmd_get_id
        - Src:             'cmd.c:503,17'
          Dst:             strlen
        - Src:             'cmd.c:504,10'
          Dst:             is_known_cmd
    - functionName:    is_known_cmd
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 437
      functionLinenumberEnd: 450
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          79
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd.c:443,11'
          Dst:             strncmp
    - functionName:    pr_cmd_is_http
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          84
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - is_known_cmd
        - pr_cmd_get_id
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd.c:458,5'
          Dst:             __errno_location
        - Src:             'cmd.c:464,5'
          Dst:             __errno_location
        - Src:             'cmd.c:469,19'
          Dst:             pr_cmd_get_id
        - Src:             'cmd.c:476,17'
          Dst:             strlen
        - Src:             'cmd.c:477,10'
          Dst:             is_known_cmd
    - functionName:    pr_cmd_get_displayable_str
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 391
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          202
      EdgeCount:       43
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - pr_cmd_cmp
        - pr_fs_decode_path
        - pr_table_add
        - pr_table_get
        - pr_trace_msg
        - pstrcat
        - pstrdup
        - strerror
        - strlen
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd.c:342,5'
          Dst:             __errno_location
        - Src:             'cmd.c:346,9'
          Dst:             pr_table_get
        - Src:             'cmd.c:349,18'
          Dst:             strlen
        - Src:             'cmd.c:362,7'
          Dst:             pr_cmd_cmp
        - Src:             'cmd.c:363,7'
          Dst:             pr_cmd_cmp
        - Src:             'cmd.c:371,27'
          Dst:             pr_fs_decode_path
        - Src:             'cmd.c:371,11'
          Dst:             pstrcat
        - Src:             'cmd.c:374,34'
          Dst:             pr_fs_decode_path
        - Src:             'cmd.c:374,13'
          Dst:             pstrcat
        - Src:             'cmd.c:378,32'
          Dst:             pstrdup
        - Src:             'cmd.c:379,7'
          Dst:             pstrdup
        - Src:             'cmd.c:378,7'
          Dst:             pr_table_add
        - Src:             'cmd.c:380,9'
          Dst:             __errno_location
        - Src:             'cmd.c:382,70'
          Dst:             __errno_location
        - Src:             'cmd.c:382,61'
          Dst:             strerror
        - Src:             'cmd.c:381,7'
          Dst:             pr_trace_msg
        - Src:             'cmd.c:387,16'
          Dst:             strlen
    - functionName:    pr_cmd_cmp
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          116
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - pr_cmd_get_id
      functionUses:    136
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd.c:220,5'
          Dst:             __errno_location
        - Src:             'cmd.c:231,19'
          Dst:             pr_cmd_get_id
    - functionName:    pr_cmd_strcmp
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 297
      functionLinenumberEnd: 333
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          141
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - pr_cmd_cmp
        - pr_cmd_get_id
        - strlen
        - strncasecmp
        - strncmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd.c:303,5'
          Dst:             __errno_location
        - Src:             'cmd.c:314,19'
          Dst:             pr_cmd_get_id
        - Src:             'cmd.c:320,14'
          Dst:             pr_cmd_get_id
        - Src:             'cmd.c:322,11'
          Dst:             pr_cmd_cmp
        - Src:             'cmd.c:327,12'
          Dst:             strncasecmp
        - Src:             'cmd.c:331,17'
          Dst:             strlen
        - Src:             'cmd.c:332,10'
          Dst:             strncmp
    - functionName:    pr_cmd_set_name
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_cmd_get_id
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd.c:287,5'
          Dst:             __errno_location
        - Src:             'cmd.c:292,17'
          Dst:             pr_cmd_get_id
    - functionName:    pr_cmd_get_errno
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - pr_table_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd.c:251,5'
          Dst:             __errno_location
        - Src:             'cmd.c:255,16'
          Dst:             pr_table_get
        - Src:             'cmd.c:257,5'
          Dst:             __errno_location
    - functionName:    pr_cmd_set_errno
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 265
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - pr_table_get
      functionUses:    244
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd.c:270,5'
          Dst:             __errno_location
        - Src:             'cmd.c:274,16'
          Dst:             pr_table_get
        - Src:             'cmd.c:276,5'
          Dst:             __errno_location
    - functionName:    pr_cmd_clear_cache
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pr_cmd_set_errno
        - pr_table_remove
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd.c:203,5'
          Dst:             __errno_location
        - Src:             'cmd.c:211,10'
          Dst:             pr_table_remove
        - Src:             'cmd.c:212,10'
          Dst:             pr_cmd_set_errno
    - functionName:    pr_cmd_alloc
      functionSourceFile: '/src/proftpd/src/cmd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          181
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - make_sub_pool
        - palloc
        - pcalloc
        - pr_pool_tag
        - pr_table_add
        - pr_table_nalloc
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'cmd.c:157,5'
          Dst:             __errno_location
        - Src:             'cmd.c:161,13'
          Dst:             make_sub_pool
        - Src:             'cmd.c:162,3'
          Dst:             pr_pool_tag
        - Src:             'cmd.c:164,9'
          Dst:             pcalloc
        - Src:             'cmd.c:169,19'
          Dst:             make_sub_pool
        - Src:             'cmd.c:170,3'
          Dst:             pr_pool_tag
        - Src:             'cmd.c:175,17'
          Dst:             pcalloc
        - Src:             'cmd.c:185,5'
          Dst:             pr_pool_tag
        - Src:             'cmd.c:191,16'
          Dst:             pr_table_nalloc
        - Src:             'cmd.c:194,12'
          Dst:             palloc
        - Src:             'cmd.c:196,10'
          Dst:             pr_table_add
    - functionName:    pr_env_unset
      functionSourceFile: '/src/proftpd/src/env.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - pr_env_get
        - pr_signals_handle
        - unsetenv
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'env.c:101,5'
          Dst:             __errno_location
        - Src:             'env.c:109,9'
          Dst:             pr_env_get
        - Src:             'env.c:111,5'
          Dst:             pr_signals_handle
        - Src:             'env.c:113,5'
          Dst:             unsetenv
        - Src:             'env.c:114,11'
          Dst:             pr_env_get
    - functionName:    pr_env_get
      functionSourceFile: '/src/proftpd/src/env.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - getenv
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'env.c:32,5'
          Dst:             __errno_location
        - Src:             'env.c:37,10'
          Dst:             getenv
    - functionName:    unsetenv
      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:    pr_env_set
      functionSourceFile: '/src/proftpd/src/env.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          73
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - setenv
        - strlen
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'env.c:56,5'
          Dst:             __errno_location
        - Src:             'env.c:60,14'
          Dst:             strlen
        - Src:             'env.c:62,5'
          Dst:             __errno_location
        - Src:             'env.c:74,10'
          Dst:             setenv
    - functionName:    setenv
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_random_next
      functionSourceFile: '/src/proftpd/src/random.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - random
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'random.c:46,7'
          Dst:             random
    - functionName:    random
      functionSourceFile: ''
      linkageType:     externalLinkage
      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:    pr_random_init
      functionSourceFile: '/src/proftpd/src/random.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getpid
        - gettimeofday
        - srand
        - srandom
        - time
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'random.c:34,3'
          Dst:             gettimeofday
        - Src:             'random.c:35,11'
          Dst:             getpid
        - Src:             'random.c:35,3'
          Dst:             srandom
        - Src:             'random.c:38,25'
          Dst:             getpid
        - Src:             'random.c:38,36'
          Dst:             time
        - Src:             'random.c:38,3'
          Dst:             srand
    - functionName:    srandom
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    srand
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log_wtmp
      functionSourceFile: '/src/proftpd/src/wtmp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          165
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - fstat
        - ftruncate
        - open
        - pr_fs_get_usable_fd2
        - pr_log_debug
        - pr_log_pri
        - sstrncpy
        - strerror
        - time
        - write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'wtmp.c:138,13'
          Dst:             open
        - Src:             'wtmp.c:139,18'
          Dst:             __errno_location
        - Src:             'wtmp.c:142,7'
          Dst:             strerror
        - Src:             'wtmp.c:141,5'
          Dst:             pr_log_pri
        - Src:             'wtmp.c:144,5'
          Dst:             __errno_location
        - Src:             'wtmp.c:148,10'
          Dst:             pr_fs_get_usable_fd2
        - Src:             'wtmp.c:150,7'
          Dst:             fstat
        - Src:             'wtmp.c:186,5'
          Dst:             sstrncpy
        - Src:             'wtmp.c:189,7'
          Dst:             sstrncpy
        - Src:             'wtmp.c:195,7'
          Dst:             sstrncpy
        - Src:             'wtmp.c:199,18'
          Dst:             time
        - Src:             'wtmp.c:201,9'
          Dst:             write
        - Src:             'wtmp.c:202,11'
          Dst:             ftruncate
        - Src:             'wtmp.c:204,20'
          Dst:             __errno_location
        - Src:             'wtmp.c:204,11'
          Dst:             strerror
        - Src:             'wtmp.c:203,9'
          Dst:             pr_log_debug
        - Src:             'wtmp.c:209,64'
          Dst:             __errno_location
        - Src:             'wtmp.c:209,55'
          Dst:             strerror
        - Src:             'wtmp.c:209,5'
          Dst:             pr_log_debug
    - functionName:    pr_help_add_response
      functionSourceFile: '/src/proftpd/src/help.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          295
      EdgeCount:       60
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - pr_response_add
        - pr_snprintf
        - pstrcat
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'help.c:82,5'
          Dst:             __errno_location
        - Src:             'help.c:96,7'
          Dst:             pr_response_add
        - Src:             'help.c:108,25'
          Dst:             pstrcat
        - Src:             'help.c:118,15'
          Dst:             pr_snprintf
        - Src:             'help.c:120,24'
          Dst:             pstrcat
        - Src:             'help.c:128,13'
          Dst:             pr_response_add
        - Src:             'help.c:141,7'
          Dst:             pr_response_add
        - Src:             'help.c:147,11'
          Dst:             strcasecmp
        - Src:             'help.c:148,9'
          Dst:             pr_response_add
        - Src:             'help.c:155,3'
          Dst:             __errno_location
    - functionName:    pr_help_add
      functionSourceFile: '/src/proftpd/src/help.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          154
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - make_array
        - make_sub_pool
        - pr_pool_tag
        - pstrdup
        - push_array
        - strcmp
      functionUses:    56
      BranchProfiles:  []
      Callsites:
        - Src:             'help.c:48,17'
          Dst:             make_sub_pool
        - Src:             'help.c:49,5'
          Dst:             pr_pool_tag
        - Src:             'help.c:50,17'
          Dst:             make_array
        - Src:             'help.c:63,11'
          Dst:             strcmp
        - Src:             'help.c:74,10'
          Dst:             push_array
        - Src:             'help.c:75,15'
          Dst:             pstrdup
        - Src:             'help.c:76,18'
          Dst:             pstrdup
    - functionName:    child_update
      functionSourceFile: '/src/proftpd/src/child.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         18
      ICount:          95
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - close
        - destroy_pool
        - xaset_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'child.c:128,16'
          Dst:             close
        - Src:             'child.c:131,7'
          Dst:             xaset_remove
        - Src:             'child.c:132,7'
          Dst:             destroy_pool
        - Src:             'child.c:138,5'
          Dst:             destroy_pool
    - functionName:    child_signal
      functionSourceFile: '/src/proftpd/src/child.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          67
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - kill
        - pr_trace_msg
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'child.c:108,9'
          Dst:             kill
        - Src:             'child.c:110,53'
          Dst:             __errno_location
        - Src:             'child.c:110,44'
          Dst:             strerror
        - Src:             'child.c:109,7'
          Dst:             pr_trace_msg
    - functionName:    child_remove
      functionSourceFile: '/src/proftpd/src/child.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'child.c:84,5'
          Dst:             __errno_location
        - Src:             'child.c:96,3'
          Dst:             __errno_location
    - functionName:    child_get
      functionSourceFile: '/src/proftpd/src/child.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    child_count
      functionSourceFile: '/src/proftpd/src/child.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    child_add
      functionSourceFile: '/src/proftpd/src/child.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          85
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
        - time
        - xaset_create
        - xaset_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'child.c:39,18'
          Dst:             make_sub_pool
        - Src:             'child.c:40,5'
          Dst:             pr_pool_tag
        - Src:             'child.c:46,17'
          Dst:             make_sub_pool
        - Src:             'child.c:47,5'
          Dst:             pr_pool_tag
        - Src:             'child.c:49,18'
          Dst:             xaset_create
        - Src:             'child.c:52,7'
          Dst:             make_sub_pool
        - Src:             'child.c:53,3'
          Dst:             pr_pool_tag
        - Src:             'child.c:55,8'
          Dst:             pcalloc
        - Src:             'child.c:58,3'
          Dst:             time
        - Src:             'child.c:62,3'
          Dst:             xaset_insert
    - functionName:    pr_feat_get_next
      functionSourceFile: '/src/proftpd/src/feat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pr_table_next
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'feat.c:88,5'
          Dst:             __errno_location
        - Src:             'feat.c:92,10'
          Dst:             pr_table_next
    - functionName:    pr_feat_get
      functionSourceFile: '/src/proftpd/src/feat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - pr_table_next
        - pr_table_rewind
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'feat.c:78,5'
          Dst:             __errno_location
        - Src:             'feat.c:82,10'
          Dst:             pr_table_rewind
        - Src:             'feat.c:83,10'
          Dst:             pr_table_next
    - functionName:    pr_feat_remove
      functionSourceFile: '/src/proftpd/src/feat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          55
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - pr_table_remove
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'feat.c:58,5'
          Dst:             __errno_location
        - Src:             'feat.c:63,5'
          Dst:             __errno_location
        - Src:             'feat.c:67,9'
          Dst:             pr_table_remove
        - Src:             'feat.c:72,3'
          Dst:             __errno_location
    - functionName:    pr_feat_add
      functionSourceFile: '/src/proftpd/src/feat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - make_sub_pool
        - pr_pool_tag
        - pr_table_add
        - pr_table_alloc
        - pr_table_exists
        - pstrdup
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'feat.c:34,5'
          Dst:             __errno_location
        - Src:             'feat.c:40,17'
          Dst:             make_sub_pool
        - Src:             'feat.c:41,5'
          Dst:             pr_pool_tag
        - Src:             'feat.c:42,16'
          Dst:             pr_table_alloc
        - Src:             'feat.c:46,7'
          Dst:             pr_table_exists
        - Src:             'feat.c:47,5'
          Dst:             __errno_location
        - Src:             'feat.c:51,33'
          Dst:             pstrdup
        - Src:             'feat.c:51,10'
          Dst:             pr_table_add
    - functionName:    xferlog_write
      functionSourceFile: '/src/proftpd/src/xferlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - char
        - char
        - char
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          283
      EdgeCount:       50
      CyclomaticComplexity: 14
      functionsReached:
        - __ctype_b_loc
        - destroy_pool
        - make_sub_pool
        - pr_log_event_generate
        - pr_pool_tag
        - pr_session_get_protocol
        - pr_snprintf
        - pr_strtime3
        - pr_table_get
        - strcmp
        - time
        - write
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'xferlog.c:85,16'
          Dst:             __ctype_b_loc
        - Src:             'xferlog.c:85,40'
          Dst:             __ctype_b_loc
        - Src:             'xferlog.c:90,19'
          Dst:             pr_table_get
        - Src:             'xferlog.c:98,9'
          Dst:             strcmp
        - Src:             'xferlog.c:109,16'
          Dst:             pr_session_get_protocol
        - Src:             'xferlog.c:110,14'
          Dst:             make_sub_pool
        - Src:             'xferlog.c:111,3'
          Dst:             pr_pool_tag
        - Src:             'xferlog.c:115,29'
          Dst:             time
        - Src:             'xferlog.c:115,7'
          Dst:             pr_strtime3
        - Src:             'xferlog.c:113,9'
          Dst:             pr_snprintf
        - Src:             'xferlog.c:131,3'
          Dst:             pr_log_event_generate
        - Src:             'xferlog.c:132,3'
          Dst:             destroy_pool
        - Src:             'xferlog.c:134,10'
          Dst:             write
    - functionName:    xferlog_open
      functionSourceFile: '/src/proftpd/src/xferlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          72
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pr_log_debug
        - pr_log_openfile
        - pr_log_pri
        - strerror
        - xferlog_close
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'xferlog.c:45,7'
          Dst:             xferlog_close
        - Src:             'xferlog.c:52,5'
          Dst:             pr_log_debug
        - Src:             'xferlog.c:53,5'
          Dst:             pr_log_openfile
        - Src:             'xferlog.c:56,20'
          Dst:             __errno_location
        - Src:             'xferlog.c:59,15'
          Dst:             strerror
        - Src:             'xferlog.c:58,7'
          Dst:             pr_log_pri
        - Src:             'xferlog.c:61,7'
          Dst:             __errno_location
    - functionName:    xferlog_close
      functionSourceFile: '/src/proftpd/src/xferlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          26
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'xferlog.c:35,12'
          Dst:             close
    - functionName:    copy_symlink
      functionSourceFile: '/src/proftpd/src/mkhome.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          136
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - pcalloc
        - pdircat
        - pr_fsio_chown
        - pr_fsio_readlink
        - pr_fsio_symlink
        - pr_gid2str
        - pr_log_pri
        - pr_uid2str
        - strerror
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mkhome.c:152,21'
          Dst:             pcalloc
        - Src:             'mkhome.c:155,9'
          Dst:             pr_fsio_readlink
        - Src:             'mkhome.c:157,18'
          Dst:             __errno_location
        - Src:             'mkhome.c:160,17'
          Dst:             strerror
        - Src:             'mkhome.c:159,5'
          Dst:             pr_log_pri
        - Src:             'mkhome.c:162,5'
          Dst:             __errno_location
        - Src:             'mkhome.c:170,35'
          Dst:             strlen
        - Src:             'mkhome.c:170,7'
          Dst:             strncmp
        - Src:             'mkhome.c:171,49'
          Dst:             strlen
        - Src:             'mkhome.c:171,17'
          Dst:             pdircat
        - Src:             'mkhome.c:174,7'
          Dst:             pr_fsio_symlink
        - Src:             'mkhome.c:175,18'
          Dst:             __errno_location
        - Src:             'mkhome.c:178,28'
          Dst:             strerror
        - Src:             'mkhome.c:177,5'
          Dst:             pr_log_pri
        - Src:             'mkhome.c:180,5'
          Dst:             __errno_location
        - Src:             'mkhome.c:185,7'
          Dst:             pr_fsio_chown
        - Src:             'mkhome.c:187,17'
          Dst:             pr_uid2str
        - Src:             'mkhome.c:187,37'
          Dst:             pr_gid2str
        - Src:             'mkhome.c:187,66'
          Dst:             __errno_location
        - Src:             'mkhome.c:187,57'
          Dst:             strerror
        - Src:             'mkhome.c:186,5'
          Dst:             pr_log_pri
    - functionName:    create_dir
      functionSourceFile: '/src/proftpd/src/mkhome.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          138
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_fs_clear_cache2
        - pr_fsio_chown
        - pr_fsio_mkdir
        - pr_fsio_stat
        - pr_log_debug
        - pr_log_pri
        - pr_trace_msg
        - strerror
        - umask
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mkhome.c:38,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mkhome.c:39,9'
          Dst:             pr_fsio_stat
        - Src:             'mkhome.c:42,7'
          Dst:             __errno_location
        - Src:             'mkhome.c:43,18'
          Dst:             __errno_location
        - Src:             'mkhome.c:46,7'
          Dst:             strerror
        - Src:             'mkhome.c:45,5'
          Dst:             pr_log_pri
        - Src:             'mkhome.c:48,5'
          Dst:             __errno_location
        - Src:             'mkhome.c:54,5'
          Dst:             pr_trace_msg
        - Src:             'mkhome.c:55,5'
          Dst:             pr_log_debug
        - Src:             'mkhome.c:60,15'
          Dst:             umask
        - Src:             'mkhome.c:62,7'
          Dst:             pr_fsio_mkdir
        - Src:             'mkhome.c:63,18'
          Dst:             __errno_location
        - Src:             'mkhome.c:65,5'
          Dst:             umask
        - Src:             'mkhome.c:67,7'
          Dst:             strerror
        - Src:             'mkhome.c:66,5'
          Dst:             pr_log_pri
        - Src:             'mkhome.c:69,5'
          Dst:             __errno_location
        - Src:             'mkhome.c:73,3'
          Dst:             umask
        - Src:             'mkhome.c:75,7'
          Dst:             pr_fsio_chown
        - Src:             'mkhome.c:76,18'
          Dst:             __errno_location
        - Src:             'mkhome.c:79,7'
          Dst:             strerror
        - Src:             'mkhome.c:78,5'
          Dst:             pr_log_pri
        - Src:             'mkhome.c:81,5'
          Dst:             __errno_location
        - Src:             'mkhome.c:85,3'
          Dst:             pr_trace_msg
        - Src:             'mkhome.c:86,3'
          Dst:             pr_log_debug
    - functionName:    copy_dir
      functionSourceFile: '/src/proftpd/src/mkhome.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          252
      EdgeCount:       46
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - closedir
        - copy_dir
        - copy_symlink
        - create_dir
        - opendir
        - pdircat
        - pr_fs_copy_file
        - pr_fsio_chmod
        - pr_fsio_chown
        - pr_fsio_lstat
        - pr_gid2str
        - pr_log_debug
        - pr_log_pri
        - pr_signals_handle
        - pr_uid2str
        - readdir
        - strcmp
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mkhome.c:202,8'
          Dst:             opendir
        - Src:             'mkhome.c:204,18'
          Dst:             __errno_location
        - Src:             'mkhome.c:207,16'
          Dst:             strerror
        - Src:             'mkhome.c:206,5'
          Dst:             pr_log_pri
        - Src:             'mkhome.c:209,5'
          Dst:             __errno_location
        - Src:             'mkhome.c:213,18'
          Dst:             readdir
        - Src:             'mkhome.c:217,5'
          Dst:             pr_signals_handle
        - Src:             'mkhome.c:220,9'
          Dst:             strcmp
        - Src:             'mkhome.c:221,9'
          Dst:             strcmp
        - Src:             'mkhome.c:225,16'
          Dst:             pdircat
        - Src:             'mkhome.c:226,16'
          Dst:             pdircat
        - Src:             'mkhome.c:228,9'
          Dst:             pr_fsio_lstat
        - Src:             'mkhome.c:230,28'
          Dst:             __errno_location
        - Src:             'mkhome.c:230,19'
          Dst:             strerror
        - Src:             'mkhome.c:229,7'
          Dst:             pr_log_debug
        - Src:             'mkhome.c:236,7'
          Dst:             create_dir
        - Src:             'mkhome.c:237,7'
          Dst:             copy_dir
        - Src:             'mkhome.c:255,14'
          Dst:             pr_fs_copy_file
        - Src:             'mkhome.c:258,11'
          Dst:             pr_fsio_chown
        - Src:             'mkhome.c:260,37'
          Dst:             pr_uid2str
        - Src:             'mkhome.c:260,57'
          Dst:             pr_gid2str
        - Src:             'mkhome.c:261,20'
          Dst:             __errno_location
        - Src:             'mkhome.c:261,11'
          Dst:             strerror
        - Src:             'mkhome.c:259,9'
          Dst:             pr_log_pri
        - Src:             'mkhome.c:264,11'
          Dst:             pr_fsio_chmod
        - Src:             'mkhome.c:266,67'
          Dst:             __errno_location
        - Src:             'mkhome.c:266,58'
          Dst:             strerror
        - Src:             'mkhome.c:265,9'
          Dst:             pr_log_pri
        - Src:             'mkhome.c:274,7'
          Dst:             copy_symlink
        - Src:             'mkhome.c:279,5'
          Dst:             pr_log_debug
        - Src:             'mkhome.c:282,3'
          Dst:             closedir
    - functionName:    create_path
      functionSourceFile: '/src/proftpd/src/mkhome.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          161
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - create_dir
        - pdircat
        - pr_fs_clear_cache2
        - pr_fsio_stat
        - pr_log_debug
        - pr_signals_handle
        - pr_trace_msg
        - pstrdup
        - strsep
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mkhome.c:99,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mkhome.c:100,7'
          Dst:             pr_fsio_stat
        - Src:             'mkhome.c:102,5'
          Dst:             __errno_location
        - Src:             'mkhome.c:118,3'
          Dst:             pr_trace_msg
        - Src:             'mkhome.c:120,3'
          Dst:             pr_log_debug
        - Src:             'mkhome.c:122,13'
          Dst:             pstrdup
        - Src:             'mkhome.c:128,5'
          Dst:             pr_signals_handle
        - Src:             'mkhome.c:130,15'
          Dst:             strsep
        - Src:             'mkhome.c:131,16'
          Dst:             pdircat
        - Src:             'mkhome.c:138,7'
          Dst:             create_dir
        - Src:             'mkhome.c:141,7'
          Dst:             create_dir
        - Src:             'mkhome.c:145,3'
          Dst:             pr_trace_msg
        - Src:             'mkhome.c:146,3'
          Dst:             pr_log_debug
    - functionName:    strsep
      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:    create_home
      functionSourceFile: '/src/proftpd/src/mkhome.c'
      linkageType:     InternalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          264
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - copy_dir
        - create_path
        - find_config
        - pr_event_generate
        - pr_log_debug
        - pr_privs_relinquish
        - pr_privs_root
        - pr_privs_user
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mkhome.c:298,7'
          Dst:             find_config
        - Src:             'mkhome.c:323,5'
          Dst:             pr_privs_user
        - Src:             'mkhome.c:326,5'
          Dst:             pr_privs_root
        - Src:             'mkhome.c:329,3'
          Dst:             pr_event_generate
        - Src:             'mkhome.c:331,9'
          Dst:             create_path
        - Src:             'mkhome.c:335,7'
          Dst:             __errno_location
        - Src:             'mkhome.c:336,18'
          Dst:             __errno_location
        - Src:             'mkhome.c:338,5'
          Dst:             pr_privs_relinquish
        - Src:             'mkhome.c:340,5'
          Dst:             __errno_location
        - Src:             'mkhome.c:352,5'
          Dst:             pr_trace_msg
        - Src:             'mkhome.c:354,5'
          Dst:             pr_log_debug
        - Src:             'mkhome.c:357,5'
          Dst:             pr_event_generate
        - Src:             'mkhome.c:359,9'
          Dst:             copy_dir
        - Src:             'mkhome.c:360,7'
          Dst:             pr_log_debug
        - Src:             'mkhome.c:363,7'
          Dst:             pr_event_generate
        - Src:             'mkhome.c:368,5'
          Dst:             pr_event_generate
        - Src:             'mkhome.c:371,3'
          Dst:             pr_privs_relinquish
    - functionName:    xfer_rate_sigmask
      functionSourceFile: '/src/proftpd/src/throttle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          71
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - pr_signals_handle
        - sigaddset
        - sigemptyset
        - sigprocmask
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'throttle.c:43,5'
          Dst:             sigemptyset
        - Src:             'throttle.c:45,5'
          Dst:             sigaddset
        - Src:             'throttle.c:46,5'
          Dst:             sigaddset
        - Src:             'throttle.c:47,5'
          Dst:             sigaddset
        - Src:             'throttle.c:48,5'
          Dst:             sigaddset
        - Src:             'throttle.c:50,5'
          Dst:             sigaddset
        - Src:             'throttle.c:53,5'
          Dst:             sigaddset
        - Src:             'throttle.c:55,5'
          Dst:             sigaddset
        - Src:             'throttle.c:57,12'
          Dst:             sigprocmask
        - Src:             'throttle.c:58,11'
          Dst:             __errno_location
        - Src:             'throttle.c:59,9'
          Dst:             pr_signals_handle
        - Src:             'throttle.c:67,12'
          Dst:             sigprocmask
        - Src:             'throttle.c:68,11'
          Dst:             __errno_location
        - Src:             'throttle.c:69,9'
          Dst:             pr_signals_handle
    - functionName:    xfer_rate_since
      functionSourceFile: '/src/proftpd/src/throttle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - gettimeofday
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'throttle.c:83,3'
          Dst:             gettimeofday
    - functionName:    pr_throttle_pause
      functionSourceFile: '/src/proftpd/src/throttle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - size_t
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          230
      EdgeCount:       51
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - pr_log_debug
        - pr_log_pri
        - pr_scoreboard_entry_update
        - pr_signals_handle
        - select
        - strerror
        - xfer_rate_sigmask
        - xfer_rate_since
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'throttle.c:221,13'
          Dst:             xfer_rate_since
        - Src:             'throttle.c:230,7'
          Dst:             pr_scoreboard_entry_update
        - Src:             'throttle.c:261,9'
          Dst:             pr_scoreboard_entry_update
        - Src:             'throttle.c:289,5'
          Dst:             pr_log_debug
        - Src:             'throttle.c:293,5'
          Dst:             xfer_rate_sigmask
        - Src:             'throttle.c:295,9'
          Dst:             select
        - Src:             'throttle.c:296,20'
          Dst:             __errno_location
        - Src:             'throttle.c:299,9'
          Dst:             pr_log_pri
        - Src:             'throttle.c:300,9'
          Dst:             xfer_rate_sigmask
        - Src:             'throttle.c:309,11'
          Dst:             strerror
        - Src:             'throttle.c:308,9'
          Dst:             pr_log_debug
        - Src:             'throttle.c:313,5'
          Dst:             xfer_rate_sigmask
        - Src:             'throttle.c:314,5'
          Dst:             pr_signals_handle
        - Src:             'throttle.c:317,5'
          Dst:             pr_scoreboard_entry_update
        - Src:             'throttle.c:325,5'
          Dst:             pr_scoreboard_entry_update
    - functionName:    pr_throttle_init
      functionSourceFile: '/src/proftpd/src/throttle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         63
      ICount:          439
      EdgeCount:       84
      CyclomaticComplexity: 23
      functionsReached:
        - find_config
        - find_config_next
        - pr_expr_eval_class_or
        - pr_expr_eval_group_and
        - pr_expr_eval_user_or
        - pr_log_debug
        - pr_signals_handle
        - strcasecmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'throttle.c:106,7'
          Dst:             find_config
        - Src:             'throttle.c:117,5'
          Dst:             pr_signals_handle
        - Src:             'throttle.c:124,11'
          Dst:             strcasecmp
        - Src:             'throttle.c:132,11'
          Dst:             find_config_next
        - Src:             'throttle.c:137,11'
          Dst:             strcasecmp
        - Src:             'throttle.c:138,13'
          Dst:             pr_expr_eval_user_or
        - Src:             'throttle.c:151,18'
          Dst:             strcasecmp
        - Src:             'throttle.c:152,13'
          Dst:             pr_expr_eval_group_and
        - Src:             'throttle.c:165,18'
          Dst:             strcasecmp
        - Src:             'throttle.c:166,13'
          Dst:             pr_expr_eval_class_or
        - Src:             'throttle.c:192,9'
          Dst:             find_config_next
        - Src:             'throttle.c:197,5'
          Dst:             pr_log_debug
    - functionName:    pr_throttle_have_rate
      functionSourceFile: '/src/proftpd/src/throttle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_filter_parse_flags
      functionSourceFile: '/src/proftpd/src/filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          92
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - strcmp
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'filter.c:77,5'
          Dst:             __errno_location
        - Src:             'filter.c:81,15'
          Dst:             strlen
        - Src:             'filter.c:85,5'
          Dst:             __errno_location
        - Src:             'filter.c:90,7'
          Dst:             strcmp
        - Src:             'filter.c:91,7'
          Dst:             strcmp
    - functionName:    pr_filter_allow_path
      functionSourceFile: '/src/proftpd/src/filter.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          103
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - get_param_ptr
        - pr_regexp_exec
        - pr_regexp_get_pattern
        - pr_trace_msg
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'filter.c:36,5'
          Dst:             __errno_location
        - Src:             'filter.c:42,9'
          Dst:             get_param_ptr
        - Src:             'filter.c:44,11'
          Dst:             pr_regexp_exec
        - Src:             'filter.c:50,7'
          Dst:             pr_regexp_get_pattern
        - Src:             'filter.c:49,5'
          Dst:             pr_trace_msg
        - Src:             'filter.c:55,9'
          Dst:             get_param_ptr
        - Src:             'filter.c:57,11'
          Dst:             pr_regexp_exec
        - Src:             'filter.c:63,7'
          Dst:             pr_regexp_get_pattern
        - Src:             'filter.c:62,5'
          Dst:             pr_trace_msg
    - functionName:    pr_ascii_ftp_reset
      functionSourceFile: '/src/proftpd/src/ascii.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_ascii_ftp_to_crlf
      functionSourceFile: '/src/proftpd/src/ascii.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          320
      EdgeCount:       63
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - exit
        - pr_log_pri
        - pr_signals_handle
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ascii.c:97,5'
          Dst:             __errno_location
        - Src:             'ascii.c:138,7'
          Dst:             pr_log_pri
        - Src:             'ascii.c:139,7'
          Dst:             exit
        - Src:             'ascii.c:153,5'
          Dst:             pr_log_pri
        - Src:             'ascii.c:154,5'
          Dst:             exit
        - Src:             'ascii.c:176,3'
          Dst:             pr_signals_handle
    - functionName:    pr_ascii_ftp_from_crlf
      functionSourceFile: '/src/proftpd/src/ascii.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          161
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - pr_signals_handle
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ascii.c:40,5'
          Dst:             __errno_location
        - Src:             'ascii.c:77,3'
          Dst:             pr_signals_handle
    - functionName:    get_meta_arg
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 553
      functionLinenumberEnd: 569
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_signals_handle
        - pstrndup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:561,5'
          Dst:             pr_signals_handle
        - Src:             'jot.c:569,10'
          Dst:             pstrndup
    - functionName:    is_data_xfer_cmd
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 539
      functionLinenumberEnd: 551
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          85
      EdgeCount:       26
      CyclomaticComplexity: 9
      functionsReached:
        - pr_cmd_cmp
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:540,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:541,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:542,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:543,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:544,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:545,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:546,7'
          Dst:             pr_cmd_cmp
    - functionName:    get_meta_transfer_type
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1156
      functionLinenumberEnd: 1184
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          75
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - is_data_xfer_cmd
        - pr_session_get_protocol
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:1162,7'
          Dst:             is_data_xfer_cmd
        - Src:             'jot.c:1165,13'
          Dst:             pr_session_get_protocol
        - Src:             'jot.c:1167,9'
          Dst:             strcmp
        - Src:             'jot.c:1168,9'
          Dst:             strcmp
    - functionName:    get_meta_transfer_speed
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1111
      functionLinenumberEnd: 1154
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          133
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - is_data_xfer_cmd
        - pr_gettimeofday_millis
        - pr_snprintf
        - pr_table_get
        - pr_timeval2millis
        - pstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:1117,7'
          Dst:             is_data_xfer_cmd
        - Src:             'jot.c:1121,15'
          Dst:             pr_table_get
        - Src:             'jot.c:1134,3'
          Dst:             pr_timeval2millis
        - Src:             'jot.c:1135,3'
          Dst:             pr_gettimeofday_millis
        - Src:             'jot.c:1151,3'
          Dst:             pr_snprintf
        - Src:             'jot.c:1153,10'
          Dst:             pstrdup
    - functionName:    get_meta_transfer_port
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1097
      functionLinenumberEnd: 1108
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          69
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - is_data_xfer_cmd
        - pr_cmd_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:1100,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1101,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1102,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1103,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1104,7'
          Dst:             is_data_xfer_cmd
    - functionName:    get_meta_transfer_failure
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 907
      functionLinenumberEnd: 956
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          141
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - is_data_xfer_cmd
        - pr_response_get_last
        - pr_session_get_protocol
        - strchr
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:913,7'
          Dst:             is_data_xfer_cmd
        - Src:             'jot.c:916,13'
          Dst:             pr_session_get_protocol
        - Src:             'jot.c:918,9'
          Dst:             strcmp
        - Src:             'jot.c:919,9'
          Dst:             strcmp
        - Src:             'jot.c:920,9'
          Dst:             strcmp
        - Src:             'jot.c:929,15'
          Dst:             pr_response_get_last
        - Src:             'jot.c:937,19'
          Dst:             strchr
    - functionName:    get_meta_transfer_status
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1022
      functionLinenumberEnd: 1094
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         36
      ICount:          159
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - is_data_xfer_cmd
        - pr_cmd_cmp
        - pr_response_get_last
        - pr_session_get_protocol
        - pr_table_get
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:1028,7'
          Dst:             is_data_xfer_cmd
        - Src:             'jot.c:1029,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1032,13'
          Dst:             pr_session_get_protocol
        - Src:             'jot.c:1034,9'
          Dst:             strcmp
        - Src:             'jot.c:1035,9'
          Dst:             strcmp
        - Src:             'jot.c:1043,15'
          Dst:             pr_response_get_last
        - Src:             'jot.c:1047,17'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1084,21'
          Dst:             pr_table_get
    - functionName:    get_meta_dir_path
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 723
      functionLinenumberEnd: 765
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          165
      EdgeCount:       48
      CyclomaticComplexity: 15
      functionsReached:
        - dir_abs_path
        - pdircat
        - pr_cmd_cmp
        - pr_fs_decode_path
        - pr_fs_getcwd
        - pr_fs_getvwd
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:729,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:730,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:731,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:732,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:733,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:734,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:735,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:736,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:737,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:738,32'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:738,16'
          Dst:             dir_abs_path
        - Src:             'jot.c:740,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:741,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:752,18'
          Dst:             pr_fs_getvwd
        - Src:             'jot.c:752,11'
          Dst:             strcmp
        - Src:             'jot.c:756,52'
          Dst:             pr_fs_getvwd
        - Src:             'jot.c:756,20'
          Dst:             pdircat
        - Src:             'jot.c:761,18'
          Dst:             pr_fs_getcwd
    - functionName:    get_meta_dir_name
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 677
      functionLinenumberEnd: 720
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         39
      ICount:          192
      EdgeCount:       54
      CyclomaticComplexity: 17
      functionsReached:
        - pr_cmd_cmp
        - pr_fs_decode_path
        - pr_fs_getvwd
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:683,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:684,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:685,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:686,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:687,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:688,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:689,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:690,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:691,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:692,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:693,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:696,12'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:698,13'
          Dst:             strrchr
        - Src:             'jot.c:717,16'
          Dst:             pr_fs_getvwd
    - functionName:    get_meta_transfer_path
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 959
      functionLinenumberEnd: 997
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          148
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached:
        - dir_best_path
        - pr_cmd_cmp
        - pr_fs_decode_path
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:965,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:966,38'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:966,21'
          Dst:             dir_best_path
        - Src:             'jot.c:977,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:978,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:979,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:980,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:981,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:982,40'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:982,23'
          Dst:             dir_best_path
        - Src:             'jot.c:993,20'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:994,21'
          Dst:             dir_best_path
    - functionName:    get_meta_transfer_secs
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1000
      functionLinenumberEnd: 1020
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - pr_gettimeofday_millis
        - pr_timeval2millis
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:1012,5'
          Dst:             pr_timeval2millis
        - Src:             'jot.c:1013,5'
          Dst:             pr_gettimeofday_millis
    - functionName:    get_meta_filename
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 768
      functionLinenumberEnd: 904
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         111
      ICount:          562
      EdgeCount:       151
      CyclomaticComplexity: 42
      functionsReached:
        - dir_abs_path
        - pdircat
        - pr_cmd_cmp
        - pr_fs_decode_path
        - pr_fs_getcwd
        - pr_fs_getvwd
        - pr_fsio_realpath
        - pr_table_get
        - pstrcat
        - strcasecmp
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:774,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:775,32'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:775,16'
          Dst:             dir_abs_path
        - Src:             'jot.c:777,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:780,12'
          Dst:             pr_table_get
        - Src:             'jot.c:782,18'
          Dst:             dir_abs_path
        - Src:             'jot.c:785,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:786,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:789,12'
          Dst:             pr_table_get
        - Src:             'jot.c:791,18'
          Dst:             dir_abs_path
        - Src:             'jot.c:796,16'
          Dst:             dir_abs_path
        - Src:             'jot.c:798,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:799,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:800,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:801,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:802,32'
          Dst:             pr_fs_getcwd
        - Src:             'jot.c:802,16'
          Dst:             dir_abs_path
        - Src:             'jot.c:804,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:805,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:815,18'
          Dst:             pr_fs_getvwd
        - Src:             'jot.c:815,11'
          Dst:             strcmp
        - Src:             'jot.c:819,52'
          Dst:             pr_fs_getvwd
        - Src:             'jot.c:819,20'
          Dst:             pdircat
        - Src:             'jot.c:824,18'
          Dst:             pr_fs_getcwd
        - Src:             'jot.c:827,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:829,15'
          Dst:             strcasecmp
        - Src:             'jot.c:830,15'
          Dst:             strcasecmp
        - Src:             'jot.c:831,15'
          Dst:             strcasecmp
        - Src:             'jot.c:837,9'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:836,13'
          Dst:             pstrcat
        - Src:             'jot.c:840,16'
          Dst:             dir_abs_path
        - Src:             'jot.c:847,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:848,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:849,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:850,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:851,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:852,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:853,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:854,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:855,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:856,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:859,22'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:860,18'
          Dst:             dir_abs_path
        - Src:             'jot.c:862,20'
          Dst:             dir_abs_path
        - Src:             'jot.c:869,16'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:873,22'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:874,18'
          Dst:             dir_abs_path
        - Src:             'jot.c:877,20'
          Dst:             dir_abs_path
        - Src:             'jot.c:893,20'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:894,16'
          Dst:             dir_abs_path
        - Src:             'jot.c:901,16'
          Dst:             pr_fsio_realpath
    - functionName:    get_meta_basename
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 572
      functionLinenumberEnd: 674
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         97
      ICount:          471
      EdgeCount:       132
      CyclomaticComplexity: 37
      functionsReached:
        - pr_cmd_cmp
        - pr_fs_decode_path
        - pr_fs_getcwd
        - pr_fs_getvwd
        - pr_table_get
        - pstrcat
        - strcasecmp
        - strcmp
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:577,7'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:578,12'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:580,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:581,12'
          Dst:             pr_table_get
        - Src:             'jot.c:583,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:584,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:585,12'
          Dst:             pr_table_get
        - Src:             'jot.c:591,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:592,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:593,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:594,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:595,12'
          Dst:             pr_fs_getcwd
        - Src:             'jot.c:597,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:598,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:608,21'
          Dst:             pr_fs_getvwd
        - Src:             'jot.c:608,14'
          Dst:             strcmp
        - Src:             'jot.c:608,45'
          Dst:             pr_fs_getvwd
        - Src:             'jot.c:613,15'
          Dst:             pr_fs_getcwd
        - Src:             'jot.c:616,14'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:618,15'
          Dst:             strcasecmp
        - Src:             'jot.c:619,15'
          Dst:             strcasecmp
        - Src:             'jot.c:620,15'
          Dst:             strcasecmp
        - Src:             'jot.c:626,9'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:625,13'
          Dst:             pstrcat
        - Src:             'jot.c:636,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:637,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:638,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:639,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:640,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:641,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:642,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:643,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:644,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:645,9'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:646,15'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:648,16'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:650,14'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:657,11'
          Dst:             strrchr
    - functionName:    is_jottable_cmd_name
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2215
      functionLinenumberEnd: 2242
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          94
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:2230,9'
          Dst:             strcmp
    - functionName:    is_jottable_cmd_id
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2197
      functionLinenumberEnd: 2208
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - pr_cmd_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:2202,9'
          Dst:             pr_cmd_cmp
    - functionName:    is_jottable_class
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2139
      functionLinenumberEnd: 2194
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          168
      EdgeCount:       43
      CyclomaticComplexity: 12
      functionsReached:
        - pr_trace_msg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:2160,7'
          Dst:             pr_trace_msg
        - Src:             'jot.c:2182,5'
          Dst:             pr_trace_msg
    - functionName:    jot_set_deleted_filesz
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3477
      functionLinenumberEnd: 3479
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_jot_filters_include_classes
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3468
      functionLinenumberEnd: 3475
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:3470,5'
          Dst:             __errno_location
    - functionName:    pr_jot_filters_destroy
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3458
      functionLinenumberEnd: 3466
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - destroy_pool
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:3460,5'
          Dst:             __errno_location
        - Src:             'jot.c:3464,3'
          Dst:             destroy_pool
    - functionName:    pr_jot_filters_parse_sifts
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3432
      functionLinenumberEnd: 3456
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          85
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - destroy_pool
        - filter_text_to_array
        - make_sub_pool
        - pstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:3440,5'
          Dst:             __errno_location
        - Src:             'jot.c:3444,14'
          Dst:             make_sub_pool
        - Src:             'jot.c:3445,47'
          Dst:             pstrdup
        - Src:             'jot.c:3445,11'
          Dst:             filter_text_to_array
        - Src:             'jot.c:3446,12'
          Dst:             __errno_location
        - Src:             'jot.c:3447,3'
          Dst:             destroy_pool
        - Src:             'jot.c:3450,5'
          Dst:             __errno_location
    - functionName:    filter_text_to_array
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3109
      functionLinenumberEnd: 3124
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - memchr
        - pr_str_text_to_array
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:3113,14'
          Dst:             strlen
        - Src:             'jot.c:3120,7'
          Dst:             memchr
        - Src:             'jot.c:3124,10'
          Dst:             pr_str_text_to_array
    - functionName:    filter_get_cmd_ids
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3279
      functionLinenumberEnd: 3363
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         58
      ICount:          314
      EdgeCount:       76
      CyclomaticComplexity: 20
      functionsReached:
        - make_array
        - pr_cmd_get_id
        - pr_signals_handle
        - pr_trace_msg
        - push_array
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:3285,13'
          Dst:             make_array
        - Src:             'jot.c:3290,5'
          Dst:             pr_signals_handle
        - Src:             'jot.c:3294,14'
          Dst:             pr_cmd_get_id
        - Src:             'jot.c:3299,13'
          Dst:             strcmp
        - Src:             'jot.c:3307,20'
          Dst:             strcmp
        - Src:             'jot.c:3311,20'
          Dst:             strcmp
        - Src:             'jot.c:3315,20'
          Dst:             strcmp
        - Src:             'jot.c:3319,20'
          Dst:             strcmp
        - Src:             'jot.c:3323,20'
          Dst:             strcmp
        - Src:             'jot.c:3327,20'
          Dst:             strcmp
        - Src:             'jot.c:3331,20'
          Dst:             strcmp
        - Src:             'jot.c:3335,20'
          Dst:             strcmp
        - Src:             'jot.c:3339,20'
          Dst:             strcmp
        - Src:             'jot.c:3343,20'
          Dst:             strcmp
        - Src:             'jot.c:3347,20'
          Dst:             strcmp
        - Src:             'jot.c:3354,9'
          Dst:             pr_trace_msg
        - Src:             'jot.c:3359,17'
          Dst:             push_array
    - functionName:    filter_get_classes
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3128
      functionLinenumberEnd: 3276
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         95
      ICount:          476
      EdgeCount:       125
      CyclomaticComplexity: 32
      functionsReached:
        - __errno_location
        - pr_signals_handle
        - pr_trace_msg
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:3137,5'
          Dst:             pr_signals_handle
        - Src:             'jot.c:3146,9'
          Dst:             strcasecmp
        - Src:             'jot.c:3155,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3164,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3173,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3182,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3191,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3200,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3209,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3218,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3219,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3228,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3237,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3238,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3247,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3256,16'
          Dst:             strcasecmp
        - Src:             'jot.c:3266,7'
          Dst:             pr_trace_msg
        - Src:             'jot.c:3268,7'
          Dst:             __errno_location
    - functionName:    pr_jot_filters_create
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3367
      functionLinenumberEnd: 3429
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          150
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - destroy_pool
        - filter_get_classes
        - filter_get_cmd_ids
        - filter_text_to_array
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
        - pstrdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'jot.c:3388,3'
          Branch Sides:    []
      Callsites:
        - Src:             'jot.c:3375,5'
          Dst:             __errno_location
        - Src:             'jot.c:3382,14'
          Dst:             make_sub_pool
        - Src:             'jot.c:3383,3'
          Dst:             pr_pool_tag
        - Src:             'jot.c:3385,14'
          Dst:             make_sub_pool
        - Src:             'jot.c:3386,42'
          Dst:             pstrdup
        - Src:             'jot.c:3386,11'
          Dst:             filter_text_to_array
        - Src:             'jot.c:3392,13'
          Dst:             filter_get_classes
        - Src:             'jot.c:3395,22'
          Dst:             __errno_location
        - Src:             'jot.c:3397,9'
          Dst:             destroy_pool
        - Src:             'jot.c:3398,9'
          Dst:             destroy_pool
        - Src:             'jot.c:3399,9'
          Dst:             __errno_location
        - Src:             'jot.c:3408,17'
          Dst:             filter_get_cmd_ids
        - Src:             'jot.c:3413,7'
          Dst:             destroy_pool
        - Src:             'jot.c:3414,7'
          Dst:             destroy_pool
        - Src:             'jot.c:3415,7'
          Dst:             __errno_location
        - Src:             'jot.c:3419,3'
          Dst:             destroy_pool
        - Src:             'jot.c:3421,13'
          Dst:             pcalloc
    - functionName:    scan_meta
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3031
      functionLinenumberEnd: 3071
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          148
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - get_meta_arg
      functionUses:    1
      BranchProfiles:
        - Branch String:   'jot.c:3040,3'
          Branch Sides:    []
      Callsites:
        - Src:             'jot.c:3050,23'
          Dst:             get_meta_arg
    - functionName:    pr_jot_scan_logfmt
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3076
      functionLinenumberEnd: 3107
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          107
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - pr_jot_get_logfmt_id_name
        - pr_signals_handle
        - scan_meta
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:3082,5'
          Dst:             __errno_location
        - Src:             'jot.c:3086,7'
          Dst:             pr_jot_get_logfmt_id_name
        - Src:             'jot.c:3087,5'
          Dst:             __errno_location
        - Src:             'jot.c:3092,5'
          Dst:             pr_signals_handle
        - Src:             'jot.c:3099,13'
          Dst:             scan_meta
    - functionName:    pr_jot_get_logfmt_id_name
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 328
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         61
      ICount:          308
      EdgeCount:       121
      CyclomaticComplexity: 62
      functionsReached:
        - __errno_location
      functionUses:    7
      BranchProfiles:
        - Branch String:   'jot.c:97,3'
          Branch Sides:    []
      Callsites:
        - Src:             'jot.c:323,7'
          Dst:             __errno_location
    - functionName:    parse_unknown_id
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2627
      functionLinenumberEnd: 2644
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          68
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - strchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:2631,5'
          Dst:             __errno_location
        - Src:             'jot.c:2635,9'
          Dst:             strchr
        - Src:             'jot.c:2637,5'
          Dst:             __errno_location
    - functionName:    parse_long_id
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2647
      functionLinenumberEnd: 2827
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         69
      ICount:          483
      EdgeCount:       99
      CyclomaticComplexity: 32
      functionsReached:
        - __errno_location
        - parse_unknown_id
        - strchr
        - strncasecmp
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:2650,7'
          Dst:             strncmp
        - Src:             'jot.c:2655,7'
          Dst:             strncmp
        - Src:             'jot.c:2658,11'
          Dst:             strchr
        - Src:             'jot.c:2671,7'
          Dst:             strncmp
        - Src:             'jot.c:2676,7'
          Dst:             strncmp
        - Src:             'jot.c:2681,7'
          Dst:             strncmp
        - Src:             'jot.c:2686,7'
          Dst:             strncmp
        - Src:             'jot.c:2691,7'
          Dst:             strncmp
        - Src:             'jot.c:2696,7'
          Dst:             strncasecmp
        - Src:             'jot.c:2701,7'
          Dst:             strncmp
        - Src:             'jot.c:2706,7'
          Dst:             strncmp
        - Src:             'jot.c:2711,7'
          Dst:             strncmp
        - Src:             'jot.c:2714,11'
          Dst:             strchr
        - Src:             'jot.c:2727,7'
          Dst:             strncmp
        - Src:             'jot.c:2730,11'
          Dst:             strchr
        - Src:             'jot.c:2743,7'
          Dst:             strncmp
        - Src:             'jot.c:2748,7'
          Dst:             strncmp
        - Src:             'jot.c:2753,7'
          Dst:             strncmp
        - Src:             'jot.c:2756,11'
          Dst:             strchr
        - Src:             'jot.c:2769,7'
          Dst:             strncmp
        - Src:             'jot.c:2774,7'
          Dst:             strncmp
        - Src:             'jot.c:2779,7'
          Dst:             strncmp
        - Src:             'jot.c:2784,7'
          Dst:             strncmp
        - Src:             'jot.c:2789,7'
          Dst:             strncmp
        - Src:             'jot.c:2794,7'
          Dst:             strncmp
        - Src:             'jot.c:2799,7'
          Dst:             strncmp
        - Src:             'jot.c:2804,7'
          Dst:             strncmp
        - Src:             'jot.c:2812,9'
          Dst:             parse_unknown_id
        - Src:             'jot.c:2825,3'
          Dst:             __errno_location
    - functionName:    parse_short_id
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2492
      functionLinenumberEnd: 2624
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          218
      EdgeCount:       73
      CyclomaticComplexity: 38
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:
        - Branch String:   'jot.c:2493,3'
          Branch Sides:    []
      Callsites:
        - Src:             'jot.c:2619,7'
          Dst:             __errno_location
    - functionName:    jot_parse_on_other
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2488
      functionLinenumberEnd: 2489
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jot_parse_on_unknown
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2484
      functionLinenumberEnd: 2485
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_jot_parse_logfmt
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2952
      functionLinenumberEnd: 3027
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          251
      EdgeCount:       45
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - parse_long_id
        - parse_short_id
        - parse_unknown_id
        - pr_signals_handle
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:2959,5'
          Dst:             __errno_location
        - Src:             'jot.c:2971,3'
          Dst:             pr_trace_msg
        - Src:             'jot.c:2979,5'
          Dst:             pr_signals_handle
        - Src:             'jot.c:2991,11'
          Dst:             parse_short_id
        - Src:             'jot.c:2998,11'
          Dst:             parse_long_id
        - Src:             'jot.c:3005,11'
          Dst:             parse_unknown_id
        - Src:             'jot.c:3008,9'
          Dst:             pr_trace_msg
    - functionName:    jot_parsed_append_byte
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2829
      functionLinenumberEnd: 2835
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:2831,5'
          Dst:             pr_trace_msg
    - functionName:    pr_jot_parse_on_other
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2931
      functionLinenumberEnd: 2947
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - jot_parsed_append_byte
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:2935,5'
          Dst:             __errno_location
        - Src:             'jot.c:2941,5'
          Dst:             __errno_location
        - Src:             'jot.c:2945,3'
          Dst:             jot_parsed_append_byte
    - functionName:    jot_parsed_append_text
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2838
      functionLinenumberEnd: 2858
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          95
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - pr_trace_msg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:2850,3'
          Dst:             pr_trace_msg
    - functionName:    pr_jot_parse_on_unknown
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2913
      functionLinenumberEnd: 2929
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - jot_parsed_append_text
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:2917,5'
          Dst:             __errno_location
        - Src:             'jot.c:2923,5'
          Dst:             __errno_location
        - Src:             'jot.c:2927,3'
          Dst:             jot_parsed_append_text
    - functionName:    jot_parsed_append_arg
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2873
      functionLinenumberEnd: 2890
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          81
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - jot_parsed_append_text
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:2885,5'
          Dst:             jot_parsed_append_text
    - functionName:    jot_parsed_append_var
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2861
      functionLinenumberEnd: 2870
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_jot_get_logfmt_id_name
        - pr_trace_msg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:2865,18'
          Dst:             pr_jot_get_logfmt_id_name
        - Src:             'jot.c:2864,5'
          Dst:             pr_trace_msg
    - functionName:    pr_jot_parse_on_meta
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2893
      functionLinenumberEnd: 2910
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - jot_parsed_append_arg
        - jot_parsed_append_var
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:2897,5'
          Dst:             __errno_location
        - Src:             'jot.c:2903,5'
          Dst:             __errno_location
        - Src:             'jot.c:2907,3'
          Dst:             jot_parsed_append_var
        - Src:             'jot.c:2908,3'
          Dst:             jot_parsed_append_arg
    - functionName:    resolve_meta
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2088
      functionLinenumberEnd: 2136
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          147
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - get_meta_arg
        - pstrndup
        - resolve_logfmt_id
      functionUses:    1
      BranchProfiles:
        - Branch String:   'jot.c:2097,3'
          Branch Sides:    []
      Callsites:
        - Src:             'jot.c:2105,23'
          Dst:             get_meta_arg
        - Src:             'jot.c:2119,17'
          Dst:             pstrndup
        - Src:             'jot.c:2121,9'
          Dst:             resolve_logfmt_id
    - functionName:    resolve_logfmt_id
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1191
      functionLinenumberEnd: 2082
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         294
      ICount:          2219
      EdgeCount:       371
      CyclomaticComplexity: 79
      functionsReached:
        - __errno_location
        - atoi
        - get_full_cmd
        - get_meta_basename
        - get_meta_dir_name
        - get_meta_dir_path
        - get_meta_filename
        - get_meta_transfer_failure
        - get_meta_transfer_path
        - get_meta_transfer_port
        - get_meta_transfer_secs
        - get_meta_transfer_speed
        - get_meta_transfer_status
        - get_meta_transfer_type
        - getegid
        - geteuid
        - gettimeofday
        - ntohs
        - pr_cmd_cmp
        - pr_env_get
        - pr_fs_decode_path
        - pr_gettimeofday_millis
        - pr_gmtime
        - pr_jot_get_logfmt_id_name
        - pr_localtime
        - pr_netaddr_get_dnsstr
        - pr_netaddr_get_ipstr
        - pr_netaddr_get_port
        - pr_netaddr_get_sess_local_addr
        - pr_netaddr_get_sess_remote_addr
        - pr_netaddr_get_sess_remote_name
        - pr_response_get_last
        - pr_session_get_disconnect_reason
        - pr_session_get_protocol
        - pr_snprintf
        - pr_table_get
        - pr_timeval2millis
        - pr_trace_get_level
        - pr_trace_msg
        - pr_var_get
        - pstrcat
        - pstrndup
        - strcasecmp
        - strerror
        - strftime
        - strlen
        - time
        - toupper
      functionUses:    2
      BranchProfiles:
        - Branch String:   'jot.c:1213,3'
          Branch Sides:    []
      Callsites:
        - Src:             'jot.c:1194,7'
          Dst:             pr_trace_get_level
        - Src:             'jot.c:1197,15'
          Dst:             pr_jot_get_logfmt_id_name
        - Src:             'jot.c:1204,27'
          Dst:             strlen
        - Src:             'jot.c:1201,9'
          Dst:             pr_trace_msg
        - Src:             'jot.c:1207,9'
          Dst:             pr_trace_msg
        - Src:             'jot.c:1217,18'
          Dst:             get_meta_basename
        - Src:             'jot.c:1236,18'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1263,14'
          Dst:             gettimeofday
        - Src:             'jot.c:1272,18'
          Dst:             get_meta_filename
        - Src:             'jot.c:1286,14'
          Dst:             pr_table_get
        - Src:             'jot.c:1303,14'
          Dst:             pr_table_get
        - Src:             'jot.c:1323,15'
          Dst:             pr_env_get
        - Src:             'jot.c:1327,24'
          Dst:             pstrcat
        - Src:             'jot.c:1341,14'
          Dst:             pr_netaddr_get_sess_remote_name
        - Src:             'jot.c:1349,36'
          Dst:             pr_netaddr_get_sess_remote_addr
        - Src:             'jot.c:1349,15'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'jot.c:1358,21'
          Dst:             pr_netaddr_get_sess_remote_addr
        - Src:             'jot.c:1360,29'
          Dst:             pr_netaddr_get_port
        - Src:             'jot.c:1360,23'
          Dst:             ntohs
        - Src:             'jot.c:1373,20'
          Dst:             pr_table_get
        - Src:             'jot.c:1396,13'
          Dst:             time
        - Src:             'jot.c:1397,12'
          Dst:             pr_gmtime
        - Src:             'jot.c:1406,9'
          Dst:             strftime
        - Src:             'jot.c:1419,11'
          Dst:             get_meta_transfer_secs
        - Src:             'jot.c:1438,13'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1442,20'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1446,22'
          Dst:             get_full_cmd
        - Src:             'jot.c:1488,36'
          Dst:             pr_netaddr_get_sess_local_addr
        - Src:             'jot.c:1488,15'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'jot.c:1496,38'
          Dst:             pr_netaddr_get_sess_local_addr
        - Src:             'jot.c:1496,16'
          Dst:             pr_netaddr_get_dnsstr
        - Src:             'jot.c:1515,19'
          Dst:             pr_table_get
        - Src:             'jot.c:1531,14'
          Dst:             pr_response_get_last
        - Src:             'jot.c:1534,20'
          Dst:             atoi
        - Src:             'jot.c:1538,18'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1567,19'
          Dst:             pr_table_get
        - Src:             'jot.c:1581,11'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1597,17'
          Dst:             toupper
        - Src:             'jot.c:1600,15'
          Dst:             pr_snprintf
        - Src:             'jot.c:1603,18'
          Dst:             pstrndup
        - Src:             'jot.c:1619,23'
          Dst:             get_meta_transfer_path
        - Src:             'jot.c:1633,18'
          Dst:             get_meta_dir_name
        - Src:             'jot.c:1647,18'
          Dst:             get_meta_dir_path
        - Src:             'jot.c:1667,13'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1668,13'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1672,20'
          Dst:             pr_fs_decode_path
        - Src:             'jot.c:1690,14'
          Dst:             pr_response_get_last
        - Src:             'jot.c:1705,18'
          Dst:             pr_table_get
        - Src:             'jot.c:1710,9'
          Dst:             pr_gettimeofday_millis
        - Src:             'jot.c:1725,15'
          Dst:             pr_session_get_protocol
        - Src:             'jot.c:1739,11'
          Dst:             pr_cmd_cmp
        - Src:             'jot.c:1742,21'
          Dst:             pr_table_get
        - Src:             'jot.c:1761,13'
          Dst:             pr_table_get
        - Src:             'jot.c:1763,13'
          Dst:             strcasecmp
        - Src:             'jot.c:1779,20'
          Dst:             geteuid
        - Src:             'jot.c:1793,20'
          Dst:             getegid
        - Src:             'jot.c:1820,15'
          Dst:             pr_session_get_disconnect_reason
        - Src:             'jot.c:1823,22'
          Dst:             pstrcat
        - Src:             'jot.c:1855,9'
          Dst:             pr_trace_msg
        - Src:             'jot.c:1859,16'
          Dst:             pr_table_get
        - Src:             'jot.c:1863,18'
          Dst:             pr_table_get
        - Src:             'jot.c:1869,24'
          Dst:             pstrcat
        - Src:             'jot.c:1885,9'
          Dst:             pr_trace_msg
        - Src:             'jot.c:1891,15'
          Dst:             pstrcat
        - Src:             'jot.c:1893,15'
          Dst:             pr_var_get
        - Src:             'jot.c:1897,24'
          Dst:             pstrcat
        - Src:             'jot.c:1902,35'
          Dst:             __errno_location
        - Src:             'jot.c:1902,26'
          Dst:             strerror
        - Src:             'jot.c:1901,11'
          Dst:             pr_trace_msg
        - Src:             'jot.c:1913,25'
          Dst:             get_meta_transfer_status
        - Src:             'jot.c:1927,26'
          Dst:             get_meta_transfer_failure
        - Src:             'jot.c:1948,11'
          Dst:             pr_timeval2millis
        - Src:             'jot.c:1949,11'
          Dst:             pr_gettimeofday_millis
        - Src:             'jot.c:1968,23'
          Dst:             get_meta_transfer_port
        - Src:             'jot.c:1985,24'
          Dst:             get_meta_transfer_speed
        - Src:             'jot.c:1999,23'
          Dst:             get_meta_transfer_type
        - Src:             'jot.c:2014,7'
          Dst:             gettimeofday
        - Src:             'jot.c:2025,7'
          Dst:             gettimeofday
        - Src:             'jot.c:2038,7'
          Dst:             gettimeofday
        - Src:             'jot.c:2039,12'
          Dst:             pr_localtime
        - Src:             'jot.c:2045,15'
          Dst:             strftime
        - Src:             'jot.c:2050,9'
          Dst:             pr_snprintf
        - Src:             'jot.c:2072,7'
          Dst:             pr_trace_msg
    - functionName:    jot_resolve_on_other
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2303
      functionLinenumberEnd: 2304
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_jot_resolve_logfmt
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2379
      functionLinenumberEnd: 2481
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          293
      EdgeCount:       63
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - is_jottable
        - pr_jot_get_logfmt_id_name
        - pr_signals_handle
        - pr_trace_msg
        - resolve_meta
      functionUses:    1
      BranchProfiles:
        - Branch String:   'jot.c:2438,5'
          Branch Sides:    []
      Callsites:
        - Src:             'jot.c:2387,5'
          Dst:             __errno_location
        - Src:             'jot.c:2391,14'
          Dst:             is_jottable
        - Src:             'jot.c:2393,5'
          Dst:             pr_trace_msg
        - Src:             'jot.c:2395,5'
          Dst:             __errno_location
        - Src:             'jot.c:2411,5'
          Dst:             pr_signals_handle
        - Src:             'jot.c:2444,13'
          Dst:             pr_jot_get_logfmt_id_name
        - Src:             'jot.c:2442,11'
          Dst:             pr_trace_msg
        - Src:             'jot.c:2457,13'
          Dst:             pr_jot_get_logfmt_id_name
        - Src:             'jot.c:2455,11'
          Dst:             pr_trace_msg
        - Src:             'jot.c:2468,15'
          Dst:             resolve_meta
    - functionName:    is_jottable
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2245
      functionLinenumberEnd: 2294
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          168
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - is_jottable_class
        - is_jottable_cmd_id
        - is_jottable_cmd_name
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:2255,18'
          Dst:             is_jottable_class
        - Src:             'jot.c:2261,20'
          Dst:             is_jottable_cmd_id
        - Src:             'jot.c:2273,22'
          Dst:             is_jottable_class
        - Src:             'jot.c:2275,20'
          Dst:             is_jottable_cmd_name
    - functionName:    jot_resolve_on_default
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2298
      functionLinenumberEnd: 2299
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_jot_resolve_logfmt_id
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2312
      functionLinenumberEnd: 2372
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          211
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - is_jottable
        - pr_jot_get_logfmt_id_name
        - pr_trace_msg
        - resolve_logfmt_id
      functionUses:    0
      BranchProfiles:
        - Branch String:   'jot.c:2343,3'
          Branch Sides:    []
      Callsites:
        - Src:             'jot.c:2318,5'
          Dst:             __errno_location
        - Src:             'jot.c:2326,5'
          Dst:             __errno_location
        - Src:             'jot.c:2334,14'
          Dst:             is_jottable
        - Src:             'jot.c:2336,5'
          Dst:             pr_trace_msg
        - Src:             'jot.c:2338,5'
          Dst:             __errno_location
        - Src:             'jot.c:2346,35'
          Dst:             pr_jot_get_logfmt_id_name
        - Src:             'jot.c:2345,7'
          Dst:             pr_trace_msg
        - Src:             'jot.c:2357,35'
          Dst:             pr_jot_get_logfmt_id_name
        - Src:             'jot.c:2356,7'
          Dst:             pr_trace_msg
        - Src:             'jot.c:2369,9'
          Dst:             resolve_logfmt_id
    - functionName:    pr_jot_on_json
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          185
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - pr_json_object_set_bool
        - pr_json_object_set_number
        - pr_json_object_set_string
        - pr_json_type_name
        - pr_table_kget
        - pr_trace_msg
      functionUses:    0
      BranchProfiles:
        - Branch String:   'jot.c:511,3'
          Branch Sides:    []
      Callsites:
        - Src:             'jot.c:475,5'
          Dst:             __errno_location
        - Src:             'jot.c:480,5'
          Dst:             pr_trace_msg
        - Src:             'jot.c:483,5'
          Dst:             __errno_location
        - Src:             'jot.c:488,5'
          Dst:             pr_trace_msg
        - Src:             'jot.c:491,5'
          Dst:             __errno_location
        - Src:             'jot.c:498,9'
          Dst:             pr_table_kget
        - Src:             'jot.c:501,5'
          Dst:             pr_trace_msg
        - Src:             'jot.c:504,5'
          Dst:             __errno_location
        - Src:             'jot.c:509,31'
          Dst:             pr_json_type_name
        - Src:             'jot.c:508,3'
          Dst:             pr_trace_msg
        - Src:             'jot.c:522,13'
          Dst:             pr_json_object_set_string
        - Src:             'jot.c:527,13'
          Dst:             pr_json_object_set_number
        - Src:             'jot.c:532,13'
          Dst:             pr_json_object_set_bool
    - functionName:    add_json_info
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - palloc
        - pr_table_kadd
      functionUses:    55
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:83,7'
          Dst:             palloc
        - Src:             'jot.c:86,9'
          Dst:             palloc
        - Src:             'jot.c:90,10'
          Dst:             pr_table_kadd
    - functionName:    logfmt_json_keyhash
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    logfmt_json_keycmp
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          24
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_jot_get_logfmt2json
      functionSourceFile: '/src/proftpd/src/jot.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 463
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          204
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - add_json_info
        - logfmt_json_keycmp
        - logfmt_json_keyhash
        - pr_table_alloc
        - pr_table_ctl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'jot.c:335,5'
          Dst:             __errno_location
        - Src:             'jot.c:339,9'
          Dst:             pr_table_alloc
        - Src:             'jot.c:341,10'
          Dst:             pr_table_ctl
        - Src:             'jot.c:341,10'
          Dst:             logfmt_json_keycmp
        - Src:             'jot.c:343,10'
          Dst:             pr_table_ctl
        - Src:             'jot.c:343,10'
          Dst:             logfmt_json_keyhash
        - Src:             'jot.c:351,3'
          Dst:             add_json_info
        - Src:             'jot.c:353,3'
          Dst:             add_json_info
        - Src:             'jot.c:355,3'
          Dst:             add_json_info
        - Src:             'jot.c:357,3'
          Dst:             add_json_info
        - Src:             'jot.c:359,3'
          Dst:             add_json_info
        - Src:             'jot.c:361,3'
          Dst:             add_json_info
        - Src:             'jot.c:363,3'
          Dst:             add_json_info
        - Src:             'jot.c:365,3'
          Dst:             add_json_info
        - Src:             'jot.c:367,3'
          Dst:             add_json_info
        - Src:             'jot.c:369,3'
          Dst:             add_json_info
        - Src:             'jot.c:371,3'
          Dst:             add_json_info
        - Src:             'jot.c:373,3'
          Dst:             add_json_info
        - Src:             'jot.c:375,3'
          Dst:             add_json_info
        - Src:             'jot.c:377,3'
          Dst:             add_json_info
        - Src:             'jot.c:379,3'
          Dst:             add_json_info
        - Src:             'jot.c:381,3'
          Dst:             add_json_info
        - Src:             'jot.c:383,3'
          Dst:             add_json_info
        - Src:             'jot.c:385,3'
          Dst:             add_json_info
        - Src:             'jot.c:387,3'
          Dst:             add_json_info
        - Src:             'jot.c:389,3'
          Dst:             add_json_info
        - Src:             'jot.c:391,3'
          Dst:             add_json_info
        - Src:             'jot.c:393,3'
          Dst:             add_json_info
        - Src:             'jot.c:395,3'
          Dst:             add_json_info
        - Src:             'jot.c:397,3'
          Dst:             add_json_info
        - Src:             'jot.c:399,3'
          Dst:             add_json_info
        - Src:             'jot.c:401,3'
          Dst:             add_json_info
        - Src:             'jot.c:403,3'
          Dst:             add_json_info
        - Src:             'jot.c:405,3'
          Dst:             add_json_info
        - Src:             'jot.c:407,3'
          Dst:             add_json_info
        - Src:             'jot.c:409,3'
          Dst:             add_json_info
        - Src:             'jot.c:411,3'
          Dst:             add_json_info
        - Src:             'jot.c:413,3'
          Dst:             add_json_info
        - Src:             'jot.c:415,3'
          Dst:             add_json_info
        - Src:             'jot.c:417,3'
          Dst:             add_json_info
        - Src:             'jot.c:419,3'
          Dst:             add_json_info
        - Src:             'jot.c:421,3'
          Dst:             add_json_info
        - Src:             'jot.c:423,3'
          Dst:             add_json_info
        - Src:             'jot.c:425,3'
          Dst:             add_json_info
        - Src:             'jot.c:427,3'
          Dst:             add_json_info
        - Src:             'jot.c:429,3'
          Dst:             add_json_info
        - Src:             'jot.c:431,3'
          Dst:             add_json_info
        - Src:             'jot.c:433,3'
          Dst:             add_json_info
        - Src:             'jot.c:435,3'
          Dst:             add_json_info
        - Src:             'jot.c:437,3'
          Dst:             add_json_info
        - Src:             'jot.c:439,3'
          Dst:             add_json_info
        - Src:             'jot.c:441,3'
          Dst:             add_json_info
        - Src:             'jot.c:443,3'
          Dst:             add_json_info
        - Src:             'jot.c:445,3'
          Dst:             add_json_info
        - Src:             'jot.c:447,3'
          Dst:             add_json_info
        - Src:             'jot.c:449,3'
          Dst:             add_json_info
        - Src:             'jot.c:451,3'
          Dst:             add_json_info
        - Src:             'jot.c:453,3'
          Dst:             add_json_info
        - Src:             'jot.c:455,3'
          Dst:             add_json_info
        - Src:             'jot.c:457,3'
          Dst:             add_json_info
        - Src:             'jot.c:459,3'
          Dst:             add_json_info
    - functionName:    supp_grplist
      functionSourceFile: '/src/proftpd/lib/pwgrent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          96
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    supp_getgrent
      functionSourceFile: '/src/proftpd/lib/pwgrent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          168
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - atoi
        - pr_log_pri
        - realloc
        - sstrncpy
        - strchr
        - strlen
        - strrchr
        - supp_grplist
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pwgrent.c:178,7'
          Dst:             strlen
        - Src:             'pwgrent.c:186,15'
          Dst:             realloc
        - Src:             'pwgrent.c:196,3'
          Dst:             sstrncpy
        - Src:             'pwgrent.c:198,13'
          Dst:             strrchr
        - Src:             'pwgrent.c:204,15'
          Dst:             strchr
        - Src:             'pwgrent.c:209,5'
          Dst:             pr_log_pri
        - Src:             'pwgrent.c:218,18'
          Dst:             atoi
        - Src:             'pwgrent.c:219,18'
          Dst:             supp_grplist
    - functionName:    fgetbufline
      functionSourceFile: '/src/proftpd/lib/pwgrent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          105
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - fgets
        - realloc
        - strchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pwgrent.c:128,10'
          Dst:             fgets
        - Src:             'pwgrent.c:131,9'
          Dst:             strchr
        - Src:             'pwgrent.c:140,17'
          Dst:             realloc
        - Src:             'pwgrent.c:148,10'
          Dst:             strchr
    - functionName:    fgetgrent
      functionSourceFile: '/src/proftpd/lib/pwgrent.c'
      linkageType:     externalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          88
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - fgetbufline
        - strchr
        - supp_getgrent
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pwgrent.c:232,10'
          Dst:             fgetbufline
        - Src:             'pwgrent.c:238,15'
          Dst:             strchr
        - Src:             'pwgrent.c:241,11'
          Dst:             supp_getgrent
    - functionName:    supp_getpwent
      functionSourceFile: '/src/proftpd/lib/pwgrent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         43
      ICount:          270
      EdgeCount:       57
      CyclomaticComplexity: 16
      functionsReached:
        - sstrncpy
        - strtol
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pwgrent.c:65,3'
          Dst:             sstrncpy
        - Src:             'pwgrent.c:86,22'
          Dst:             strtol
        - Src:             'pwgrent.c:90,22'
          Dst:             strtol
    - functionName:    fgetpwent
      functionSourceFile: '/src/proftpd/lib/pwgrent.c'
      linkageType:     externalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          61
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - fgets
        - strlen
        - supp_getpwent
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'pwgrent.c:103,10'
          Dst:             fgets
        - Src:             'pwgrent.c:109,9'
          Dst:             strlen
        - Src:             'pwgrent.c:110,12'
          Dst:             supp_getpwent
    - functionName:    encode_base64
      functionSourceFile: '/src/proftpd/lib/openbsd-bcrypt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          152
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    decode_base64
      functionSourceFile: '/src/proftpd/lib/openbsd-bcrypt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          238
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bcrypt_hashpass
      functionSourceFile: '/src/proftpd/lib/openbsd-bcrypt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          431
      EdgeCount:       68
      CyclomaticComplexity: 17
      functionsReached:
        - Blowfish_expand0state
        - Blowfish_expandstate
        - Blowfish_initstate
        - Blowfish_stream2word
        - __ctype_b_loc
        - __errno_location
        - blf_enc
        - decode_base64
        - encode_base64
        - explicit_bzero
        - snprintf
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'openbsd-bcrypt.c:86,2'
          Branch Sides:    []
      Callsites:
        - Src:             'openbsd-bcrypt.c:88,24'
          Dst:             strlen
        - Src:             'openbsd-bcrypt.c:95,13'
          Dst:             strlen
        - Src:             'openbsd-bcrypt.c:104,24'
          Dst:             strlen
        - Src:             'openbsd-bcrypt.c:115,7'
          Dst:             __ctype_b_loc
        - Src:             'openbsd-bcrypt.c:116,7'
          Dst:             __ctype_b_loc
        - Src:             'openbsd-bcrypt.c:127,6'
          Dst:             strlen
        - Src:             'openbsd-bcrypt.c:131,6'
          Dst:             decode_base64
        - Src:             'openbsd-bcrypt.c:136,2'
          Dst:             Blowfish_initstate
        - Src:             'openbsd-bcrypt.c:137,2'
          Dst:             Blowfish_expandstate
        - Src:             'openbsd-bcrypt.c:140,3'
          Dst:             Blowfish_expand0state
        - Src:             'openbsd-bcrypt.c:141,3'
          Dst:             Blowfish_expand0state
        - Src:             'openbsd-bcrypt.c:147,14'
          Dst:             Blowfish_stream2word
        - Src:             'openbsd-bcrypt.c:151,3'
          Dst:             blf_enc
        - Src:             'openbsd-bcrypt.c:164,2'
          Dst:             snprintf
        - Src:             'openbsd-bcrypt.c:165,2'
          Dst:             encode_base64
        - Src:             'openbsd-bcrypt.c:166,2'
          Dst:             encode_base64
        - Src:             'openbsd-bcrypt.c:168,2'
          Dst:             explicit_bzero
        - Src:             'openbsd-bcrypt.c:169,2'
          Dst:             explicit_bzero
        - Src:             'openbsd-bcrypt.c:170,2'
          Dst:             explicit_bzero
        - Src:             'openbsd-bcrypt.c:171,2'
          Dst:             explicit_bzero
        - Src:             'openbsd-bcrypt.c:186,2'
          Dst:             __errno_location
    - functionName:    explicit_bzero
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    blf_dec
      functionSourceFile: '/src/proftpd/lib/openbsd-blowfish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 522
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - Blowfish_decipher
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'openbsd-blowfish.c:519,3'
          Dst:             Blowfish_decipher
    - functionName:    Blowfish_decipher
      functionSourceFile: '/src/proftpd/lib/openbsd-blowfish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          687
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    blf_enc
      functionSourceFile: '/src/proftpd/lib/openbsd-blowfish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 500
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - Blowfish_encipher
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'openbsd-blowfish.c:506,3'
          Dst:             Blowfish_encipher
    - functionName:    Blowfish_encipher
      functionSourceFile: '/src/proftpd/lib/openbsd-blowfish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          687
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    blf_key
      functionSourceFile: '/src/proftpd/lib/openbsd-blowfish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 490
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Blowfish_expand0state
        - Blowfish_initstate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'openbsd-blowfish.c:492,2'
          Dst:             Blowfish_initstate
        - Src:             'openbsd-blowfish.c:495,2'
          Dst:             Blowfish_expand0state
    - functionName:    Blowfish_initstate
      functionSourceFile: '/src/proftpd/lib/openbsd-blowfish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 386
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    Blowfish_expand0state
      functionSourceFile: '/src/proftpd/lib/openbsd-blowfish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 411
      functionLinenumberEnd: 443
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          161
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - Blowfish_encipher
        - Blowfish_stream2word
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'openbsd-blowfish.c:421,10'
          Dst:             Blowfish_stream2word
        - Src:             'openbsd-blowfish.c:429,3'
          Dst:             Blowfish_encipher
        - Src:             'openbsd-blowfish.c:437,4'
          Dst:             Blowfish_encipher
    - functionName:    Blowfish_stream2word
      functionSourceFile: '/src/proftpd/lib/openbsd-blowfish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 391
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          68
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    Blowfish_expandstate
      functionSourceFile: '/src/proftpd/lib/openbsd-blowfish.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 486
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          193
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - Blowfish_encipher
        - Blowfish_stream2word
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'openbsd-blowfish.c:459,10'
          Dst:             Blowfish_stream2word
        - Src:             'openbsd-blowfish.c:467,11'
          Dst:             Blowfish_stream2word
        - Src:             'openbsd-blowfish.c:468,11'
          Dst:             Blowfish_stream2word
        - Src:             'openbsd-blowfish.c:469,3'
          Dst:             Blowfish_encipher
        - Src:             'openbsd-blowfish.c:477,11'
          Dst:             Blowfish_stream2word
        - Src:             'openbsd-blowfish.c:478,12'
          Dst:             Blowfish_stream2word
        - Src:             'openbsd-blowfish.c:479,4'
          Dst:             Blowfish_encipher
    - functionName:    rlimit_chroot_ev
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 803
      functionLinenumberEnd: 817
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_fsio_guard_chroot
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_rlimit.c:812,14'
          Dst:             strlen
        - Src:             'mod_rlimit.c:815,5'
          Dst:             pr_fsio_guard_chroot
    - functionName:    rlimit_set_files
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 679
      functionLinenumberEnd: 737
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          207
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - find_config
        - find_config_next
        - pr_log_debug
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
        - pr_rlimit_set_files
        - pr_signals_handle
        - strcasecmp
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_rlimit.c:683,7'
          Dst:             find_config
        - Src:             'mod_rlimit.c:688,5'
          Dst:             pr_signals_handle
        - Src:             'mod_rlimit.c:693,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:701,12'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:707,11'
          Dst:             find_config_next
        - Src:             'mod_rlimit.c:720,5'
          Dst:             pr_privs_root
        - Src:             'mod_rlimit.c:721,11'
          Dst:             pr_rlimit_set_files
        - Src:             'mod_rlimit.c:722,14'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:723,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_rlimit.c:727,9'
          Dst:             strerror
        - Src:             'mod_rlimit.c:726,7'
          Dst:             pr_log_pri
        - Src:             'mod_rlimit.c:730,7'
          Dst:             pr_log_debug
        - Src:             'mod_rlimit.c:734,9'
          Dst:             find_config_next
    - functionName:    rlimit_set_memory
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 740
      functionLinenumberEnd: 798
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          207
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - find_config
        - find_config_next
        - pr_log_debug
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
        - pr_rlimit_set_memory
        - pr_signals_handle
        - strcasecmp
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_rlimit.c:744,7'
          Dst:             find_config
        - Src:             'mod_rlimit.c:749,5'
          Dst:             pr_signals_handle
        - Src:             'mod_rlimit.c:754,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:762,12'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:768,11'
          Dst:             find_config_next
        - Src:             'mod_rlimit.c:781,5'
          Dst:             pr_privs_root
        - Src:             'mod_rlimit.c:782,11'
          Dst:             pr_rlimit_set_memory
        - Src:             'mod_rlimit.c:783,14'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:784,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_rlimit.c:788,9'
          Dst:             strerror
        - Src:             'mod_rlimit.c:787,7'
          Dst:             pr_log_pri
        - Src:             'mod_rlimit.c:791,7'
          Dst:             pr_log_debug
        - Src:             'mod_rlimit.c:795,9'
          Dst:             find_config_next
    - functionName:    rlimit_set_cpu
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 618
      functionLinenumberEnd: 676
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          207
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - find_config
        - find_config_next
        - pr_log_debug
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
        - pr_rlimit_set_cpu
        - pr_signals_handle
        - strcasecmp
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_rlimit.c:622,7'
          Dst:             find_config
        - Src:             'mod_rlimit.c:627,5'
          Dst:             pr_signals_handle
        - Src:             'mod_rlimit.c:632,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:640,12'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:646,11'
          Dst:             find_config_next
        - Src:             'mod_rlimit.c:659,5'
          Dst:             pr_privs_root
        - Src:             'mod_rlimit.c:660,11'
          Dst:             pr_rlimit_set_cpu
        - Src:             'mod_rlimit.c:661,14'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:662,5'
          Dst:             pr_privs_relinquish
        - Src:             'mod_rlimit.c:666,9'
          Dst:             strerror
        - Src:             'mod_rlimit.c:665,7'
          Dst:             pr_log_pri
        - Src:             'mod_rlimit.c:669,7'
          Dst:             pr_log_debug
        - Src:             'mod_rlimit.c:673,9'
          Dst:             find_config_next
    - functionName:    rlimit_set_core
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 572
      functionLinenumberEnd: 615
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          73
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - pr_log_debug
        - pr_log_pri
        - pr_privs_relinquish
        - pr_privs_root
        - pr_rlimit_set_core
        - prctl
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_rlimit.c:582,3'
          Dst:             pr_privs_root
        - Src:             'mod_rlimit.c:583,9'
          Dst:             pr_rlimit_set_core
        - Src:             'mod_rlimit.c:584,12'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:585,3'
          Dst:             pr_privs_relinquish
        - Src:             'mod_rlimit.c:589,7'
          Dst:             strerror
        - Src:             'mod_rlimit.c:588,5'
          Dst:             pr_log_pri
        - Src:             'mod_rlimit.c:592,5'
          Dst:             pr_log_debug
        - Src:             'mod_rlimit.c:607,9'
          Dst:             prctl
        - Src:             'mod_rlimit.c:609,18'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:609,9'
          Dst:             strerror
        - Src:             'mod_rlimit.c:608,7'
          Dst:             pr_log_pri
        - Src:             'mod_rlimit.c:614,3'
          Dst:             __errno_location
    - functionName:    prctl
      functionSourceFile: ''
      linkageType:     externalLinkage
      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:    rlimit_postparse_ev
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 819
      functionLinenumberEnd: 828
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - rlimit_set_core
        - rlimit_set_cpu
        - rlimit_set_files
        - rlimit_set_memory
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_rlimit.c:824,3'
          Dst:             rlimit_set_core
        - Src:             'mod_rlimit.c:825,3'
          Dst:             rlimit_set_cpu
        - Src:             'mod_rlimit.c:826,3'
          Dst:             rlimit_set_memory
        - Src:             'mod_rlimit.c:827,3'
          Dst:             rlimit_set_files
    - functionName:    rlimit_post_pass
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 556
      functionLinenumberEnd: 569
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - find_config
        - pr_fsio_guard_chroot
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_rlimit.c:559,7'
          Dst:             find_config
        - Src:             'mod_rlimit.c:565,7'
          Dst:             pr_fsio_guard_chroot
    - functionName:    get_num_bytes
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          212
      EdgeCount:       59
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
        - __isoc99_sscanf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_rlimit.c:63,9'
          Dst:             __isoc99_sscanf
        - Src:             'mod_rlimit.c:69,7'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:108,3'
          Dst:             __errno_location
    - functionName:    set_rlimitopenfiles
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 410
      functionLinenumberEnd: 554
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         78
      ICount:          610
      EdgeCount:       105
      CyclomaticComplexity: 29
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - palloc
        - pr_log_pri
        - pr_module_exists
        - pr_rlimit_get_files
        - pstrcat
        - pstrdup
        - strcasecmp
        - strerror
        - strtol
        - sysconf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_rlimit.c:418,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:418,5'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:428,7'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:429,5'
          Dst:             check_context
        - Src:             'mod_rlimit.c:429,5'
          Dst:             get_context_name
        - Src:             'mod_rlimit.c:429,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:429,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:429,5'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:432,5'
          Dst:             check_context
        - Src:             'mod_rlimit.c:432,5'
          Dst:             get_context_name
        - Src:             'mod_rlimit.c:432,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:432,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:432,5'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:436,7'
          Dst:             pr_rlimit_get_files
        - Src:             'mod_rlimit.c:438,16'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:438,7'
          Dst:             strerror
        - Src:             'mod_rlimit.c:437,5'
          Dst:             pr_log_pri
        - Src:             'mod_rlimit.c:444,7'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:445,7'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:447,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:448,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:449,17'
          Dst:             sysconf
        - Src:             'mod_rlimit.c:454,18'
          Dst:             strtol
        - Src:             'mod_rlimit.c:457,9'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:457,9'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:465,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:466,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:467,15'
          Dst:             sysconf
        - Src:             'mod_rlimit.c:472,20'
          Dst:             strtol
        - Src:             'mod_rlimit.c:475,11'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:475,11'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:486,9'
          Dst:             add_config_param
        - Src:             'mod_rlimit.c:487,18'
          Dst:             pstrdup
        - Src:             'mod_rlimit.c:488,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:490,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:497,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:498,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:499,17'
          Dst:             sysconf
        - Src:             'mod_rlimit.c:504,18'
          Dst:             strtol
        - Src:             'mod_rlimit.c:507,9'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:507,9'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:515,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:516,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:517,15'
          Dst:             sysconf
        - Src:             'mod_rlimit.c:522,20'
          Dst:             strtol
        - Src:             'mod_rlimit.c:525,11'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:525,11'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:536,9'
          Dst:             add_config_param
        - Src:             'mod_rlimit.c:537,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:539,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:543,7'
          Dst:             pr_module_exists
        - Src:             'mod_rlimit.c:550,10'
          Dst:             mod_create_ret
    - functionName:    sysconf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_rlimitmemory
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 407
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         68
      ICount:          547
      EdgeCount:       92
      CyclomaticComplexity: 26
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - get_context_name
        - get_num_bytes
        - mod_create_ret
        - palloc
        - pr_log_pri
        - pr_module_exists
        - pr_rlimit_get_memory
        - pstrcat
        - pstrdup
        - strcasecmp
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_rlimit.c:294,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:294,5'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:304,7'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:305,5'
          Dst:             check_context
        - Src:             'mod_rlimit.c:305,5'
          Dst:             get_context_name
        - Src:             'mod_rlimit.c:305,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:305,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:305,5'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:308,5'
          Dst:             check_context
        - Src:             'mod_rlimit.c:308,5'
          Dst:             get_context_name
        - Src:             'mod_rlimit.c:308,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:308,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:308,5'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:312,7'
          Dst:             pr_rlimit_get_memory
        - Src:             'mod_rlimit.c:313,7'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:315,16'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:315,7'
          Dst:             strerror
        - Src:             'mod_rlimit.c:314,5'
          Dst:             pr_log_pri
        - Src:             'mod_rlimit.c:321,7'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:322,7'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:324,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:325,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:329,11'
          Dst:             get_num_bytes
        - Src:             'mod_rlimit.c:330,9'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:330,9'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:336,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:337,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:341,13'
          Dst:             get_num_bytes
        - Src:             'mod_rlimit.c:342,11'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:342,11'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:351,9'
          Dst:             add_config_param
        - Src:             'mod_rlimit.c:352,18'
          Dst:             pstrdup
        - Src:             'mod_rlimit.c:353,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:355,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:362,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:363,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:367,11'
          Dst:             get_num_bytes
        - Src:             'mod_rlimit.c:368,9'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:368,9'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:374,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:375,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:379,13'
          Dst:             get_num_bytes
        - Src:             'mod_rlimit.c:380,11'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:380,11'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:389,9'
          Dst:             add_config_param
        - Src:             'mod_rlimit.c:390,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:392,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:396,7'
          Dst:             pr_module_exists
        - Src:             'mod_rlimit.c:403,10'
          Dst:             mod_create_ret
    - functionName:    set_rlimitcpu
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         80
      ICount:          615
      EdgeCount:       108
      CyclomaticComplexity: 30
      functionsReached:
        - __errno_location
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - palloc
        - pr_log_pri
        - pr_module_exists
        - pr_rlimit_get_cpu
        - pstrcat
        - pstrdup
        - strcasecmp
        - strerror
        - strtol
        - strtoul
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_rlimit.c:148,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:148,5'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:158,7'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:159,5'
          Dst:             check_context
        - Src:             'mod_rlimit.c:159,5'
          Dst:             get_context_name
        - Src:             'mod_rlimit.c:159,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:159,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:159,5'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:162,5'
          Dst:             check_context
        - Src:             'mod_rlimit.c:162,5'
          Dst:             get_context_name
        - Src:             'mod_rlimit.c:162,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:162,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:162,5'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:165,7'
          Dst:             pr_rlimit_get_cpu
        - Src:             'mod_rlimit.c:166,7'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:168,16'
          Dst:             __errno_location
        - Src:             'mod_rlimit.c:168,7'
          Dst:             strerror
        - Src:             'mod_rlimit.c:167,5'
          Dst:             pr_log_pri
        - Src:             'mod_rlimit.c:174,7'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:175,7'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:177,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:178,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:184,27'
          Dst:             strtoul
        - Src:             'mod_rlimit.c:187,9'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:187,9'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:195,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:196,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:202,29'
          Dst:             strtoul
        - Src:             'mod_rlimit.c:205,11'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:205,11'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:216,9'
          Dst:             add_config_param
        - Src:             'mod_rlimit.c:217,18'
          Dst:             pstrdup
        - Src:             'mod_rlimit.c:218,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:220,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:226,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:227,9'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:233,18'
          Dst:             strtol
        - Src:             'mod_rlimit.c:236,9'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:236,9'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:244,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:245,11'
          Dst:             strcasecmp
        - Src:             'mod_rlimit.c:251,20'
          Dst:             strtol
        - Src:             'mod_rlimit.c:254,11'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:254,11'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:265,9'
          Dst:             add_config_param
        - Src:             'mod_rlimit.c:266,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:268,18'
          Dst:             palloc
        - Src:             'mod_rlimit.c:272,7'
          Dst:             pr_module_exists
        - Src:             'mod_rlimit.c:279,10'
          Dst:             mod_create_ret
    - functionName:    set_rlimitchroot
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          149
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - palloc
        - pr_module_exists
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_rlimit.c:117,3'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:117,3'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:118,3'
          Dst:             check_context
        - Src:             'mod_rlimit.c:118,3'
          Dst:             get_context_name
        - Src:             'mod_rlimit.c:118,3'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:118,3'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:118,3'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:120,15'
          Dst:             get_boolean
        - Src:             'mod_rlimit.c:122,5'
          Dst:             pstrcat
        - Src:             'mod_rlimit.c:122,5'
          Dst:             mod_create_ret
        - Src:             'mod_rlimit.c:125,7'
          Dst:             add_config_param
        - Src:             'mod_rlimit.c:126,16'
          Dst:             palloc
        - Src:             'mod_rlimit.c:129,7'
          Dst:             pr_module_exists
        - Src:             'mod_rlimit.c:136,10'
          Dst:             mod_create_ret
    - functionName:    rlimit_sess_init
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 838
      functionLinenumberEnd: 859
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - find_config
        - pr_event_register
        - rlimit_chroot_ev
        - rlimit_set_cpu
        - rlimit_set_files
        - rlimit_set_memory
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_rlimit.c:842,3'
          Dst:             rlimit_set_cpu
        - Src:             'mod_rlimit.c:843,3'
          Dst:             rlimit_set_memory
        - Src:             'mod_rlimit.c:844,3'
          Dst:             rlimit_set_files
        - Src:             'mod_rlimit.c:846,7'
          Dst:             find_config
        - Src:             'mod_rlimit.c:856,5'
          Dst:             pr_event_register
        - Src:             'mod_rlimit.c:856,5'
          Dst:             rlimit_chroot_ev
    - functionName:    rlimit_init
      functionSourceFile: '/src/proftpd/modules/mod_rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 831
      functionLinenumberEnd: 835
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_event_register
        - rlimit_postparse_ev
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_rlimit.c:832,3'
          Dst:             pr_event_register
        - Src:             'mod_rlimit.c:832,3'
          Dst:             rlimit_postparse_ev
    - functionName:    file_size_cmp
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1013
      functionLinenumberEnd: 1024
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    file_size_reverse_cmp
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1027
      functionLinenumberEnd: 1028
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - file_size_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:1028,11'
          Dst:             file_size_cmp
    - functionName:    file_time_cmp
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 994
      functionLinenumberEnd: 1005
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    file_time_reverse_cmp
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1008
      functionLinenumberEnd: 1009
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - file_time_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:1009,11'
          Dst:             file_time_cmp
    - functionName:    sortfiles
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1031
      functionLinenumberEnd: 1078
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          185
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - addfile
        - qsort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:1041,7'
          Dst:             qsort
        - Src:             'mod_ls.c:1048,9'
          Dst:             addfile
        - Src:             'mod_ls.c:1061,7'
          Dst:             qsort
        - Src:             'mod_ls.c:1068,9'
          Dst:             addfile
    - functionName:    addfile
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 933
      functionLinenumberEnd: 991
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          184
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - make_array
        - make_sub_pool
        - pcalloc
        - pr_pool_tag
        - pr_snprintf
        - pstrdup
        - push_array
        - sendline
        - strlen
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:948,12'
          Dst:             sendline
        - Src:             'mod_ls.c:953,13'
          Dst:             make_sub_pool
        - Src:             'mod_ls.c:954,5'
          Dst:             pr_pool_tag
        - Src:             'mod_ls.c:961,18'
          Dst:             make_array
        - Src:             'mod_ls.c:964,34'
          Dst:             push_array
        - Src:             'mod_ls.c:967,15'
          Dst:             pstrdup
        - Src:             'mod_ls.c:968,17'
          Dst:             pstrdup
        - Src:             'mod_ls.c:973,7'
          Dst:             strlen
        - Src:             'mod_ls.c:973,22'
          Dst:             strlen
        - Src:             'mod_ls.c:978,27'
          Dst:             pcalloc
        - Src:             'mod_ls.c:979,13'
          Dst:             pcalloc
        - Src:             'mod_ls.c:980,3'
          Dst:             pr_snprintf
    - functionName:    sendline
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          293
      EdgeCount:       55
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - pcalloc
        - pr_config_get_server_xfer_bufsz
        - pr_data_xfer
        - pr_log_debug
        - pr_trace_msg
        - pr_vsnprintf
        - sstrcat
        - strerror
        - strlen
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:335,17'
          Dst:             pr_config_get_server_xfer_bufsz
        - Src:             'mod_ls.c:336,29'
          Dst:             pcalloc
        - Src:             'mod_ls.c:337,5'
          Dst:             pr_trace_msg
        - Src:             'mod_ls.c:342,44'
          Dst:             strlen
        - Src:             'mod_ls.c:358,13'
          Dst:             pr_data_xfer
        - Src:             'mod_ls.c:360,11'
          Dst:             __errno_location
        - Src:             'mod_ls.c:361,22'
          Dst:             __errno_location
        - Src:             'mod_ls.c:369,11'
          Dst:             strerror
        - Src:             'mod_ls.c:368,9'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:379,7'
          Dst:             pr_trace_msg
        - Src:             'mod_ls.c:388,3'
          Dst:             pr_vsnprintf
        - Src:             'mod_ls.c:394,42'
          Dst:             strlen
        - Src:             'mod_ls.c:396,12'
          Dst:             strlen
        - Src:             'mod_ls.c:404,11'
          Dst:             pr_data_xfer
        - Src:             'mod_ls.c:406,9'
          Dst:             __errno_location
        - Src:             'mod_ls.c:407,20'
          Dst:             __errno_location
        - Src:             'mod_ls.c:415,9'
          Dst:             strerror
        - Src:             'mod_ls.c:414,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:422,5'
          Dst:             pr_trace_msg
        - Src:             'mod_ls.c:427,3'
          Dst:             sstrcat
    - functionName:    ls_fmt_filesize
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 460
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          74
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - pr_snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:446,5'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:458,5'
          Dst:             pr_snprintf
    - functionName:    is_safe_symlink
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          217
      EdgeCount:       55
      CyclomaticComplexity: 17
      functionsReached:
        - pdircat
        - pr_fs_clean_path
        - pr_fs_getcwd
        - strlen
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:193,28'
          Dst:             pr_fs_getcwd
        - Src:             'mod_ls.c:193,17'
          Dst:             pdircat
        - Src:             'mod_ls.c:196,5'
          Dst:             pr_fs_clean_path
        - Src:             'mod_ls.c:197,14'
          Dst:             strlen
        - Src:             'mod_ls.c:203,17'
          Dst:             pr_fs_getcwd
        - Src:             'mod_ls.c:203,9'
          Dst:             strncmp
    - functionName:    discard_output
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1210
      functionLinenumberEnd: 1219
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - destroy_pool
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:1212,5'
          Dst:             destroy_pool
    - functionName:    listdir
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1332
      functionLinenumberEnd: 1567
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         145
      ICount:          774
      EdgeCount:       197
      CyclomaticComplexity: 54
      functionsReached:
        - __errno_location
        - destroy_pool
        - is_dotdir
        - listdir
        - listfile
        - ls_perms_full
        - make_sub_pool
        - outputfiles
        - pdircat
        - pop_cwd
        - pr_fs_encode_path
        - pr_fsio_chdir_canon
        - pr_log_debug
        - pr_pool_tag
        - pr_response_add
        - pr_signals_handle
        - pr_trace_msg
        - push_cwd
        - sendline
        - sreaddir
        - strcmp
        - strerror
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:1342,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:1354,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:1367,13'
          Dst:             make_sub_pool
        - Src:             'mod_ls.c:1368,5'
          Dst:             pr_pool_tag
        - Src:             'mod_ls.c:1372,13'
          Dst:             make_sub_pool
        - Src:             'mod_ls.c:1373,5'
          Dst:             pr_pool_tag
        - Src:             'mod_ls.c:1377,3'
          Dst:             sreaddir
        - Src:             'mod_ls.c:1386,7'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1389,34'
          Dst:             is_dotdir
        - Src:             'mod_ls.c:1393,15'
          Dst:             listfile
        - Src:             'mod_ls.c:1397,13'
          Dst:             listfile
        - Src:             'mod_ls.c:1417,9'
          Dst:             outputfiles
        - Src:             'mod_ls.c:1419,9'
          Dst:             destroy_pool
        - Src:             'mod_ls.c:1427,9'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1440,18'
          Dst:             strcmp
        - Src:             'mod_ls.c:1440,42'
          Dst:             strcmp
        - Src:             'mod_ls.c:1448,7'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1454,11'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:1466,11'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:1474,7'
          Dst:             push_cwd
        - Src:             'mod_ls.c:1476,17'
          Dst:             ls_perms_full
        - Src:             'mod_ls.c:1477,12'
          Dst:             pr_fsio_chdir_canon
        - Src:             'mod_ls.c:1481,13'
          Dst:             strcmp
        - Src:             'mod_ls.c:1485,20'
          Dst:             pdircat
        - Src:             'mod_ls.c:1489,11'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:1491,13'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:1490,11'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:1494,20'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:1493,20'
          Dst:             sendline
        - Src:             'mod_ls.c:1495,13'
          Dst:             sendline
        - Src:             'mod_ls.c:1496,11'
          Dst:             pop_cwd
        - Src:             'mod_ls.c:1499,13'
          Dst:             destroy_pool
        - Src:             'mod_ls.c:1507,13'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1516,15'
          Dst:             listdir
        - Src:             'mod_ls.c:1518,9'
          Dst:             pop_cwd
        - Src:             'mod_ls.c:1526,13'
          Dst:             destroy_pool
        - Src:             'mod_ls.c:1534,13'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1547,47'
          Dst:             __errno_location
        - Src:             'mod_ls.c:1547,38'
          Dst:             strerror
        - Src:             'mod_ls.c:1546,5'
          Dst:             pr_trace_msg
        - Src:             'mod_ls.c:1551,5'
          Dst:             destroy_pool
        - Src:             'mod_ls.c:1560,7'
          Dst:             pr_signals_handle
    - functionName:    sreaddir
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1229
      functionLinenumberEnd: 1328
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          215
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - calloc
        - dircmp
        - exit
        - pr_fs_clear_cache2
        - pr_fsio_closedir
        - pr_fsio_opendir
        - pr_fsio_readdir
        - pr_fsio_stat
        - pr_log_debug
        - pr_log_pri
        - pr_signals_handle
        - pr_trace_msg
        - qsort
        - realloc
        - sstrncpy
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:1237,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_ls.c:1238,7'
          Dst:             pr_fsio_stat
        - Src:             'mod_ls.c:1243,5'
          Dst:             __errno_location
        - Src:             'mod_ls.c:1247,7'
          Dst:             pr_fsio_opendir
        - Src:             'mod_ls.c:1271,3'
          Dst:             pr_trace_msg
        - Src:             'mod_ls.c:1276,5'
          Dst:             pr_log_pri
        - Src:             'mod_ls.c:1277,5'
          Dst:             exit
        - Src:             'mod_ls.c:1282,16'
          Dst:             pr_fsio_readdir
        - Src:             'mod_ls.c:1283,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1292,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:1296,7'
          Dst:             pr_trace_msg
        - Src:             'mod_ls.c:1299,24'
          Dst:             realloc
        - Src:             'mod_ls.c:1301,9'
          Dst:             pr_log_pri
        - Src:             'mod_ls.c:1302,9'
          Dst:             exit
        - Src:             'mod_ls.c:1309,28'
          Dst:             strlen
        - Src:             'mod_ls.c:1309,21'
          Dst:             calloc
        - Src:             'mod_ls.c:1311,7'
          Dst:             pr_log_pri
        - Src:             'mod_ls.c:1312,7'
          Dst:             exit
        - Src:             'mod_ls.c:1314,34'
          Dst:             strlen
        - Src:             'mod_ls.c:1314,5'
          Dst:             sstrncpy
        - Src:             'mod_ls.c:1317,3'
          Dst:             pr_fsio_closedir
        - Src:             'mod_ls.c:1324,5'
          Dst:             qsort
        - Src:             'mod_ls.c:1324,5'
          Dst:             dircmp
    - functionName:    listfile
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 908
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         231
      ICount:          1468
      EdgeCount:       306
      CyclomaticComplexity: 77
      functionsReached:
        - __ctype_b_loc
        - addfile
        - dir_readlink
        - is_dotdir
        - is_safe_symlink
        - ls_fmt_filesize
        - ls_perms
        - ls_perms_full
        - pcalloc
        - pr_auth_gid2name
        - pr_auth_uid2name
        - pr_fs_clear_cache2
        - pr_fs_encode_path
        - pr_fsio_lstat
        - pr_fsio_readlink
        - pr_fsio_stat
        - pr_gmtime
        - pr_localtime
        - pr_log_debug
        - pr_log_pri
        - pr_response_add
        - pr_snprintf
        - pstrdup
        - pstrndup
        - sstrncpy
        - strftime
        - strlen
        - strrchr
      functionUses:    4
      BranchProfiles:
        - Branch String:   'mod_ls.c:682,5'
          Branch Sides:    []
        - Branch String:   'mod_ls.c:750,7'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_ls.c:483,13'
          Dst:             strlen
        - Src:             'mod_ls.c:492,14'
          Dst:             pstrndup
        - Src:             'mod_ls.c:494,9'
          Dst:             strrchr
        - Src:             'mod_ls.c:504,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:517,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_ls.c:518,7'
          Dst:             pr_fsio_lstat
        - Src:             'mod_ls.c:523,20'
          Dst:             pstrdup
        - Src:             'mod_ls.c:531,25'
          Dst:             strlen
        - Src:             'mod_ls.c:537,24'
          Dst:             pcalloc
        - Src:             'mod_ls.c:543,14'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:549,25'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:561,22'
          Dst:             pstrdup
        - Src:             'mod_ls.c:570,11'
          Dst:             pr_fsio_stat
        - Src:             'mod_ls.c:576,14'
          Dst:             ls_perms_full
        - Src:             'mod_ls.c:585,17'
          Dst:             dir_readlink
        - Src:             'mod_ls.c:589,17'
          Dst:             pr_fsio_readlink
        - Src:             'mod_ls.c:603,13'
          Dst:             is_safe_symlink
        - Src:             'mod_ls.c:607,14'
          Dst:             ls_perms_full
        - Src:             'mod_ls.c:619,12'
          Dst:             ls_perms
        - Src:             'mod_ls.c:628,15'
          Dst:             dir_readlink
        - Src:             'mod_ls.c:632,15'
          Dst:             pr_fsio_readlink
        - Src:             'mod_ls.c:646,11'
          Dst:             is_safe_symlink
        - Src:             'mod_ls.c:650,12'
          Dst:             ls_perms_full
        - Src:             'mod_ls.c:654,17'
          Dst:             ls_perms
        - Src:             'mod_ls.c:662,32'
          Dst:             is_dotdir
        - Src:             'mod_ls.c:665,9'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:670,9'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:701,11'
          Dst:             pr_gmtime
        - Src:             'mod_ls.c:704,11'
          Dst:             pr_localtime
        - Src:             'mod_ls.c:712,7'
          Dst:             strftime
        - Src:             'mod_ls.c:718,9'
          Dst:             sstrncpy
        - Src:             'mod_ls.c:721,9'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:727,9'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:731,7'
          Dst:             addfile
        - Src:             'mod_ls.c:749,7'
          Dst:             sstrncpy
        - Src:             'mod_ls.c:823,11'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:826,11'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:830,9'
          Dst:             ls_fmt_filesize
        - Src:             'mod_ls.c:835,13'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:834,11'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:842,15'
          Dst:             pr_auth_uid2name
        - Src:             'mod_ls.c:842,35'
          Dst:             pr_auth_gid2name
        - Src:             'mod_ls.c:844,15'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:840,13'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:852,15'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:848,13'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:859,34'
          Dst:             strlen
        - Src:             'mod_ls.c:863,17'
          Dst:             pr_fsio_stat
        - Src:             'mod_ls.c:877,36'
          Dst:             strlen
        - Src:             'mod_ls.c:878,51'
          Dst:             strlen
        - Src:             'mod_ls.c:878,15'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:881,15'
          Dst:             pr_log_pri
        - Src:             'mod_ls.c:890,11'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:893,11'
          Dst:             addfile
        - Src:             'mod_ls.c:901,22'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:901,9'
          Dst:             addfile
    - functionName:    outputfiles
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1080
      functionLinenumberEnd: 1208
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         75
      ICount:          413
      EdgeCount:       100
      CyclomaticComplexity: 27
      functionsReached:
        - destroy_pool
        - pr_signals_handle
        - sendline
        - sortfiles
        - sstrncpy
        - strlen
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:1085,5'
          Dst:             sortfiles
        - Src:             'mod_ls.c:1090,9'
          Dst:             sendline
        - Src:             'mod_ls.c:1094,5'
          Dst:             destroy_pool
        - Src:             'mod_ls.c:1124,7'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1135,7'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1144,7'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1152,7'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1163,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1170,7'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1173,9'
          Dst:             sstrncpy
        - Src:             'mod_ls.c:1178,9'
          Dst:             sstrncpy
        - Src:             'mod_ls.c:1180,31'
          Dst:             strlen
        - Src:             'mod_ls.c:1188,11'
          Dst:             sendline
        - Src:             'mod_ls.c:1196,7'
          Dst:             sendline
        - Src:             'mod_ls.c:1200,3'
          Dst:             destroy_pool
    - functionName:    push_cwd
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_fs_getcwd
        - sstrncpy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:216,18'
          Dst:             pr_fs_getcwd
        - Src:             'mod_ls.c:216,3'
          Dst:             sstrncpy
    - functionName:    ls_perms_full
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          176
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - dir_canonical_path
        - dir_check
        - dir_check_canon
        - dir_realpath
        - get_param_ptr
        - pstrdup
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:235,14'
          Dst:             dir_realpath
        - Src:             'mod_ls.c:237,16'
          Dst:             dir_canonical_path
        - Src:             'mod_ls.c:242,16'
          Dst:             pstrdup
        - Src:             'mod_ls.c:246,11'
          Dst:             dir_check_canon
        - Src:             'mod_ls.c:249,11'
          Dst:             dir_check
        - Src:             'mod_ls.c:255,11'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:261,15'
          Dst:             get_param_ptr
    - functionName:    pop_cwd
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_fsio_chdir
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:226,3'
          Dst:             pr_fsio_chdir
    - functionName:    ls_perms
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 316
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          173
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - dir_check
        - get_param_ptr
        - is_dotdir
        - ls_perms_full
        - pdircat
        - pr_fs_clean_path
        - pr_fs_getcwd
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:279,7'
          Dst:             is_dotdir
        - Src:             'mod_ls.c:284,12'
          Dst:             ls_perms_full
        - Src:             'mod_ls.c:288,33'
          Dst:             pr_fs_getcwd
        - Src:             'mod_ls.c:288,22'
          Dst:             pdircat
        - Src:             'mod_ls.c:288,5'
          Dst:             pr_fs_clean_path
        - Src:             'mod_ls.c:292,5'
          Dst:             pr_fs_clean_path
        - Src:             'mod_ls.c:295,9'
          Dst:             dir_check
        - Src:             'mod_ls.c:300,11'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:306,15'
          Dst:             get_param_ptr
    - functionName:    dircmp
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1221
      functionLinenumberEnd: 1225
      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:             'mod_ls.c:1225,10'
          Dst:             strcmp
    - functionName:    ls_terminate
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1569
      functionLinenumberEnd: 1589
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         21
      ICount:          86
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - discard_output
        - pr_data_abort
        - pr_response_add
        - strerror
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:1571,5'
          Dst:             discard_output
        - Src:             'mod_ls.c:1576,9'
          Dst:             pr_data_abort
        - Src:             'mod_ls.c:1580,60'
          Dst:             __errno_location
        - Src:             'mod_ls.c:1579,9'
          Dst:             pr_data_abort
        - Src:             'mod_ls.c:1586,44'
          Dst:             strerror
        - Src:             'mod_ls.c:1586,5'
          Dst:             pr_response_add
    - functionName:    dolist
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1893
      functionLinenumberEnd: 2293
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         258
      ICount:          1408
      EdgeCount:       352
      CyclomaticComplexity: 96
      functionsReached:
        - __ctype_b_loc
        - __errno_location
        - discard_output
        - have_options
        - listdir
        - listfile
        - ls_perms_full
        - ls_terminate
        - outputfiles
        - parse_list_opts
        - pcalloc
        - pop_cwd
        - pr_auth_getpwnam
        - pr_cmd_set_errno
        - pr_data_open
        - pr_fs_clear_cache2
        - pr_fs_encode_path
        - pr_fs_glob
        - pr_fs_globfree
        - pr_fsio_chdir_canon
        - pr_fsio_lstat
        - pr_fsio_stat
        - pr_log_debug
        - pr_response_add
        - pr_response_add_err
        - pr_signals_handle
        - pr_snprintf
        - pr_str_is_fnmatch
        - pstrdup
        - push_cwd
        - sendline
        - strcmp
        - strerror
        - symlink_mode2
        - time
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:1899,16'
          Dst:             time
        - Src:             'mod_ls.c:1906,7'
          Dst:             have_options
        - Src:             'mod_ls.c:1908,7'
          Dst:             parse_list_opts
        - Src:             'mod_ls.c:1921,14'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:1922,9'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1933,33'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:1940,16'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:1941,11'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1965,5'
          Dst:             parse_list_opts
        - Src:             'mod_ls.c:1991,12'
          Dst:             pr_auth_getpwnam
        - Src:             'mod_ls.c:1993,9'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:2004,11'
          Dst:             pr_data_open
        - Src:             'mod_ls.c:2005,22'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2007,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:2008,9'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2018,9'
          Dst:             pr_str_is_fnmatch
        - Src:             'mod_ls.c:2021,7'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_ls.c:2022,11'
          Dst:             pr_fsio_stat
        - Src:             'mod_ls.c:2023,22'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2030,44'
          Dst:             strerror
        - Src:             'mod_ls.c:2029,9'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2032,11'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2032,53'
          Dst:             strerror
        - Src:             'mod_ls.c:2031,9'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:2034,9'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2040,10'
          Dst:             ls_perms_full
        - Src:             'mod_ls.c:2048,11'
          Dst:             pr_str_is_fnmatch
        - Src:             'mod_ls.c:2049,13'
          Dst:             pr_fs_glob
        - Src:             'mod_ls.c:2051,11'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2057,13'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2064,36'
          Dst:             pcalloc
        - Src:             'mod_ls.c:2065,38'
          Dst:             pstrdup
        - Src:             'mod_ls.c:2073,32'
          Dst:             pcalloc
        - Src:             'mod_ls.c:2074,34'
          Dst:             pstrdup
        - Src:             'mod_ls.c:2092,9'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:2094,9'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_ls.c:2095,13'
          Dst:             pr_fsio_lstat
        - Src:             'mod_ls.c:2100,24'
          Dst:             symlink_mode2
        - Src:             'mod_ls.c:2117,50'
          Dst:             strcmp
        - Src:             'mod_ls.c:2119,17'
          Dst:             listfile
        - Src:             'mod_ls.c:2120,15'
          Dst:             ls_terminate
        - Src:             'mod_ls.c:2123,17'
          Dst:             pr_fs_globfree
        - Src:             'mod_ls.c:2138,11'
          Dst:             outputfiles
        - Src:             'mod_ls.c:2139,9'
          Dst:             ls_terminate
        - Src:             'mod_ls.c:2142,11'
          Dst:             pr_fs_globfree
        - Src:             'mod_ls.c:2155,9'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:2158,13'
          Dst:             ls_perms_full
        - Src:             'mod_ls.c:2164,15'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2166,17'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2165,15'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2170,17'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2169,15'
          Dst:             sendline
        - Src:             'mod_ls.c:2171,15'
          Dst:             sendline
        - Src:             'mod_ls.c:2176,11'
          Dst:             push_cwd
        - Src:             'mod_ls.c:2178,15'
          Dst:             pr_fsio_chdir_canon
        - Src:             'mod_ls.c:2182,19'
          Dst:             listdir
        - Src:             'mod_ls.c:2185,13'
          Dst:             pop_cwd
        - Src:             'mod_ls.c:2192,15'
          Dst:             ls_terminate
        - Src:             'mod_ls.c:2195,17'
          Dst:             pr_fs_globfree
        - Src:             'mod_ls.c:2201,13'
          Dst:             pop_cwd
        - Src:             'mod_ls.c:2206,11'
          Dst:             discard_output
        - Src:             'mod_ls.c:2209,13'
          Dst:             pr_fs_globfree
        - Src:             'mod_ls.c:2217,11'
          Dst:             outputfiles
        - Src:             'mod_ls.c:2218,9'
          Dst:             ls_terminate
        - Src:             'mod_ls.c:2221,11'
          Dst:             pr_fs_globfree
        - Src:             'mod_ls.c:2229,11'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2228,9'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2233,11'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2232,9'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2237,11'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2236,9'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2244,7'
          Dst:             pr_fs_globfree
        - Src:             'mod_ls.c:2248,7'
          Dst:             discard_output
        - Src:             'mod_ls.c:2256,11'
          Dst:             pr_data_open
        - Src:             'mod_ls.c:2257,22'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2259,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:2260,9'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2267,9'
          Dst:             ls_perms_full
        - Src:             'mod_ls.c:2270,13'
          Dst:             listfile
        - Src:             'mod_ls.c:2271,11'
          Dst:             ls_terminate
        - Src:             'mod_ls.c:2277,13'
          Dst:             listdir
        - Src:             'mod_ls.c:2278,11'
          Dst:             ls_terminate
        - Src:             'mod_ls.c:2286,9'
          Dst:             outputfiles
        - Src:             'mod_ls.c:2287,7'
          Dst:             ls_terminate
    - functionName:    have_options
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1861
      functionLinenumberEnd: 1887
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - pr_fs_clear_cache2
        - pr_fsio_stat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:1879,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_ls.c:1880,9'
          Dst:             pr_fsio_stat
    - functionName:    parse_list_opts
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1591
      functionLinenumberEnd: 1849
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         144
      ICount:          736
      EdgeCount:       176
      CyclomaticComplexity: 34
      functionsReached:
        - __ctype_b_loc
        - pr_signals_handle
      functionUses:    4
      BranchProfiles:
        - Branch String:   'mod_ls.c:1614,7'
          Branch Sides:    []
        - Branch String:   'mod_ls.c:1743,7'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_ls.c:1599,10'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:1600,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1611,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1613,24'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:1714,12'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:1715,7'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1740,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:1742,24'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:1830,12'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:1831,7'
          Dst:             pr_signals_handle
    - functionName:    genericlist
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2606
      functionLinenumberEnd: 2718
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         91
      ICount:          522
      EdgeCount:       121
      CyclomaticComplexity: 32
      functionsReached:
        - __errno_location
        - dolist
        - find_config
        - find_config_next
        - get_param_ptr
        - ls_done
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_data_abort
        - pr_fs_decode_path2
        - pr_log_debug
        - pr_response_add_err
        - pr_signals_handle
        - strcmp
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:2613,9'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2621,7'
          Dst:             find_config
        - Src:             'mod_ls.c:2625,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:2633,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2635,11'
          Dst:             find_config_next
        - Src:             'mod_ls.c:2660,14'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2664,7'
          Dst:             strcmp
        - Src:             'mod_ls.c:2668,15'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2672,7'
          Dst:             strcmp
        - Src:             'mod_ls.c:2676,15'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2685,9'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2690,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_ls.c:2693,18'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2696,7'
          Dst:             strerror
        - Src:             'mod_ls.c:2695,5'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2697,5'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:2700,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:2701,5'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2702,12'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:2705,9'
          Dst:             dolist
        - Src:             'mod_ls.c:2708,5'
          Dst:             pr_data_abort
        - Src:             'mod_ls.c:2712,5'
          Dst:             ls_done
        - Src:             'mod_ls.c:2717,23'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:2717,39'
          Dst:             mod_create_ret
    - functionName:    ls_done
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 440
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pr_data_close2
        - pr_response_add
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:434,3'
          Dst:             pr_data_close2
        - Src:             'mod_ls.c:438,5'
          Dst:             pr_response_add
    - functionName:    find_ls_limit
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          181
      EdgeCount:       46
      CyclomaticComplexity: 13
      functionsReached:
        - pr_signals_handle
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:141,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:154,17'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:155,17'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:156,17'
          Dst:             strcasecmp
    - functionName:    nlstfile
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2299
      functionLinenumberEnd: 2385
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          274
      EdgeCount:       51
      CyclomaticComplexity: 14
      functionsReached:
        - __ctype_b_loc
        - __errno_location
        - dir_hide_file
        - pcalloc
        - pr_fs_encode_path
        - pr_snprintf
        - pstrdup
        - sendline
        - strlen
        - strrchr
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:2305,5'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2313,7'
          Dst:             dir_hide_file
        - Src:             'mod_ls.c:2317,18'
          Dst:             pstrdup
        - Src:             'mod_ls.c:2325,23'
          Dst:             strlen
        - Src:             'mod_ls.c:2331,22'
          Dst:             pcalloc
        - Src:             'mod_ls.c:2337,12'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:2343,23'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:2355,20'
          Dst:             pstrdup
        - Src:             'mod_ls.c:2366,11'
          Dst:             strrchr
        - Src:             'mod_ls.c:2370,25'
          Dst:             strlen
        - Src:             'mod_ls.c:2379,31'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2379,9'
          Dst:             sendline
    - functionName:    nlstdir
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2391
      functionLinenumberEnd: 2603
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         129
      ICount:          683
      EdgeCount:       176
      CyclomaticComplexity: 49
      functionsReached:
        - __errno_location
        - destroy_pool
        - dir_best_path
        - dir_readlink
        - file_mode2
        - find_ls_limit
        - get_param_ptr
        - is_dotdir
        - ls_perms
        - make_sub_pool
        - pdircat
        - pop_cwd
        - pr_fs_encode_path
        - pr_fsio_chdir_canon
        - pr_fsio_readlink
        - pr_log_debug
        - pr_pool_tag
        - pr_signals_handle
        - pr_trace_msg
        - push_cwd
        - sendline
        - sreaddir
        - strcmp
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:2407,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2419,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2427,11'
          Dst:             make_sub_pool
        - Src:             'mod_ls.c:2428,3'
          Dst:             pr_pool_tag
        - Src:             'mod_ls.c:2430,44'
          Dst:             strcmp
        - Src:             'mod_ls.c:2440,5'
          Dst:             push_cwd
        - Src:             'mod_ls.c:2442,9'
          Dst:             pr_fsio_chdir_canon
        - Src:             'mod_ls.c:2443,7'
          Dst:             pop_cwd
        - Src:             'mod_ls.c:2445,7'
          Dst:             destroy_pool
        - Src:             'mod_ls.c:2454,3'
          Dst:             sreaddir
        - Src:             'mod_ls.c:2457,47'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2457,38'
          Dst:             strerror
        - Src:             'mod_ls.c:2456,5'
          Dst:             pr_trace_msg
        - Src:             'mod_ls.c:2460,7'
          Dst:             pop_cwd
        - Src:             'mod_ls.c:2463,5'
          Dst:             destroy_pool
        - Src:             'mod_ls.c:2470,7'
          Dst:             find_ls_limit
        - Src:             'mod_ls.c:2472,29'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2484,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:2487,32'
          Dst:             is_dotdir
        - Src:             'mod_ls.c:2498,11'
          Dst:             dir_readlink
        - Src:             'mod_ls.c:2502,11'
          Dst:             pr_fsio_readlink
        - Src:             'mod_ls.c:2517,30'
          Dst:             dir_best_path
        - Src:             'mod_ls.c:2517,9'
          Dst:             ls_perms
        - Src:             'mod_ls.c:2522,14'
          Dst:             file_mode2
        - Src:             'mod_ls.c:2532,17'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2536,13'
          Dst:             pdircat
        - Src:             'mod_ls.c:2535,17'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2539,13'
          Dst:             sendline
        - Src:             'mod_ls.c:2550,15'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2561,35'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2561,13'
          Dst:             sendline
        - Src:             'mod_ls.c:2572,15'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2585,3'
          Dst:             sendline
        - Src:             'mod_ls.c:2588,5'
          Dst:             pop_cwd
        - Src:             'mod_ls.c:2590,3'
          Dst:             destroy_pool
        - Src:             'mod_ls.c:2597,5'
          Dst:             pr_signals_handle
    - functionName:    ls_err_nlst
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2725
      functionLinenumberEnd: 2727
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_data_cleanup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:2726,3'
          Dst:             pr_data_cleanup
    - functionName:    ls_log_nlst
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2720
      functionLinenumberEnd: 2722
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_data_cleanup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:2721,3'
          Dst:             pr_data_cleanup
    - functionName:    ls_post_pass
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3444
      functionLinenumberEnd: 3460
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          115
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - find_config
        - get_param_ptr
        - pr_log_debug
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:3448,14'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:3451,5'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:3455,7'
          Dst:             find_config
    - functionName:    ls_stat
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2730
      functionLinenumberEnd: 2945
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         139
      ICount:          891
      EdgeCount:       187
      CyclomaticComplexity: 50
      functionsReached:
        - __ctype_b_loc
        - __errno_location
        - dir_check
        - dolist
        - find_config
        - find_config_next
        - get_param_ptr
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_fs_clear_cache2
        - pr_fs_decode_path2
        - pr_fs_encode_path
        - pr_fsio_lstat
        - pr_fsio_stat
        - pr_log_debug
        - pr_netaddr_get_ipstr
        - pr_response_add
        - pr_response_add_err
        - pr_signals_handle
        - strcmp
        - strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:2741,10'
          Dst:             dir_check
        - Src:             'mod_ls.c:2745,9'
          Dst:             strerror
        - Src:             'mod_ls.c:2744,7'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:2747,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:2748,7'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2749,14'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:2752,5'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2754,7'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_ls.c:2753,5'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2755,5'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2756,5'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2760,7'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2770,9'
          Dst:             pr_netaddr_get_ipstr
        - Src:             'mod_ls.c:2767,7'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2773,9'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2779,9'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2785,7'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2788,5'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2789,12'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:2795,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_ls.c:2798,18'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2801,7'
          Dst:             strerror
        - Src:             'mod_ls.c:2800,5'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2802,5'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:2805,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:2806,5'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2807,12'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:2814,28'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:2819,25'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:2823,9'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2831,7'
          Dst:             find_config
        - Src:             'mod_ls.c:2835,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:2843,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2845,11'
          Dst:             find_config_next
        - Src:             'mod_ls.c:2850,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2852,11'
          Dst:             find_config_next
        - Src:             'mod_ls.c:2878,14'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2882,7'
          Dst:             strcmp
        - Src:             'mod_ls.c:2886,15'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2890,7'
          Dst:             strcmp
        - Src:             'mod_ls.c:2894,15'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2903,9'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2913,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_ls.c:2915,11'
          Dst:             pr_fsio_lstat
        - Src:             'mod_ls.c:2918,11'
          Dst:             pr_fsio_stat
        - Src:             'mod_ls.c:2922,18'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2925,42'
          Dst:             strerror
        - Src:             'mod_ls.c:2924,5'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2926,48'
          Dst:             strerror
        - Src:             'mod_ls.c:2926,5'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:2928,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:2929,5'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2930,12'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:2941,5'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:2940,3'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2942,9'
          Dst:             dolist
        - Src:             'mod_ls.c:2943,3'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:2944,23'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:2944,39'
          Dst:             mod_create_ret
    - functionName:    ls_list
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2947
      functionLinenumberEnd: 2953
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - genericlist
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:2953,10'
          Dst:             genericlist
    - functionName:    ls_nlst
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2959
      functionLinenumberEnd: 3439
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         226
      ICount:          1522
      EdgeCount:       307
      CyclomaticComplexity: 83
      functionsReached:
        - __ctype_b_loc
        - __errno_location
        - find_config
        - find_config_next
        - find_ls_limit
        - get_param_ptr
        - have_options
        - is_dotdir
        - ls_done
        - ls_perms
        - ls_perms_full
        - mod_create_ret
        - nlstdir
        - nlstfile
        - parse_list_opts
        - pcalloc
        - pr_auth_getpwnam
        - pr_cmd_set_errno
        - pr_data_abort
        - pr_data_open
        - pr_fs_clean_path
        - pr_fs_clean_path2
        - pr_fs_clear_cache2
        - pr_fs_decode_path2
        - pr_fs_encode_path
        - pr_fs_glob
        - pr_fs_globfree
        - pr_fsio_stat
        - pr_log_debug
        - pr_response_add
        - pr_response_add_err
        - pr_signals_handle
        - pr_snprintf
        - pr_str_is_fnmatch
        - pstrdup
        - sendline
        - sstrncpy
        - strcmp
        - strerror
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:2970,9'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:2975,18'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_ls.c:2978,18'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2981,7'
          Dst:             strerror
        - Src:             'mod_ls.c:2980,5'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:2982,5'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:2985,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:2986,5'
          Dst:             __errno_location
        - Src:             'mod_ls.c:2987,12'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:2992,7'
          Dst:             find_config
        - Src:             'mod_ls.c:2996,5'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:3004,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:3006,11'
          Dst:             find_config_next
        - Src:             'mod_ls.c:3036,7'
          Dst:             have_options
        - Src:             'mod_ls.c:3038,7'
          Dst:             parse_list_opts
        - Src:             'mod_ls.c:3051,14'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:3052,9'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:3063,36'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:3070,16'
          Dst:             __ctype_b_loc
        - Src:             'mod_ls.c:3071,11'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:3095,5'
          Dst:             parse_list_opts
        - Src:             'mod_ls.c:3102,14'
          Dst:             pstrdup
        - Src:             'mod_ls.c:3119,10'
          Dst:             pr_auth_getpwnam
        - Src:             'mod_ls.c:3121,7'
          Dst:             pr_snprintf
        - Src:             'mod_ls.c:3122,7'
          Dst:             sstrncpy
        - Src:             'mod_ls.c:3129,7'
          Dst:             pr_str_is_fnmatch
        - Src:             'mod_ls.c:3137,11'
          Dst:             pr_fs_glob
        - Src:             'mod_ls.c:3139,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:3147,9'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_ls.c:3148,13'
          Dst:             pr_fsio_stat
        - Src:             'mod_ls.c:3149,11'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:3155,34'
          Dst:             pcalloc
        - Src:             'mod_ls.c:3156,36'
          Dst:             pstrdup
        - Src:             'mod_ls.c:3161,17'
          Dst:             pr_data_open
        - Src:             'mod_ls.c:3162,28'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3164,15'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3165,15'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3166,22'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3170,13'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:3171,13'
          Dst:             ls_done
        - Src:             'mod_ls.c:3173,20'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3177,55'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3177,46'
          Dst:             strerror
        - Src:             'mod_ls.c:3176,11'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:3178,11'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:3180,11'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3181,11'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3182,18'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3187,15'
          Dst:             pr_data_open
        - Src:             'mod_ls.c:3188,26'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3190,13'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3191,13'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3192,20'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3196,11'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:3197,11'
          Dst:             ls_done
        - Src:             'mod_ls.c:3199,18'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3202,9'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:3204,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3205,9'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3206,16'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3210,9'
          Dst:             pr_data_open
        - Src:             'mod_ls.c:3211,20'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3213,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3214,7'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3215,14'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3225,7'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:3230,7'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_ls.c:3231,11'
          Dst:             pr_fsio_stat
        - Src:             'mod_ls.c:3236,19'
          Dst:             nlstdir
        - Src:             'mod_ls.c:3240,19'
          Dst:             nlstfile
        - Src:             'mod_ls.c:3244,13'
          Dst:             ls_perms
        - Src:             'mod_ls.c:3250,17'
          Dst:             nlstfile
        - Src:             'mod_ls.c:3255,5'
          Dst:             sendline
        - Src:             'mod_ls.c:3257,7'
          Dst:             pr_fs_globfree
        - Src:             'mod_ls.c:3267,17'
          Dst:             strlen
        - Src:             'mod_ls.c:3270,7'
          Dst:             pr_signals_handle
        - Src:             'mod_ls.c:3272,11'
          Dst:             strcmp
        - Src:             'mod_ls.c:3277,19'
          Dst:             strlen
        - Src:             'mod_ls.c:3280,10'
          Dst:             is_dotdir
        - Src:             'mod_ls.c:3283,9'
          Dst:             pr_fs_clean_path2
        - Src:             'mod_ls.c:3286,9'
          Dst:             pr_fs_clean_path
        - Src:             'mod_ls.c:3292,10'
          Dst:             ls_perms_full
        - Src:             'mod_ls.c:3293,20'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3297,13'
          Dst:             pr_data_open
        - Src:             'mod_ls.c:3298,20'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3300,11'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3301,11'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3302,18'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3305,9'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:3306,9'
          Dst:             ls_done
        - Src:             'mod_ls.c:3308,16'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3312,9'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:3312,56'
          Dst:             strerror
        - Src:             'mod_ls.c:3311,7'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:3314,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3315,7'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3316,14'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3321,11'
          Dst:             find_ls_limit
        - Src:             'mod_ls.c:3326,25'
          Dst:             get_param_ptr
        - Src:             'mod_ls.c:3331,17'
          Dst:             pr_data_open
        - Src:             'mod_ls.c:3332,24'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3334,15'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3335,15'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3336,22'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3339,13'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:3340,13'
          Dst:             ls_done
        - Src:             'mod_ls.c:3342,20'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3352,11'
          Dst:             pr_fs_encode_path
        - Src:             'mod_ls.c:3352,53'
          Dst:             strerror
        - Src:             'mod_ls.c:3351,9'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:3354,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3355,9'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3356,16'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3363,5'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_ls.c:3364,9'
          Dst:             pr_fsio_stat
        - Src:             'mod_ls.c:3365,20'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3369,13'
          Dst:             pr_data_open
        - Src:             'mod_ls.c:3370,20'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3372,11'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3373,11'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3374,18'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3377,9'
          Dst:             pr_response_add
        - Src:             'mod_ls.c:3378,9'
          Dst:             ls_done
        - Src:             'mod_ls.c:3380,16'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3384,44'
          Dst:             strerror
        - Src:             'mod_ls.c:3383,7'
          Dst:             pr_log_debug
        - Src:             'mod_ls.c:3385,54'
          Dst:             strerror
        - Src:             'mod_ls.c:3385,7'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:3387,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3388,7'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3389,14'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3393,11'
          Dst:             pr_data_open
        - Src:             'mod_ls.c:3394,22'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3396,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3397,9'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3398,16'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3402,13'
          Dst:             nlstfile
        - Src:             'mod_ls.c:3405,11'
          Dst:             pr_data_open
        - Src:             'mod_ls.c:3406,22'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3408,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3409,9'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3410,16'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3414,13'
          Dst:             nlstdir
        - Src:             'mod_ls.c:3417,7'
          Dst:             pr_response_add_err
        - Src:             'mod_ls.c:3419,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_ls.c:3420,7'
          Dst:             __errno_location
        - Src:             'mod_ls.c:3421,14'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3424,5'
          Dst:             sendline
        - Src:             'mod_ls.c:3428,5'
          Dst:             pr_data_abort
        - Src:             'mod_ls.c:3435,5'
          Dst:             ls_done
        - Src:             'mod_ls.c:3438,21'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3438,37'
          Dst:             mod_create_ret
    - functionName:    set_useglobbing
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3679
      functionLinenumberEnd: 3697
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          142
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:3683,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3683,3'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3684,3'
          Dst:             check_context
        - Src:             'mod_ls.c:3684,3'
          Dst:             get_context_name
        - Src:             'mod_ls.c:3684,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3684,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3684,3'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3686,14'
          Dst:             get_boolean
        - Src:             'mod_ls.c:3688,5'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3688,5'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3691,7'
          Dst:             add_config_param
        - Src:             'mod_ls.c:3692,16'
          Dst:             pcalloc
        - Src:             'mod_ls.c:3696,10'
          Dst:             mod_create_ret
    - functionName:    set_showsymlinks
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3659
      functionLinenumberEnd: 3677
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          142
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - add_config_param
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:3663,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3663,3'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3664,3'
          Dst:             check_context
        - Src:             'mod_ls.c:3664,3'
          Dst:             get_context_name
        - Src:             'mod_ls.c:3664,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3664,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3664,3'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3666,19'
          Dst:             get_boolean
        - Src:             'mod_ls.c:3668,5'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3668,5'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3671,7'
          Dst:             add_config_param
        - Src:             'mod_ls.c:3672,16'
          Dst:             pcalloc
        - Src:             'mod_ls.c:3676,10'
          Dst:             mod_create_ret
    - functionName:    set_liststyle
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3631
      functionLinenumberEnd: 3657
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          159
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - palloc
        - pstrcat
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:3636,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3636,3'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3637,3'
          Dst:             check_context
        - Src:             'mod_ls.c:3637,3'
          Dst:             get_context_name
        - Src:             'mod_ls.c:3637,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3637,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3637,3'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3639,7'
          Dst:             add_config_param
        - Src:             'mod_ls.c:3642,7'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3645,14'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3649,5'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3649,5'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3649,5'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3653,16'
          Dst:             palloc
        - Src:             'mod_ls.c:3656,10'
          Dst:             mod_create_ret
    - functionName:    set_listoptions
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3524
      functionLinenumberEnd: 3628
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         51
      ICount:          566
      EdgeCount:       68
      CyclomaticComplexity: 19
      functionsReached:
        - add_config_param
        - atoi
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - pstrdup
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:3529,5'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3529,5'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3532,3'
          Dst:             check_context
        - Src:             'mod_ls.c:3532,3'
          Dst:             get_context_name
        - Src:             'mod_ls.c:3532,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3532,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3532,3'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3535,7'
          Dst:             add_config_param
        - Src:             'mod_ls.c:3538,16'
          Dst:             pstrdup
        - Src:             'mod_ls.c:3541,16'
          Dst:             pcalloc
        - Src:             'mod_ls.c:3545,16'
          Dst:             pcalloc
        - Src:             'mod_ls.c:3549,16'
          Dst:             pcalloc
        - Src:             'mod_ls.c:3553,16'
          Dst:             pcalloc
        - Src:             'mod_ls.c:3557,16'
          Dst:             pcalloc
        - Src:             'mod_ls.c:3565,11'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3568,18'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3569,24'
          Dst:             atoi
        - Src:             'mod_ls.c:3572,11'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3572,11'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3572,11'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3579,18'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3580,24'
          Dst:             atoi
        - Src:             'mod_ls.c:3583,11'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3583,11'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3583,11'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3590,18'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3591,23'
          Dst:             atoi
        - Src:             'mod_ls.c:3594,11'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3594,11'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3594,11'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3601,18'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3604,18'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3607,18'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3610,18'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3613,18'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3616,18'
          Dst:             strcasecmp
        - Src:             'mod_ls.c:3620,9'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3620,9'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3620,9'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3627,10'
          Dst:             mod_create_ret
    - functionName:    set_dirfakemode
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3502
      functionLinenumberEnd: 3522
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          157
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - add_config_param
        - check_context
        - get_context_name
        - mod_create_ret
        - pcalloc
        - pstrcat
        - strtol
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:3507,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3507,3'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3508,3'
          Dst:             check_context
        - Src:             'mod_ls.c:3508,3'
          Dst:             get_context_name
        - Src:             'mod_ls.c:3508,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3508,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3508,3'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3511,24'
          Dst:             strtol
        - Src:             'mod_ls.c:3514,5'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3514,5'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3516,7'
          Dst:             add_config_param
        - Src:             'mod_ls.c:3517,16'
          Dst:             pcalloc
        - Src:             'mod_ls.c:3521,10'
          Dst:             mod_create_ret
    - functionName:    set_dirfakeusergroup
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3466
      functionLinenumberEnd: 3500
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          166
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - add_config_param_str
        - check_context
        - get_boolean
        - get_context_name
        - mod_create_ret
        - pstrcat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:3471,3'
          Dst:             check_context
        - Src:             'mod_ls.c:3471,3'
          Dst:             get_context_name
        - Src:             'mod_ls.c:3471,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3471,3'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3471,3'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3476,5'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3476,5'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3476,5'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3480,24'
          Dst:             get_boolean
        - Src:             'mod_ls.c:3482,5'
          Dst:             pstrcat
        - Src:             'mod_ls.c:3482,5'
          Dst:             mod_create_ret
        - Src:             'mod_ls.c:3491,9'
          Dst:             add_config_param_str
        - Src:             'mod_ls.c:3495,9'
          Dst:             add_config_param_str
        - Src:             'mod_ls.c:3499,10'
          Dst:             mod_create_ret
    - functionName:    ls_init
      functionSourceFile: '/src/proftpd/modules/mod_ls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3702
      functionLinenumberEnd: 3709
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_help_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_ls.c:3705,3'
          Dst:             pr_help_add
        - Src:             'mod_ls.c:3706,3'
          Dst:             pr_help_add
        - Src:             'mod_ls.c:3707,3'
          Dst:             pr_help_add
    - functionName:    site_post_cmd
      functionSourceFile: '/src/proftpd/modules/mod_site.c'
      linkageType:     InternalLinkage
      functionLinenumber: 620
      functionLinenumberEnd: 627
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - pr_response_add
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_site.c:622,7'
          Dst:             strcasecmp
        - Src:             'mod_site.c:623,5'
          Dst:             pr_response_add
    - functionName:    site_cmd
      functionSourceFile: '/src/proftpd/modules/mod_site.c'
      linkageType:     InternalLinkage
      functionLinenumber: 598
      functionLinenumberEnd: 617
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          84
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - pcalloc
        - site_dispatch
        - toupper
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_site.c:603,12'
          Dst:             pcalloc
        - Src:             'mod_site.c:611,13'
          Dst:             toupper
        - Src:             'mod_site.c:617,10'
          Dst:             site_dispatch
    - functionName:    site_dispatch
      functionSourceFile: '/src/proftpd/modules/mod_site.c'
      linkageType:     InternalLinkage
      functionLinenumber: 551
      functionLinenumberEnd: 583
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          138
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_response_add_err
        - pr_response_send
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_site.c:555,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:557,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:558,5'
          Dst:             __errno_location
        - Src:             'mod_site.c:559,12'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:563,9'
          Dst:             strcmp
        - Src:             'mod_site.c:566,9'
          Dst:             pr_response_send
        - Src:             'mod_site.c:568,9'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:569,9'
          Dst:             __errno_location
        - Src:             'mod_site.c:570,16'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:577,3'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:580,3'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:581,3'
          Dst:             __errno_location
        - Src:             'mod_site.c:582,10'
          Dst:             mod_create_ret
    - functionName:    site_help
      functionSourceFile: '/src/proftpd/modules/mod_site.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         39
      ICount:          286
      EdgeCount:       51
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - dir_check_limits
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_log_debug
        - pr_response_add
        - pr_response_add_err
        - pstrcat
        - strcasecmp
        - strerror
        - toupper
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_site.c:483,8'
          Dst:             dir_check_limits
        - Src:             'mod_site.c:486,5'
          Dst:             pr_log_debug
        - Src:             'mod_site.c:492,7'
          Dst:             strerror
        - Src:             'mod_site.c:491,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:494,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:495,5'
          Dst:             __errno_location
        - Src:             'mod_site.c:496,12'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:500,9'
          Dst:             strcasecmp
        - Src:             'mod_site.c:501,9'
          Dst:             strcasecmp
        - Src:             'mod_site.c:502,9'
          Dst:             strcasecmp
        - Src:             'mod_site.c:503,9'
          Dst:             strcasecmp
        - Src:             'mod_site.c:507,9'
          Dst:             pr_response_add
        - Src:             'mod_site.c:511,11'
          Dst:             pstrcat
        - Src:             'mod_site.c:510,9'
          Dst:             pr_response_add
        - Src:             'mod_site.c:520,13'
          Dst:             toupper
        - Src:             'mod_site.c:524,11'
          Dst:             strcasecmp
        - Src:             'mod_site.c:525,9'
          Dst:             pr_response_add
        - Src:             'mod_site.c:527,16'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:531,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:532,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:533,5'
          Dst:             __errno_location
        - Src:             'mod_site.c:534,12'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:537,10'
          Dst:             mod_create_ret
    - functionName:    site_chgrp
      functionSourceFile: '/src/proftpd/modules/mod_site.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         51
      ICount:          449
      EdgeCount:       69
      CyclomaticComplexity: 20
      functionsReached:
        - __errno_location
        - core_chgrp
        - dir_realpath
        - full_cmd
        - get_param_ptr
        - mod_create_ret
        - pr_auth_name2gid
        - pr_cmd_set_errno
        - pr_fs_clear_cache2
        - pr_fs_decode_path2
        - pr_gid2str
        - pr_log_debug
        - pr_log_pri
        - pr_regexp_exec
        - pr_response_add
        - pr_response_add_err
        - pr_trace_msg
        - pr_uid2str
        - pstrcat
        - strerror
        - strtoul
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_site.c:72,63'
          Dst:             full_cmd
        - Src:             'mod_site.c:72,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:82,20'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_site.c:85,20'
          Dst:             __errno_location
        - Src:             'mod_site.c:88,32'
          Dst:             strerror
        - Src:             'mod_site.c:87,7'
          Dst:             pr_log_debug
        - Src:             'mod_site.c:89,7'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:93,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:94,7'
          Dst:             __errno_location
        - Src:             'mod_site.c:95,14'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:98,11'
          Dst:             pstrcat
        - Src:             'mod_site.c:102,9'
          Dst:             get_param_ptr
        - Src:             'mod_site.c:104,7'
          Dst:             pr_regexp_exec
        - Src:             'mod_site.c:105,5'
          Dst:             pr_log_pri
        - Src:             'mod_site.c:107,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:109,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:110,5'
          Dst:             __errno_location
        - Src:             'mod_site.c:111,12'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:114,9'
          Dst:             get_param_ptr
        - Src:             'mod_site.c:116,7'
          Dst:             pr_regexp_exec
        - Src:             'mod_site.c:117,5'
          Dst:             pr_log_pri
        - Src:             'mod_site.c:119,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:121,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:122,5'
          Dst:             __errno_location
        - Src:             'mod_site.c:123,12'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:127,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_site.c:128,10'
          Dst:             dir_realpath
        - Src:             'mod_site.c:130,18'
          Dst:             __errno_location
        - Src:             'mod_site.c:132,47'
          Dst:             strerror
        - Src:             'mod_site.c:132,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:134,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:135,5'
          Dst:             __errno_location
        - Src:             'mod_site.c:136,12'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:142,9'
          Dst:             strtoul
        - Src:             'mod_site.c:147,11'
          Dst:             pr_auth_name2gid
        - Src:             'mod_site.c:151,7'
          Dst:             pr_log_debug
        - Src:             'mod_site.c:154,49'
          Dst:             strerror
        - Src:             'mod_site.c:154,7'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:156,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:157,7'
          Dst:             __errno_location
        - Src:             'mod_site.c:158,14'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:162,9'
          Dst:             core_chgrp
        - Src:             'mod_site.c:164,18'
          Dst:             __errno_location
        - Src:             'mod_site.c:168,7'
          Dst:             pr_uid2str
        - Src:             'mod_site.c:169,7'
          Dst:             pr_gid2str
        - Src:             'mod_site.c:170,7'
          Dst:             pr_gid2str
        - Src:             'mod_site.c:170,39'
          Dst:             strerror
        - Src:             'mod_site.c:166,12'
          Dst:             pr_trace_msg
        - Src:             'mod_site.c:172,47'
          Dst:             strerror
        - Src:             'mod_site.c:172,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:174,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:175,5'
          Dst:             __errno_location
        - Src:             'mod_site.c:176,12'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:179,3'
          Dst:             pr_response_add
        - Src:             'mod_site.c:181,10'
          Dst:             mod_create_ret
    - functionName:    site_chmod
      functionSourceFile: '/src/proftpd/modules/mod_site.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 473
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         116
      ICount:          866
      EdgeCount:       142
      CyclomaticComplexity: 28
      functionsReached:
        - __errno_location
        - core_chmod
        - dir_realpath
        - full_cmd
        - get_param_ptr
        - mod_create_ret
        - pr_cmd_set_errno
        - pr_fs_clear_cache2
        - pr_fs_decode_path2
        - pr_fsio_stat
        - pr_gid2str
        - pr_log_debug
        - pr_log_pri
        - pr_regexp_exec
        - pr_response_add
        - pr_response_add_err
        - pr_signals_handle
        - pr_trace_msg
        - pr_uid2str
        - pstrcat
        - pstrdup
        - strerror
        - strpbrk
        - strtol
        - umask
      functionUses:    0
      BranchProfiles:
        - Branch String:   'mod_site.c:320,9'
          Branch Sides:    []
        - Branch String:   'mod_site.c:350,9'
          Branch Sides:    []
        - Branch String:   'mod_site.c:364,9'
          Branch Sides:    []
        - Branch String:   'mod_site.c:408,13'
          Branch Sides:    []
      Callsites:
        - Src:             'mod_site.c:195,63'
          Dst:             full_cmd
        - Src:             'mod_site.c:195,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:205,20'
          Dst:             pr_fs_decode_path2
        - Src:             'mod_site.c:208,20'
          Dst:             __errno_location
        - Src:             'mod_site.c:211,32'
          Dst:             strerror
        - Src:             'mod_site.c:210,7'
          Dst:             pr_log_debug
        - Src:             'mod_site.c:212,7'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:216,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:217,7'
          Dst:             __errno_location
        - Src:             'mod_site.c:218,14'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:221,11'
          Dst:             pstrcat
        - Src:             'mod_site.c:225,9'
          Dst:             get_param_ptr
        - Src:             'mod_site.c:227,7'
          Dst:             pr_regexp_exec
        - Src:             'mod_site.c:228,5'
          Dst:             pr_log_pri
        - Src:             'mod_site.c:230,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:232,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:233,5'
          Dst:             __errno_location
        - Src:             'mod_site.c:234,12'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:237,9'
          Dst:             get_param_ptr
        - Src:             'mod_site.c:239,7'
          Dst:             pr_regexp_exec
        - Src:             'mod_site.c:240,5'
          Dst:             pr_log_pri
        - Src:             'mod_site.c:242,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:244,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:245,5'
          Dst:             __errno_location
        - Src:             'mod_site.c:246,12'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:250,3'
          Dst:             pr_fs_clear_cache2
        - Src:             'mod_site.c:251,9'
          Dst:             dir_realpath
        - Src:             'mod_site.c:253,18'
          Dst:             __errno_location
        - Src:             'mod_site.c:255,47'
          Dst:             strerror
        - Src:             'mod_site.c:255,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:257,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:258,5'
          Dst:             __errno_location
        - Src:             'mod_site.c:259,12'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:268,11'
          Dst:             pstrcat
        - Src:             'mod_site.c:274,10'
          Dst:             strtol
        - Src:             'mod_site.c:278,60'
          Dst:             umask
        - Src:             'mod_site.c:282,5'
          Dst:             umask
        - Src:             'mod_site.c:285,9'
          Dst:             pr_fsio_stat
        - Src:             'mod_site.c:290,7'
          Dst:             pr_signals_handle
        - Src:             'mod_site.c:292,13'
          Dst:             pstrdup
        - Src:             'mod_site.c:294,13'
          Dst:             strpbrk
        - Src:             'mod_site.c:296,15'
          Dst:             pstrdup
        - Src:             'mod_site.c:308,13'
          Dst:             strpbrk
        - Src:             'mod_site.c:310,16'
          Dst:             pstrdup
        - Src:             'mod_site.c:445,7'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:447,7'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:448,7'
          Dst:             __errno_location
        - Src:             'mod_site.c:449,14'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:453,9'
          Dst:             core_chmod
        - Src:             'mod_site.c:455,18'
          Dst:             __errno_location
        - Src:             'mod_site.c:459,7'
          Dst:             pr_uid2str
        - Src:             'mod_site.c:460,7'
          Dst:             pr_gid2str
        - Src:             'mod_site.c:461,7'
          Dst:             strerror
        - Src:             'mod_site.c:457,12'
          Dst:             pr_trace_msg
        - Src:             'mod_site.c:463,52'
          Dst:             strerror
        - Src:             'mod_site.c:463,5'
          Dst:             pr_response_add_err
        - Src:             'mod_site.c:465,5'
          Dst:             pr_cmd_set_errno
        - Src:             'mod_site.c:466,5'
          Dst:             __errno_location
        - Src:             'mod_site.c:467,12'
          Dst:             mod_create_ret
        - Src:             'mod_site.c:470,3'
          Dst:             pr_response_add
        - Src:             'mod_site.c:472,10'
          Dst:             mod_create_ret
    - functionName:    full_cmd
      functionSourceFile: '/src/proftpd/modules/mod_site.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          90
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - pstrcat
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_site.c:49,11'
          Dst:             pstrcat
        - Src:             'mod_site.c:52,12'
          Dst:             strlen
    - functionName:    site_pre_cmd
      functionSourceFile: '/src/proftpd/modules/mod_site.c'
      linkageType:     InternalLinkage
      functionLinenumber: 588
      functionLinenumberEnd: 595
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          41
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - pr_response_add
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_site.c:590,7'
          Dst:             strcasecmp
        - Src:             'mod_site.c:591,5'
          Dst:             pr_response_add
    - functionName:    site_init
      functionSourceFile: '/src/proftpd/modules/mod_site.c'
      linkageType:     InternalLinkage
      functionLinenumber: 633
      functionLinenumberEnd: 637
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pr_help_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mod_site.c:635,3'
          Dst:             pr_help_add
    - functionName:    pr_rlimit_set_nproc
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - set_rlimit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'rlimit.c:178,10'
          Dst:             set_rlimit
    - functionName:    set_rlimit
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - setrlimit
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'rlimit.c:67,9'
          Dst:             setrlimit
    - functionName:    setrlimit
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pr_rlimit_get_nproc
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_rlimit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'rlimit.c:168,10'
          Dst:             get_rlimit
    - functionName:    get_rlimit
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          99
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - getrlimit
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'rlimit.c:35,5'
          Dst:             __errno_location
        - Src:             'rlimit.c:39,9'
          Dst:             getrlimit
        - Src:             'rlimit.c:42,9'
          Dst:             __errno_location
        - Src:             'rlimit.c:43,7'
          Dst:             __errno_location
    - functionName:    pr_rlimit_set_memory
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - set_rlimit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'rlimit.c:155,10'
          Dst:             set_rlimit
    - functionName:    pr_rlimit_get_memory
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_rlimit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'rlimit.c:139,10'
          Dst:             get_rlimit
    - functionName:    pr_rlimit_set_files
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - set_rlimit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'rlimit.c:126,10'
          Dst:             set_rlimit
    - functionName:    pr_rlimit_get_files
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_rlimit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'rlimit.c:113,10'
          Dst:             get_rlimit
    - functionName:    pr_rlimit_set_cpu
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - set_rlimit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'rlimit.c:103,10'
          Dst:             set_rlimit
    - functionName:    pr_rlimit_get_cpu
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_rlimit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'rlimit.c:93,10'
          Dst:             get_rlimit
    - functionName:    pr_rlimit_set_core
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - set_rlimit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'rlimit.c:83,10'
          Dst:             set_rlimit
    - functionName:    pr_rlimit_get_core
      functionSourceFile: '/src/proftpd/src/rlimit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_rlimit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'rlimit.c:73,10'
          Dst:             get_rlimit
...
